当月第一天的值(零除外)

Value of first day of current month (except zero)

我需要一种方法来获取 B 列中对应于本月第一天的值,如下所示:

Table A
+---------------------+------+
|        ColA         | ColB |
+---------------------+------+
| 28/10/2012 00:19:01 |   42 |
| 29/10/2012 00:29:01 |  100 |
| 30/10/2012 00:39:01 |   23 |
| 31/10/2012 00:29:01 |    1 |
| 1/11/2012 00:19:01  |   24 |<---
| 2/11/2012 00:19:01  |    4 |
| 3/11/2012 00:19:01  |    2 |
+---------------------+------+

Table B
+---------------------+------+
|        ColA         | ColB |
+---------------------+------+
| 28/11/2012 00:19:01 |   67 |
| 29/11/2012 00:29:01 |    2 |
| 30/11/2012 00:39:01 |   63 |
| 31/11/2012 00:29:01 |    5 |
| 1/12/2012 00:19:01  |   69 |<---
| 2/12/2012 00:19:01  |   42 |
| 3/12/2012 00:19:01  |    6 |
+---------------------+------+

Table C
+---------------------+------+
|        ColA         | ColB |
+---------------------+------+
| 28/11/2012 00:19:01 |   11 |
| 29/11/2012 00:29:01 |   12 |
| 30/11/2012 00:39:01 |    3 |
| 31/11/2012 00:29:01 |   20 |
| 1/12/2012 00:19:01  |    0 |
| 2/12/2012 00:19:01  |   71 |<---
| 3/12/2012 00:19:01  |   21 |
+---------------------+------+

所以我需要能够有一个公式,我可以在 sheet 上任何地方的单元格中使用它,让我在 Table A 中得到“24”。换句话说,它总是会得到与当月第一天对应的值。

然后当月结束和下个月开始时,相同的公式将再次为我获取 B 列上对应于本月第一天的值,在 Table B 中将是“ 69".

现在我要补充的一件事是,如果对应于该月第一天的 B 列上的值等于“0”,那么该公式将搜索下一个 cell/day 直到如果找到大于“0”的值,则输出该值。参见 Table C。在这个例子中,它将是“71”。

这可能吗?我想,所以我只是不知道该怎么做。

虚拟文件: https://docs.google.com/spreadsheets/d/1ExXtmQ8nyuV1o_UtabVJ-TifIbORItFMWjtN6ZlruWc/edit?usp=sharing

您可以使用 MINIFS 获取本月第一个具有相应值 > 0 的日期:

=MINIFS(A1:A7,B1:B7,">0",A1:A7,">"&EOMONTH(TODAY(),-1),A1:A7,"<="&EOMONTH(TODAY(),0))

然后您可以将该公式与基本 INDEX/MATCH 结合起来以获得正确的值:

=INDEX(B1:B7,MATCH(MINIFS(A1:A7,B1:B7,">0",A1:A7,">"&EOMONTH(TODAY(),-1),A1:A7,"<="&EOMONTH(TODAY(),0)),A1:A7,0))

如果您的时间戳按照示例中的方式排序,请尝试:

=--FILTER(B:B, B:B>0, MONTH(A:A)=MONTH(TODAY()))