INDEX / MATCH 包含多个条件(包括日期范围)

INDEX / MATCH 包含多个条件(包括日期范围)

我尝试根据代码是否匹配以及日期是否在一定范围内来提取价格。

我想H根据以下条件拉列:

  • AF匹配
  • G介于或等于列之间B,并且C

INDEX我认为带有/ 的数组公式MATCH是最好的方法,但到目前为止还没有成功。

我一直在尝试使用类似这样的逻辑公式:

{=INDEX(H2:H10, MATCH(1, IF(A2=F2:F10,IF(B2<=G2:G10,IF(C2>=G2:G10,1),0),0),0))}


示例图片

答案1

如果您想要第一个,则使用 INDEX 的这种数组形式:

=INDEX($H$2:$H$10,MATCH(1,(($F$2:$F$10=A2)*($G$2:$G$10>=B2)*($G$2:$G$10<=C2)),0))

作为数组公式,退出编辑模式时必须使用 Ctrl-Shift-Enter 而不是 Enter 进行确认。

在此处输入图片描述

答案2

如果想要所有匹配的价格,可以使用以下TEXTJOIN()函数:

工作表截图

在数组中输入以下公式D3并复制粘贴/填充该列:

{=TEXTJOIN(", ",TRUE,IFERROR(1/(1/(($F$2:$F$10=A2)*($G$2:$G$10>=B2)*($G$2:$G$10<=C2)*($H$2:$H$10))),""))}

请注意,TEXTJOIN()仅在 Excel 2016 中可用。在早期版本的 Excel 中,需要 poly-fill UDF。(请参阅这个帖子为一个基本的。

相关内容