Excel:在列中查找值,然后在该行中搜索日期值,return 值在左侧

Excel: find value in column, then search for date value in that row, return value to the left

我正在寻找一个公式(或代码),它在一列中找到一个值,然后在日期之间的那一行中找到该值,当多个日期 return 最大值时,然后 return将值转移到左侧。我不能使用辅助列。我尝试了几个嵌套的 index/match 公式,但没有成功...

对于下面的例子:

参数 1:在 A 列中找到 Fork

参数 2:在该行 (4) 中,找到介于 1 Jan 18 和 5 Jan 18 之间的日期

参数3:当在该日期范围内找到多个日期时,return最大值

参数 4:Return 该日期左侧列中的值

结果:D 列中 black

    A       B       C           D       E           F             G
1   ID      Colour 1Date 1      Colour 2Date 2      Colour 3      Date 3
2   Plate   Green   1-Jan-18    Red     23-Jan-18   L blue        14-Feb-18
3   Bowl    Blue    6-Jan-18    Brown   28-Jan-18   Yellow/Green  19-Feb-18
4   Fork    Yellow  2-Jan-18    Black   4-Jan-18    Turquoise     24-Feb-18
5   Knive   Purple  16-Jan-18   White   7-Feb-18    Maroon        1-Mar-18
6   Spoon   Pink    21-Jan-18   Orange  12-Feb-18   L pink        6-Mar-18

我希望这是可能的!非常非常感谢。

试试这个

哪里
I10 = 要搜索的 ID
I11 = 最小日期(2018 年 1 月 1 日)
I12 = 最大日期(2018 年 1 月 5 日)

J10 = =MATCH($I,$A:$A,0) 如果ID

得到行号
=INDEX(INDEX($A:$G,$J,),
       MATCH(
             MAXIFS(INDEX($A:$G,$J,),
                    INDEX($A:$G,$J,),">="&$I,
                    INDEX($A:$G,$J,),"<="&$I
                   ),
             INDEX($A:$G,$J,),0
             ) - 1
      )


INDEX($A:$G,$J,)获取ID的数据行(在公式中重复多次)
MAXIFS(...) 获取满足 >=<= 条件的最大日期
MATCH(MAXIF(...), [ID data row],0) 获取 MAXIF
返回的日期的列号 INDEX( [ID data row], MATCH(MAXIF(...), [ID data row],0) - 1)returns颜色


没有 MAXIFS

的替代公式
=INDEX(INDEX($A:$G,$J,),
            MATCH(
                  MAX(IFERROR(({0,0,1,0,1,0,1})*(INDEX($A:$G,$J,)>=$I)*(INDEX($A:$G,$J,)<=$I)*(INDEX($A:$G,$J,)),0)),
            INDEX($A:$G,$J,),0
            ) - 1
      )

作为数组公式输入(使用 CtrlShiftEnter 而不仅仅是 输入)