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

问题描述 投票:3回答:1

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

我无法解决问题,我得到的只是一个#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中的总体流量数据相匹配。

excel excel-formula
1个回答
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行中的位置,然后定义要返回的查阅列。

你会匹配Sheet1!F1如果Mobile在那个单元格中等等。

工作表中的查找:

Lookup

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

© www.soinside.com 2019 - 2024. All rights reserved.