有没有人遇到LOOKUP()的奇怪行为?

注:我不需要解决Excel的实际问题要解决的问题。 我想了解和讨论这个行为。 我想看看,如果别人能够重现这种情况,并让他们意识到这一点。

  • debugging问题的情况极其简单。
  • 我在一个合作的环境中使用Excel 2007

在一个为期两周的计算中,我必须填写为期两个星期的有效期为一个月的数字。 例如十二月的前两个星期,我必须再次使用价值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) 

正如你在屏幕截图中所看到的那样,这个函数会造成严重的后果,并且会检索到错误的值。

为了testing,我用国际音标而不是月份名称复制了情况。 因此:

 (A5): =LOOKUP(A4;$A$12:$H$12;$A$13:$H$13) ... 

这一次,function运作良好。 所以我想,这跟几个月的名字有关。 也许他们有一些内部表示,尽pipe事实上,单元格被格式化为“文本”。

我已经在红色区域testing了垂直向量而不是水平面。 他们导致相同的情况。

注意:

我终于通过使用HLOOKUP()VLOOKUP()解决了原来的问题。 在那里我发现了另一个线索。 如果[not_exact_match]被提交或设置为true,则两者显示相同的行为,但如果exact_match被强制执行,则工作正常。 那么, Februar怎么能和Dezember大致相当呢?

请参阅http://office.microsoft.com/en-gb/excel-help/lookup-function-HP010342671.aspx

为使LOOKUP函数正常工作,被查找的数据必须按升序sorting。

文本“Dezember”,“Januar”,“Februar”,…

如果你使用真实date01.12.2013,01.01.2014,01.02.2014,…和格式为“MMMM”,那么它应该工作。 当然,lookup_value也必须是这种forms。

与VLOOKUP相同的问题,而不是完全匹配。 http://office.microsoft.com/en-gb/excel-help/vlookup-function-HP010343011.aspx

如果range_lookup为TRUE或省略,则table_array的第一列中的值必须按照升序排列; 否则,VLOOKUP可能不会返回正确的值。