Excel,使用匹配索引和if语句

时间:2020-06-10 16:52:38

标签: excel

我的问题是我有一个Excel文件。该文件需要我分析4列。 这是数据:

  • F是非活动状态和活动状态的列
  • B是要比较的名字
  • G是一堆名字的列
  • H是带有日期的列

鉴于城市名称旁边的状态为非活动或活动,我需要将其与其他城市列(如果处于活动状态)进行匹配。如果处于活动状态,则显示日期。

我尝试实现此公式:

=IF(INDEX(F:F, MATCH(B2,$G:$G))="Active",INDEX(H2:H1683, MATCH(B2,G2:G1683,0)),"n/a")

,但似乎显示为活动和不活动。

Sample Data

3 个答案:

答案 0 :(得分:0)

您可以使用xlookup搜索多个条件。

=XLOOKUP("active"&B2,$F$2:$F$14&$G$2:$G$14,$H$2:$H$14,"na",0)

或者,您可以使用布尔逻辑使用另一种形式:

=XLOOKUP(1,($F$2:$F$14="active")*($G$2:$G$14=B2),$H$2:$H$14)

有关使用多个条件进行搜索的教程,请参见https://exceljet.net/formula/xlookup-with-multiple-criteria

答案 1 :(得分:0)

使用SUMIFS:

=IFERROR(1/(1/SUMIFS(H:H,F:F,"Active",G:G,C2)),"n/a")

这假定每个“名称/状态”组合只有一个日期。

enter image description here


使用新的动态数组公式:

=@FILTER($H$2:$H$7,($F$2:$F$7="Active")*($G$2:$G$7=C2),"n/a")

enter image description here

答案 2 :(得分:0)

这是解决方案

=IF(INDEX($F3:$F1684,MATCH($B3,$G3:$G1684,0))="Actual",INDEX($H2:$H1684,MATCH(B3,G2:G1683,0)))