注意:我不需要使用Excel解决实际问题的解决方案。我想了解并讨论这种行为。我希望看到,如果其他人可以重现这种情况并让他们意识到这一点。
在以两周为基础的计算中,我必须填写有效期为一个月的两周间隔的数字。例如,12月的前两周,我必须再次使用价值12
,而不是一月的第一周到第几周,我必须再次使用1
,再过两周。
因此,每个两周的时间段都有一个列,其中包含当前月份的字段(屏幕截图中为绿色区域)。该月有效的值位于第二个表(红色区域)中。要检索当前期间的值,我使用LOOKUP()
调用:
(A2): =LOOKUP(A1;$A$9:$H$9;$A$10:$H$10)
...
(P2): =LOOKUP(P1;$A$9:$H$9;$A$10:$H$10)
正如您在屏幕截图中看到的那样,该函数会破坏并检索错误值。
为了测试,我用国际拼音字母而不是月份名称再现了这种情况。因此:
(A5): =LOOKUP(A4;$A$12:$H$12;$A$13:$H$13)
...
这一次,该功能运作良好。因此我想,它与月份的名称有关。也许他们有一些内部表示,尽管事实上,单元格被格式化为" text"。
我已经在红色区域测试了垂直向量而不是水平向量。他们导致了同样的情况。
注意:
我最终使用HLOOKUP()
和VLOOKUP()
解决了原始问题。在那里我找到了另一条线索。如果[not_exact_match]
已提交或设置为true,则两者都显示相同的行为,但如果强制执行exact_match
则工作正常。那么, Februar 如何与 Dezember 大致匹配?
答案 0 :(得分:2)
请参阅http://office.microsoft.com/en-gb/excel-help/lookup-function-HP010342671.aspx
要使LOOKUP功能正常工作,要查找的数据必须按升序排序。
“Dezember”,“Januar”,“Februar”等文本的情况并非如此......
如果您使用真实日期01.12.2013,01.01.2014,01.02.2014,...并将它们格式化为“MMMM”,那么它应该有效。当然,lookup_value也必须采用这种形式。
与VLOOKUP相同但不完全匹配。 http://office.microsoft.com/en-gb/excel-help/vlookup-function-HP010343011.aspx
如果range_lookup为TRUE或被省略,则table_array第一列中的值必须按升序排序;否则,VLOOKUP可能无法返回正确的值。