如果单元格X匹配另一张工作表中的单元格Y的平均Vlookup值

时间:2019-04-26 12:43:20

标签: excel excel-formula

这是我的问题: -我有2张纸。 (A和B)。 -2格2格(SheetA!A和SheetB!A) -平均6列(B-C-D-E-F-G)

SheetA!A1和SheetB!A1如果两者匹配,则平均值应为单元格B1-C1-D1-E1-F1-G1)。

每张纸上都有几千行。 SheetA是所有数据所在的“数据表”。 SheetB就像我的工作簿一样,所有统计信息都在这里。

我尝试了此功能:

=AverageIf(SheetA!$A:$A;A2;SheetA!B:G)

我也尝试过

=average(index(SheetA!$B:$G;MATCH($A2;SheetA!$B:$G;0)))

似乎也不起作用。但是我知道我可能会用这个公式犯错。

该函数只给我B单元格中的值,而不计算同一行中6个单元格的平均值。 Text1和Text5是在SheetB中与SheetB匹配的文本

SheetA

A       B   C   D   E   F   G

Text1   1   2   3   1   2   3
Text2   2   3   1   1   1   1
Text3   1   1   2   1   2   2
Text4   3   5   2   4   5   1
Text5   4   2   2   2   2   2

SheetB

我想要在SheetB上显示的内容:

A       B
Text1   2
Text5   2.33

我先前显示的公式为我提供了以下信息,它不计算平均值,仅为我提供第一个值:

A       B
Text1   1
Text5   4

它与SheetA和SheetB中的Text1匹配右行。

1 个答案:

答案 0 :(得分:0)

好吧,如果您拥有我显示的数据,这将起作用。如果没有,则需要调整“匹配”部分以确保该公式有效。

SheetA中的数据是这样的,从第1行开始(这很重要):

enter image description here

我的公式在B列的SheetB中,如下所示:

=AVERAGE(INDIRECT("SheetA!B"&MATCH(A1;SheetA!A:A;0)&":G"&MATCH(A1;SheetA!A:A;0)))

我明白了:

enter image description here

工作原理:

  1. MATCH将获取您要平均的范围的行号(如果找到,则为ofc)。因为我的数据从第1行开始,所以MATCH返回的数字很好。如果您的数据不是从第1行开始,则需要对其进行调整(+ 1,+ 2,视需要而定)。
  2. INDIRECT将返回同一行中但在SheetA中B和G列之间的范围
  3. 最后,AVERAGE将得出平均值。

如果找不到任何内容,则不会进行错误处理,但如果需要,只需添加IFERROR之类的内容即可。

此外,MATCH仅在匹配为100%准确时才起作用。在SheetA的示例中,您有Text1,但在SheetB中,您键入了Text 1,这是不相等的。确保输入正确。

希望您可以根据自己的需要对此进行调整。