【问题标题】:How to return the first matched record based on multiple criteria in ExcelExcel中如何根据多个条件返回第一个匹配的记录
【发布时间】:2018-11-15 08:16:32
【问题描述】:

我遇到一个问题,我想根据匹配多个条件从另一个表中获取返回值。但是匹配的记录可能多于1,所以在这种情况下我只想获取第一个匹配的记录;(例如,第一个记录位于A6,第二个匹配记录位于A15,所以我需要A6);这是样本数据:

我想根据以下条件从 table2 中获取区域:

  1. 表 1!Date.Truck= 表 2!Date+Truck

  2. (表 1!实际时间>表 2!开始时间) 和(表一!实际时间

但例如我有 3 行匹配上述条件,但在这种情况下,我只想要第一个匹配,这里是 (1),所以我得到了新泽西。

我正在尝试用 Small 函数编写一个数组公式,但它不起作用:

={SMALL(IF((A2='Table 2'!$A:$A)--(D2>'Table 2'!$C:$C)--(D2<'Table 2'!$D:$D),'Table 2'!$B:$B),1)}

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

    {=INDEX('Table 2'!$B:$B, MIN(IF(('Table 2'!$A:$A=A2)*('Table 2'!$C:$C&lt;=C2)*('Table 2'!$D:$D&gt;=C2)=1, ROW('Table 2'!$B:$B))), 1)}

    这个想法是MIN(IF(('Table 2'!$A:$A=A2)*('Table 2'!$C:$C&lt;=C2)*('Table 2'!$D:$D&gt;=C2)=1, ROW('Table 2'!$B:$B))) 为您提供符合条件的最小行。

    ('Table 2'!$A:$A=A2)*('Table 2'!$C:$C&lt;=C2)*('Table 2'!$D:$D&gt;=C2) 为您提供 0 和 1 的数组。

    【讨论】:

    • 有效,应添加 {}:=INDEX('Table 2'!B:B, MIN(IF(('Table 2'!A:A=A2)*('Table 2'! C:C=C2)=1, ROW('Table 2'!B:B))), 1)
    • 是的,我总是忘记告诉人们数组公式
    猜你喜欢
    • 2021-12-30
    • 1970-01-01
    • 2017-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多