在一行中返回三个连续值的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列DateMax T 。 如果它们用逗号分隔,则需要将它们分割为2个不同的列,使用由逗号分隔的Text to columns

Date应在Column AMax TColumn 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行结果与您提供的数据。