随着时间的推移,我有一个观察评级的数据集:
A B C D E
ID Date Rating-1 Rating-2 Rating-3
1 01/01/20 Y
2 01/05/19 Y
3 15/12/19 Y我希望在特定日期提取特定ID的评等。由于没有在数据中指定评级(因为每个级别都由一个Y值表示),所以我需要引用列标题或列引用。为了得到相关的行,我可以使用Match公式:=MATCH(1,(1=$A$1:$A$4)*(DATE(2020,01,01)=$B$1:$B$4),0) --这将给出第2行。
要获得特定行的列引用,我可以使用第二个Match公式:=MATCH("Y",$A3:$E3,0) --这将给出第4列。
有没有办法组合这两个公式,为指定的行(基于ID/日期标准)和指定的列(具有Y值的列)提供列引用?
我尝试了一个Index Match Match公式,但这似乎需要指定列引用,而不是找到一个具有Y值的列。
发布于 2020-10-15 10:22:01
尽量避免INDIRECT,因为它是不稳定的!还有其他选择,例如:
=INDEX(A1:E1,MATCH("Y",INDEX(A1:E4,MATCH(1,INDEX((A1:A4=1)*(B1:B4=DATE(2,020,1,1)),),0),0),0))顺便说一句,嵌套的INDEX是为了避免必要的CSE公式。如果您有ExcelO365,则可以将其删除。
发布于 2020-10-15 10:20:54
使用INDIRECT、CONCATENATE和MATCH:{=MATCH("Y",INDIRECT(CONCATENATE("$A",MATCH(1,(1=$A$1:$A$4)*(DATE(2020,01,01)=$B$1:$B$4),0),":$E",MATCH(1,(1=$A$1:$A$4)*(DATE(2020,01,01)=$B$1:$B$4),0))),0)}找到解决方案
实际上,公式的CONCATENATE和INDIRECT部分创建了由ID和日期条件指定的范围。此范围以单行的形式出现,其中的MATCH函数将搜索Y值并返回列号。
https://stackoverflow.com/questions/64368778
复制相似问题