Excel 中的 LOOKUP 问题

Excel 中的 LOOKUP 问题

我目前遇到了 Excel 中 LOOKUP 函数的问题

有时它能找到正确的数据,有时却找不到。

我制作了下面的图片示例,上面的两个示例给出了错误的结果,而下面的两个示例给出了正确的结果。

我的语法或 LOOKUP 使用是否不正确?我该如何更正才能获得预期结果?

我不知道我做错了什么

这是数据的 csv 表(我的德国计算机在公式中也使用“;”分隔符,您可能需要对其进行编辑)

;"LOOKUP(C2;D2:D4;A2:A4)";;;;;
D4;"=LOOKUP(C2;D2:D4;A2:A4)";3400;3400;;;
CI;;;2390;;;
F5;;;900;;;
;"LOOKUP(C6;D6:D11;A6:A11)";;;;;
D4;"=LOOKUP(C6;D6:D11;A6:A11)";3600;900;;;
F4;;;3600;;;
CI;;;2390;;;
D4;;;900;;;
B4;;;2250;;;
D4;;;900;;;
;;;;;;
;;;;;;
;"LOOKUP(C15;D15:D17;A15:A17)";;;;;
D4;"=LOOKUP(C15;D15:D17;A15:A17)";3600;900;;;
F4;;;3600;;;
CI;;;2390;;;
;;;;;;
;"LOOKUP(C20;D20:D27;A20:A27)";;;;;
D4;"=LOOKUP(C20;D20:D27;A20:A27)";3600;900;;;
F4;;;3600;;;
F6;;;3650;;;
F5;;;3700;;;
CI;;;2390;;;
D4;;;900;;;
B4;;;2250;;;
D4;;;900;;;

答案1

失败的原因LOOKUP是因为 lookup_vector 中的值必须放在升序

...,-2,-1,0,1,2,...,AZ,假,真;

否则LOOKUP可能无法返回正确的值

查看链接了解更多信息:

https://support.office.com/en-gb/article/LOOKUP-function-446d94af-663b-451d-8251-369d5e3864cb

答案2

如果我明白了你要做什么,我建议使用INDEXMATCH

请参阅我的示例,您可以在第一个示例中使用它:

=INDEX(A2:A4,MATCH(C2,D2:D4,0),1)

在此处输入图片描述

您还可以使用OFFSET经常被忽视的功能:

=OFFSET(A2,MATCH(C2,D2:D4,0)-1,0)

答案3

@Jonathan,我想建议两种配方。

公式 1 是,, =LOOKUP(5,1/(D317:D319 = C317),A317:A319)

公式 2 为,, =LOOKUP($C$317,D317:D$339,A317:A$339)

注意:公式 1 的数据范围是 A317 到 D317。

注意:公式 2 的数据范围是 A317 至 D339。

对于第一个公式。

C317 中的查找值

查找范围是 D317 至 D319。

结果向量范围是 A317 至 A319。

注意:您需要为每个数据范围编写公式。

笔记对于公式 1,同样不应该使用 5,而应该使用任何大于 1 的值。使用 5/1 来查找真与假。

其他注意事项数据范围应按升序排列。

另外,对于公式 2,由于只有空白行,我使用了整个数据范围。

希望这对你有帮助,我已测试过解决方案并发布。如果你需要,我可以上传屏幕截图。

答案4

我发现如果我重新对表格进行排序,尽管一切看起来都井然有序,LOOKUP 也会返回正确的答案。

相关内容