【问题标题】:Google sheet array formula with Filter & Join带有过滤器和连接的 Google 工作表数组公式
【发布时间】:2021-03-25 19:05:29
【问题描述】:

我需要根据以下数据建表:

Ref Product
R1 ProdA
R2 ProdC
R1 ProdB
R3 ProdA
R4 ProdC

这里是我需要的结果:

My Product All Ref
ProdA R1#R3
ProdC R2#R4

特殊之处在于“我的产品”列是在别处计算的。所以我需要一个基于“我的产品”列的数组公式来查看第一个表来构建“所有参考”列。你跟着我?

我知道 Arrayformula 与 filter 和 join 不兼容...我希望有一个像 Google sheet array formula + Join + Filter 这样的解决方案,但不确定是否了解所有步骤以及是否真的适合我的案例研究。

希望你能帮忙。

【问题讨论】:

    标签: google-sheets google-sheets-formula


    【解决方案1】:

    你可以试试这样的:

    CREDIT:player0 分享给类似问题的方法

    =ARRAYFORMULA(substitute(REGEXREPLACE(TRIM(SPLIT(TRANSPOSE(
     QUERY(QUERY({B2:B&"?", A2:A&"#"}, 
     "select max(Col2) 
      where Col1 !='' 
      group by Col2 
      pivot Col1"),,999^99)), "?")), "#$", )," ",""))
    

    一步一步:

    【讨论】:

    • 感谢 Nabnub 的提议,我认为你非常接近。唯一的问题是结果屏幕截图中的 D 列。此列由另一个公式设置。我只需要一个基于 Col D 中给出的 Refs 的 Col E 中的数组公式。您认为这在不添加新步骤的情况下可行吗?
    • 那么你只能从这个公式中取第二列... =index(solution formula,,2)
    • 我设法做到了:在我的工作表中添加 2 列 (F,G),公式 =ARRAYFORMULA(REGEXREPLACE(TRIM(SPLIT(TRANSPOSE(QUERY(QUERY({C1:C&IF( LEN(C1:C),",",), D1:D&IF(LEN(C1:C),"|",)}, "SELECT MAX(Col2) WHERE Col1 != '' GROUP BY Col2 PIVOT Col1") ,,999^99)),",")),"\|$",)) 并在我的列表之后添加另一个公式以搜索: =ARRAYFORMULA(VLOOKUP(TO_TEXT(A1:A),F:G, 2,假))
    猜你喜欢
    • 2021-06-16
    • 2018-01-15
    • 2020-11-24
    • 1970-01-01
    • 1970-01-01
    • 2020-05-13
    • 1970-01-01
    • 1970-01-01
    • 2021-06-08
    相关资源
    最近更新 更多