我需要 K7 中的 ARRAYFORMULA、VLOOKUP 或 FILTER 公式:
如果 J7:J 中的值为 >= E7:E AND <= F7:F AND D7:D = "Traverse",则从 A7:A 中输入日期
我有多种解决方案可以处理各个行,但没有一个可以作为数组公式来影响整列。
=IF(AND(J7>=E7:E,J7<=F7:F,D7:D="Traverse"),OFFSET(J7,0,-9),"")
或
=IFERROR(FILTER(A:A,E:E<=J7,F:F>=J7,D:D="Traverse"))
或
=ArrayFormula(IFNA(vlookup(J7:J2064,Query(sort(filter({date("20"&left(A7:A,2),mid(A7:A,3,2),right(A7:A,2)),A7:G},D7:D="Traverse"),6,1,1,0),"Select Col6,Col2",0),2,1)))
这里有一个示例表,如果有人可以提供任何线索:)
https://docs.google.com/spreadsheets/d/1SYbhfyIA2KoZF0k-TuIqm-Kn9L9o0I16EGbSXDaTABU/edit?usp=sharing
答案 0 :(得分:0)
使用:
=ARRAYFORMULA(IF((J7:J>=E7:E)*(J7:J<=F7:F)*(D7:D="Traverse"), A7:A, ))
=ARRAYFORMULA(IFNA(VLOOKUP(J7:J, SORT({
FILTER({E7:E, A7:A}, D7:D="Traverse");
FILTER({F7:F+1,H7:H}, D7:D="Traverse")}), 2, 1)))
答案 1 :(得分:0)
感谢您的帮助,最后我设法从 Google 帮助论坛上的某个人那里获得了一个公式。如果您有兴趣,这是一个可行的解决方案:
=ArrayFormula(IFNA(vlookup(J7:J,sort({filter({Register!E7:F,Register!A7:A},Register!D7:D="Traverse")
;if({index(sort(filter({Register!A7:A,Register!E7:E,Register!F7:F},Register!D7:D="Traverse"),2,1),0,2);""}
>{"";index(sort(filter({Register!A7:A,Register!E7:E,Register!F7:F},Register!D7:D="Traverse"),2,1),0,3)},
{{"";index(sort(filter({Register!A7:A,Register!E7:E,Register!F7:F},Register!D7:D="Traverse"),2,1),0,3)}+1,
{index(sort(filter({Register!A7:A,Register!E7:E,Register!F7:F},Register!D7:D="Traverse"),2,1),0,2);""},
iferror({index(sort(filter({Register!A7:A,Register!E7:E,Register!F7:F},Register!D7:D="Traverse"),2,1),0,2)
;""}/0,"")},)},1,1),3,1)))