代码之家  ›  专栏  ›  技术社区  ›  Max Makhrov TheMaster

ArrayFormula通过多个标准检索列表

  •  0
  • Max Makhrov TheMaster  · 技术社区  · 7 年前

    输入

    TaskId  ClientId Canceled
    1             1         0
    2             1         0
    3             1         0
    4             2         0
    5             2         1
    6             2         0
    7             3         0
    

    报告单

    ClientId
    1
    1
    2
    3
    

    Arrayformula通过客户端从数据中获取所有TaskID,其中Canceled=0

    TaskIds
    1
    2
    3
    1
    2
    3
    4
    6
    7
    

    我有 join + filter

    ClientId  TaskIds
    1          1,2,3
    1          1,2,3
    2          4,6
    3          7
    

    然后我从这个helper\u列得到结果:

    =transpose(split(join(",", helper_colum)))

    2 回复  |  直到 7 年前
        1
  •  1
  •   TheMaster    7 年前

    试试这个:

      =ARRAYFORMULA(TRANSPOSE(SPLIT(CONCATENATE("🍻"&TRANSPOSE(IF(TRANSPOSE(A11:A14)=B2:B8,IF(C2:C8=0,A2:A8,""),""))),"🍻")))
    

    A11:A14=报告表客户ID。

    干杯

        2
  •  1
  •   JPV    7 年前

    在“报告”选项卡中 this spreadsheet

    =arrayformula(vlookup(A2:A5&"", regexreplace({unique(filter(Data!B2:B, Data!C2:C=0))&"", trim(transpose(query(if((transpose(unique(filter(Data!B2:B, Data!C2:C=0)))=filter(Data!B2:B, Data!C2:C=0))*len(filter(Data!B2:B, Data!C2:C=0)),filter(Data!A2:A, Data!C2:C=0)&",",),,50000)))},",$", ), 2, 0))