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 而不仅仅是 输入)
我正在寻找一个公式(或代码),它在一列中找到一个值,然后在日期之间的那一行中找到该值,当多个日期 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 而不仅仅是 输入)