我目前遇到了 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
答案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 也会返回正确的答案。