【问题标题】:ARRAYFORMULA FILTER VLOOKUP solution for multiple condition formula Google sheetsARRAYFORMULA FILTER VLOOKUP 解决方案多条件公式谷歌表
【发布时间】:2021-09-26 20:36:29
【问题描述】:

我需要 K7 中的 ARRAYFORMULA、VLOOKUP 或 FILTER 公式:

如果 J7:J 中的值 >= E7:E AND

我有多种解决方案来处理各个行,但没有一个可以作为数组公式来影响整个列。

=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

【问题讨论】:

    标签: google-sheets google-sheets-formula


    【解决方案1】:

    使用:

    =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)))
    

    【讨论】:

    • 感谢玩家,它从 184600 开始填充每个单元格,只有 2 个日期。当只有大约 10% 的值符合标准并且应该有几个日期时,我有点困惑......这可能与 J 列中的值有关吗?
    • @JonBowles 修复了 vlookup 效果。
    • 似乎还在做同样的事情?
    • @JonBowles 见 P7 中的公式。输出是遍历的所有行。 vlookup 的作用是在 J 列中获取数字,如果该数字等于或大于 P 列中的数字,它将从 Q 列中召唤值(日期)
    • Thankyou Player0,但是您能看到 J 列中大约 90% 的值不在 E 列和 F 列的范围内,但在 K 列中仍有值/日期. 例如,从 186800-312300(1255 行)在 K 列中具有值/日期但不应该在列 E 和 F 中没有对应值的任何值...
    【解决方案2】:

    感谢您的帮助,最后我设法从 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)))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-29
      • 1970-01-01
      • 2021-05-24
      相关资源
      最近更新 更多