Lor*_*rae 4 worksheet-function microsoft-excel microsoft-excel-2013
我正在尝试使用 Excel (2013) 来查找值 1 是否出现在给定的集合中(使用该CHOOSE()
函数,然后,如果是,则使用该VLOOKUP()
函数将单元格中的值直接打印到它的右侧。为什么会当公式本身相同时,此公式会在不同的单元格中产生两种不同的结果?
=IF(CHOOSE(1, $A$4:$A$17) = 1, VLOOKUP(1, $A$4:$C$17, 2, FALSE), "?")
Run Code Online (Sandbox Code Playgroud)
我的工作表中的单元格 V4 到 V7 都具有完全相同的公式(上面打印的公式),但它们返回不同的值。V4 的返回值是我想要的类型(即单元格 B4 的值,它是一个数字),而其他的则返回"?"
. 为什么会这样,我该如何解决?在此先感谢您的帮助。
假设范围内有这些值A4:A6
:
1
2
3
Run Code Online (Sandbox Code Playgroud)
当你有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+ Shift+Enter插入公式后,而不是按Enter孤单。
我不清楚你为什么会CHOOSE
在这里使用函数,我建议你更经常地检查COUNTIF
,即
=IF(COUNTIF($A$4:$A$17,1)>0,VLOOKUP(1,$A$4:$C$17,2,FALSE),"?")
Run Code Online (Sandbox Code Playgroud)
....但在 Excel 2007(或更新版本)中,使用 IFERROR 函数可能更容易,如下所示:
=IFERROR(VLOOKUP(1,$A$4:$C$17,2,FALSE),"?")
Run Code Online (Sandbox Code Playgroud)
如果 1 出现在A4:A17
....otherwise 中,这两个公式都将返回 VLOOKUP 的结果?