【问题标题】:Count unique comma-separated values in column B based on criteria in column A根据 A 列中的条件计算 B 列中唯一的逗号分隔值
【发布时间】:2020-11-07 02:54:58
【问题描述】:

如果 A 列中的数字大于(或小于)X,我如何列出并计算唯一的逗号分隔值(下例中的 B 列)?也就是说,我该如何翻下表...

   Day   |          Fruits
+--------|--------------------------+
         |
    20   |   Apple, Banana, Pearl
         |
    24   |   Apple, Pearl
         |
    32   |   Banana, Pearl
         + 

...进入这个 ????,条件为:Day < 28。

  Fruit    |   Frequency
+----------|---------------+
           |
  Apple    |       2
           |
  Pearl    |       2
           |
  Banana   |       1
           +

@AdamL 在this question 中提出的解决方案非常接近我想要实现的目标,但我不知道如何根据另一列的标准列出值。以下是亚当的想法:

=ArrayFormula(QUERY(TRANSPOSE(SPLIT(JOIN(",",A:A),",")&{"";""}),"select Col1, count(Col2) group by Col1 label count(Col2) ''",0))

【问题讨论】:

  • 您是否考虑过在 Apps 脚本中这样做?

标签: google-sheets google-sheets-formula array-formulas


【解决方案1】:

使用:

=ARRAYFORMULA(QUERY(SPLIT(FLATTEN(
 IF(IFERROR(SPLIT(B2:B, ","))="",,A2:A&"♦"&TRIM(SPLIT(B2:B, ",")))), "♦"),
 "select Col2,count(Col2) 
  where Col1 < 28 
    and Col1 is not null 
  group by Col2 
  label count(Col2)''"))

【讨论】:

    【解决方案2】:

    我认为先过滤 A 列然后拆分:

    =ArrayFormula(query(flatten(split(filter(B2:B,A2:A<28,A2:A<>""),",")),"select Col1,count(Col1) where Col1 is not null group by Col1 label Col1 'Fruit',Count(Col1) 'Count'"))
    

    【讨论】:

      【解决方案3】:

      将“A”列视为日期,将“B”列视为第 1 行作为标题的水果,AdamL 的公式适用于您,只需稍作调整即可:

      =ArrayFormula(QUERY(TRANSPOSE(SPLIT(JOIN(",",B2:B),", ",True)&amp;{"";""}),"select Col1, count(Col2) group by Col1 label count(Col2) ''",0))

      希望这能解决您的问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-02
        • 2019-08-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多