这可能很简单,但似乎我无法找到解决方案。谷歌没有运气(可能是错误的关键词),无论如何:
我需要计算所有找到的vlookup结果的平均值,并忽略所有未找到的值。
我现在拥有的东西:
= AVERAGE(
IFERROR(VLOOKUP(A4,table01,2,0),""),
IFERROR(VLOOKUP(A4,table02,2,0),""),
IFERROR(VLOOKUP(A4,table03,2,0),""),
IFERROR(VLOOKUP(A4,table04,2,0),""),
IFERROR(VLOOKUP(A4,table05,2,0),""),
IFERROR(VLOOKUP(A4,table06,2,0),""),
IFERROR(VLOOKUP(A4,table07,2,0),""),
IFERROR(VLOOKUP(A4,table08,2,0),""),
IFERROR(VLOOKUP(A4,table09,2,0),""),
IFERROR(VLOOKUP(A4,table10,2,0),""),
IFERROR(VLOOKUP(A4,table11,2,0),""),
IFERROR(VLOOKUP(A4,table12,2,0),"")
)
每一行都可以正常工作,但如果在多个表之一中找不到该值,则平均值将始终导致#Value!
错误。如果没有找到,IFERROR会回复我""。
为了使平均值有效,我应该在IFERROR字段中放置""
而不是{{1}}?
谢谢你
答案 0 :(得分:2)
我无法提供让Average
或其表兄弟忽略像这样的列表中的错误的方法(如果它是一系列值,包括错误,那么它可以完成......)
作为替代方法,使用`Sum(...)/ Count(...)方法(仅为简洁起见显示前两个表)
=SUM(
IFERROR(VLOOKUP(A4,Table1,2,0),),
IFERROR(VLOOKUP(A4,Table2,2,0),)
) / SUM(
ISNUMBER(VLOOKUP(A4,Table1,2,0)),
ISNUMBER(VLOOKUP(A4,Table2,2,0))
)
答案 1 :(得分:2)
我对罗恩的建议感兴趣
正如你在他的回答中所评论的那样,你需要制作120个辅助列才能完成它
在我看来,你只需要一个12 x 10的辅助细胞矩阵
而你只需要一个公式。
考虑这个简单的样本数据:
您正在查找所有3个表格中 Data1 的平均值(包括Value1和Value2),如图所示。
所以这就像查看3个表格,每个表格中有2列
根据Ron的建议,它将需要6个辅助列和6个不同的公式。
这是我的建议 让我们创建一个辅助矩阵,如下所示:
我们使用以下公式来创建矩阵:
=IFERROR(VLOOKUP(A2,INDIRECT({"Table1","Table2","Table3"}),{2;3},0),"")
这是数组公式。
首先选择 D7:F8 (您的矩阵),然后单击公式栏并输入公式。
使用 Ctrl + Shift + 输入将其输入为数组公式。
检查矩阵,它返回我们需要的所有值:
对于未找到的值,它返回""
完成辅助矩阵后,您只需输入:
=AVERAGE(D7:F8)
或
=AVERAGE(matrix)
(如果您想为矩阵创建命名范围)
基于我们的示例数据布局。结果将是3.
HTH。这取决于你更容易设置。
答案 2 :(得分:1)
不是使用所有这些IFERROR(VLOOKUP ...作为AVERAGE函数中的参数,而是将每个函数放入一个单独的单元格中,然后在AVERAGE函数中引用该范围。
e.g:
=AVERAGE(F1:F10)
,其中
F1: IFERROR(VLOOKUP(A4,table01,2,0),"")
F2: IFERROR(VLOOKUP(A4,table02,2,0),"")
等等。
来自HELP的AVERAGE功能:
如果范围或单元格引用参数包含文本,逻辑值, 或空单元格,忽略这些值;然而,细胞与 值零包括在内。
参数,它们是错误值或文本 无法翻译成数字导致错误。