为什么这个 Excel 公式返回两个不同的值?

为什么这个 Excel 公式返回两个不同的值?

我试图使用 Excel (2013) 查找值 1 是否出现在给定集合中(使用函数CHOOSE(),如果是,则使用VLOOKUP()函数直接在其右侧的单元格中打印该值。为什么这个公式本身相同,但会在不同的单元格中产生两个不同的结果?

=IF(CHOOSE(1, $A$4:$A$17) = 1, VLOOKUP(1, $A$4:$C$17, 2, FALSE), "?")

我的工作表中的单元格 V4 至 V7 都具有完全相同的公式(上面打印的公式),但它们返回的值不同。V4 的返回值是我想要的类型(即单元格 B4 的值,它是一个数字),但其他单元格返回的是"?"。为什么会这样?我该如何解决?在此先感谢您的帮助。

答案1

假设范围内有这些值A4:A6

1
2
3

当你有CHOOSE(1, $A$4:$A$17)

excel 中的数组如果正常求值,将求出公式所在的相应行或列(视情况而定)。如果公式在第 4 行,则将CHOOSE(1, $A$4:$A$17)得到CHOOSE(1, $A$4)。在第 5 行,它将得到CHOOSE(1, $A$5)。这是因为CHOOSE通常不接受数组值。

如果要获取超出范围的列表$A$4:$A$17,则必须将其作为数组公式输入,CHOOSE并且由于它位于更大的公式中,因此这也适用。如果在插入公式后使用Ctrl++而不是单独按 ,您将看到它按预期工作。ShiftEnterEnter

答案2

我不清楚为什么你会CHOOSE在这里使用函数,我建议你通常使用 来检查COUNTIF,即

=IF(COUNTIF($A$4:$A$17,1)>0,VLOOKUP(1,$A$4:$C$17,2,FALSE),"?")

....但在 Excel 2007(或更新版本)中,使用 IFERROR 函数可能更容易,如下所示:

=IFERROR(VLOOKUP(1,$A$4:$C$17,2,FALSE),"?")

如果 1 出现在 ... 中,则这两个公式都将返回 VLOOKUP 的结果。A4:A17否则?

相关内容