【问题标题】:VLookup if Lookup Value Located in Column to the Right of Table ArrayVLookup 如果查找值位于表数组右侧的列中
【发布时间】:2011-04-25 16:03:30
【问题描述】:

我设置了一个电子表格,其中已经包含大量数据。 A 列保存日期对象,B 列保存数值。我想使用 Vlookup 来查找数值并返回相应的日期值。问题是 Vlookup 在表数组的最左边一列中搜索,这是一个问题,因为该列包含日期。如果我正在查找日期,这将很容易做到,但我该如何查找数值。我知道交换日期和数字列可以做到这一点,但我正在寻找一种解决方案,让我能够保持电子表格的结构完好无损。

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

    例子

    date         value
    01/01/2010    4
    10/02/2011    5
    15/03/2011    2
    
    
    =INDICE(A2:A4;CONFRONTA(5;B2:B4;0))
    

    这会给你10/02/2011

    这些是意大利语函数名称。 英文对应的分别是INDEXMATCH

    编辑。用户提出问题后更新。

    假设您的日期在 a2:a7 范围内,其值在 b2:b7 范围内,并且您正在查找值为 5 的最新日期:

    =MAX(IF($B$2:$B$7=5;$A$2:$A$7))
    

    您必须使用数组公式,因此您需要在输入后按ctrl+shift+enter

    【讨论】:

    • 谢谢,它工作得很好,但我还有一件事要补充。所以从我的测试来看,一旦找到值,它就会返回日期。但是,我可以预见在不同日期的表中存在相同的值。我相信这将返回第一次约会。但是,在我的电子表格中,日期是递增的(最近是递减的),所以如果值重复,我希望看到返回与该值对应的最近日期。因此,如果值 X 是该列中的最后一个值 X,则类似于返回日期。再次感谢您的帮助。
    • 意大利excel版使用";"作为参数分隔符。使其适应您的版本。 :)
    • @techman:VLOOKUP 也会返回第一个值——这只是确认这个答案完全符合您的要求。
    • 嗨让-弗朗索瓦。在我看来,他需要得到最近的日期,所以我的第一个答案不符合他的需要。 :)
    • 您好,我不想让您感到痛苦,因为这两种解决方案都非常好,但我意识到我需要一些稍微不同的东西。基本上,电子表格中的条目是通过 VB 脚本插入的,实际上该脚本插入的条目是格式为“mm/dd/yyyy 00:00:00”的日期时间字符串。因此,不幸的是, max 函数将不起作用,因为它会获取对应于特定日期的最大十进制值。所以我真正需要的是查找某个值 X 并且如果它出现多次返回最接近底部的日期时间字符串。
    猜你喜欢
    • 1970-01-01
    • 2017-01-10
    • 1970-01-01
    • 2014-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多