Excel:iferror应该返回什么以避免#value!错误

时间:2014-07-18 20:43:33

标签: excel

这可能很简单,但似乎我无法找到解决方案。谷歌没有运气(可能是错误的关键词),无论如何:

我需要计算所有找到的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将计算值并降低平均值,这不应该

谢谢你

3 个答案:

答案 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的辅助细胞矩阵 而你只需要一个公式。

考虑这个简单的样本数据:

enter image description here

您正在查找所有3个表格中 Data1 的平均值(包括Value1和Value2),如图所示。
所以这就像查看3个表格,每个表格中有2列 根据Ron的建议,它将需要6个辅助列和6个不同的公式。

这是我的建议 让我们创建一个辅助矩阵,如下所示:

enter image description here

我们使用以下公式来创建矩阵:

=IFERROR(VLOOKUP(A2,INDIRECT({"Table1","Table2","Table3"}),{2;3},0),"")

这是数组公式

首先选择 D7:F8 (您的矩阵),然后单击公式栏并输入公式。
使用 Ctrl + Shift + 输入将其输入为数组公式

检查矩阵,它返回我们需要的所有值:

enter image description here

对于未找到的值,它返回"" 完成辅助矩阵后,您只需输入:

=AVERAGE(D7:F8)
=AVERAGE(matrix)(如果您想为矩阵创建命名范围

B2 中的

基于我们的示例数据布局。结果将是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功能:

  

如果范围或单元格引用参数包含文本,逻辑值,   或空单元格,忽略这些值;然而,细胞与   值零包括在内。

     

参数,它们是错误值或文本   无法翻译成数字导致错误。