当月第一天的值(零除外)
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()))
我需要一种方法来获取 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()))