#值!数组索引和匹配错误

时间:2018-03-05 13:28:55

标签: excel excel-formula

以下数组索引和匹配是否有明显错误?

我无法解决问题,我得到的只是一个#Value!没有进一步信息的错误。

{=INDEX(Sheet2!A:G,MATCH(1,(Sheet2!B:B=Sheet_1_crosstab!C2)*

(Sheet2!C:C=Sheet_1_crosstab!A2)*(Sheet2!D:D=Sheet_1_crosstab!T2),0),5,0}

表2看起来像这样:

Locale  provider    source_aggregated   Week num    Desktop Mobile  Tablet
AT                     Clickouts            40           0    0       0
AT                     Clickouts            41           0    0       0
AT                     Clickouts            42           0    0       0
AT                     Clickouts            43           0    0       0

表1看起来像:

Locale  provider    source_aggregated   Week num    Desktop
AT                     Clickouts            40      ={indexmatch..         
AT                     Clickouts            41                     
AT                     Clickouts            42                     
AT                     Clickouts            43                    

我正在尝试根据匹配的区域设置,提供商和来源,将工作表2中的设备拆分与工作表1中的整体流量数据进行匹配。

1 个答案:

答案 0 :(得分:3)

MATCH函数需要lookup_array参数的一系列单元格。

由于布尔数组的乘法,你可能会传递1或0。

那是

=(Sheet2!B:B=Sheet_1_crosstab!C2)*(Sheet2!C:C=Sheet_1_crosstab!A2)*(Sheet2!D:D=Sheet_1_crosstab!T2)

如果有效,这将生成True False数组,这将导致True或False,即1或0。

所以实际上你有

=INDEX(Sheet2!A:G,MATCH(1,1,0),5,0)

=INDEX(Sheet2!A:G,MATCH(1,0,0),5,0)

要么失败,因为预期的Match参数应该是一个范围。

如果您尝试进行查找,请考虑包含唯一键的辅助字段

使用感兴趣字段的串联来创建唯一

的关键字段
=CONCATENATE(B2,C2,D2,E2)

关键字段:

Key

使用该键检索桌面数字等

=VLOOKUP(CONCATENATE(A2,B2,C2,D2),Sheet2!A1:H5,MATCH(Sheet1!E1,Sheet2!1:1,0),FALSE)

注意:我使用Match来查找Sheet2在Sheet2的第1行中的位置,然后定义要返回的查阅列。

如果Mobile位于该单元格中,您将匹配Sheet1!F1。

表格中的查询:

Lookup

请记住在必要时将范围修改为绝对值。