具有来自数据透视表的多个条件的索引匹配

时间:2018-12-07 00:22:22

标签: excel

好的,我试图基于多个条件引用数据透视表中的单元格。我以为我知道了,但是现在我得到了#Ref!错误。

这是我当前的公式:

=INDEX(MP_Val_Table[Instrument Line],MATCH($B8,MP_Val_Table[Assay],0),MATCH($B10,MP_Val_Table[Mobile Phase],0))

MP_VAL_Table

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

有几种方法可以生成两列查询。我使用AGGREGATE检索匹配的行号。将其与结构化表一起使用时,需要从检索到的行号中减去标题行号,以获得准确的结果。

=INDEX(MP_Val_Table[instrument_line], AGGREGATE(15, 7, (ROW(MP_Val_Table[id])-ROW(MP_Val_Table[#Headers]))/((MP_Val_Table[assay]=$B$8)*(MP_Val_Table[mobile_phone]=$B$10)), ROW(1:1)))

向下拖动以进行其他匹配。用IFERROR换行以避免显示#NUM!匹配用尽时出现错误。

enter image description here

数据高级过滤器方法是另一种快速确定单个或多个匹配项的方法。

答案 1 :(得分:0)

您可以使用与如下所示的数组公式匹配的多个条件

=INDEX(MP_Val_Table[Instrument Line],MATCH(1,($B8 = MP_Val_Table[Assay])*($B10=MP_Val_Table[Mobile Phase]),0))

Simplified example

因为它是一个数组公式,所以您需要按ctrl-shift-enter对其求值,而不是直接输入。这可以分解为多个部分,例如 $ B8 = MP_Val_Table [Assay]将返回true或false $ B10 = MP_Val_Table [Mobile Phase]将返回true或false 那么这些结果中的*将为true或false,只有true结果将匹配1。

由于数组公式需要特殊处理,因此通常更容易添加新列,该新列将希望匹配的列连接起来,然后对该新列进行匹配。

MATCH(concat($B8,$B10),MP_Val_Table[ConcatSearchColumn],0)