在一行中返回三个连续值的date
我有一个数据文件,我需要返回连续3天(MaxT)大于或等于30(> = 30)的date。
数据文件:
Date, MaxT 1872-03-01,31 1872-03-02,29 1872-03-03,37 1872-03-04,40 1872-03-05,22 1872-03-06,9 1872-03-07,28 1872-03-08,31 1872-03-09,35 1872-03-10,37 1872-03-11,44 1872-03-12,29 1872-03-13,35 1872-03-14,48 1872-03-15,33 1872-03-16,31 1872-03-17,38 1872-03-18,31 1872-03-19,42 1872-03-20,20 1872-03-21,24 1872-03-22,31
我试图用下面的代码来解决这个问题,但是,我不认为我甚至在场上。
尝试代码:
=SUMPRODUCT(--(FREQUENCY(IF(B2:B23>=30,ROW(B2:B23)),IF(B2:B23>=30,ROW(B2:B23)))=3))
我假设你的数据文件由2列Date
和Max T
。 如果它们用逗号分隔,则需要将它们分割为2个不同的列,使用由逗号分隔的Text to columns
。
Date
应在Column A
, Max T
在Column B
。
在C2
单元格中input下面的公式,然后向下拖动,
=IF(AND(B2>=30,B3>=30,B4>=30),"Consecutive Range","")
在上面的输出中将显示大于30的连续范围值的开始。 然后你可以使用一些其他Excel函数的filter,如Index-Match
来获得相应的date。 希望这可以帮助。
好的,我已经开始工作了,但是我并不完全相信,如果不将公式分解成多个单元格,它将如何工作。
一个可能的解决scheme是将一些公式写入后台的工作表中,将公式的最后部分放在前面工作表中,并将公式的“隐藏”位引用。
首先,我在列A中写入数据,在列A中写入“Date”,在列B中写入“MaxT”。
公式的第一部分写在单元格D2中:
=IF(B2>=30,B2,"")
公式的下一部分写在单元格E2中:
=COUNT(D2:D4)
公式的最后部分写入单元格F2:
=IF(E2=3,A2&","&A3&","&A4,"")
这个公式的结果,在F列中,有7个单元格写有三个date,用逗号隔开。
请注意,您可以使任何字符或文本string通过replace“&”符号之间的逗号来区分三个显示的date:quote text:
( &","&
)可以变成( &"anything you want"&
)
从这里,自动填充公式到相关的单元格。
编辑:
缩短代码的一种方法是将COUNT公式添加到最后的IF语句中,如下所示:
=IF(COUNT(D2:D4)=3,A9&","&A10&","&A11,"")
不过,我仍然认为第一个IF声明需要与公式的其余部分分开。
编辑#2
以下是一个单元中的代码:
=IF(AND(B2>=30,B3>=30,B4>=30), A2&","&A3&","&A4,"")
其中将显示位于列A,当前行及其下面的两行内的三个date。
该代码仍然会生成7行结果与您提供的数据。