公式来sorting几个月 – 使用帮手列

我正在尝试使用帮助列来sorting基于一些条件(最低温度/最高温度和允许的最高温度列)表,但我不能得到它的工作,它不必使用帮手列,但这是我试图做到这一点。

我想要得到的是红色的预期结果

我的l2(拖下来)是

=COUNTIFS(B$2:B$11,"<="&$B2) 

我的J2(拖下来)是

= INDEX($ B $ 2:$ B $ 10 MATCH(ROWS($ I $ 2:I 2),$ I $ 2:$ I $ 8,0))

试图做

 =COUNTIFS(B$2:B$11,"<="&$B2,B$2:B$11,"<="&$G$3) 

我想要考虑g3,g4,g5中的值。有序列表中的第一项(月)(预期结果)是小于或等于g3的项目(从小到大)。 列表中的第二项是> g3以上但小于g4的项目,并且G5中指定的项目数量有限制

在这里输入图像说明

在这里输入图像说明

为了处理重复的值,助手列用于生成包含月份号的唯一键,并使用SMALL()函数对它们进行sorting。 假定A2:A11中的月份名称是文本(不是date值,格式为“MMM”),则J2的数组公式为J2的数组公式,

 =SMALL(MONTH(DATEVALUE("1"&$A$2:$A$11&" 2001"))+ROUND(($B$2:$B$11+300)*1000,-2),ROW(I2)-ROW($I$1)) 

假定温度值四舍五入到小数点后的一位数,调整( +300 )处理负温度,向左移动( *1000 )并添加月份数。

D2

 =IF(E2<=$H$3,TEXT(DATE(2001,MOD($J2,100),1),"MMM")," ") 

E2

 =IF(ROUND($J2/1000-300,1)<=$H$3,ROUND($J2/1000,1)-300," ") 

D3并向下拖动到D11

 =IF(OR(E3<=$H$3,AND(E3>$H$3,E3<$H$4,COUNTIF(E$2:E2,">"&$H$3)<$H$5)),TEXT(DATE(2001,MOD($J3,100),1),"MMM")," ") 

E3并拖拽到E11

 =IF(OR(ROUND($J3/1000-300,1)<=$H$3,AND(ROUND($J3/1000-300,1)>$H$3,ROUND($J3/1000-300,1)<$H$4,COUNTIF(E$2:E2,">"&$H$3)<$H$5)),ROUND($J3/1000-300,1)," ") 

D2:D11可选的条件格式D2:D11

在这里输入图像说明

E2:E11可选条件E2:E11

在这里输入图像说明

请检查这些公式。 它应该为你工作,

在这里输入图像说明

column J公式,

=IF(SMALL($B$2:$B$10,ROW(1:1))<=$G$3,SMALL($B$2:$B$10,ROW(1:1)),IF(AND(SMALL($B$2:$B$10,ROW(1:1))<=$G$4,COUNTIF($J$2:$J2,">" & $G$3)<$G$5),SMALL($B$2:$B$10,ROW(1:1)),""))

公式column I

=INDEX(A:A,MATCH(J3,B:B,0),1)

希望这可以帮助。 让我知道如果你需要任何信息。