根据 A 列中的条件计算 B 列中以逗号分隔的唯一值
Count unique comma-separated values in column B based on criteria in column A
如果 A 列中的数字大于(或小于)X,我如何列出和计算唯一的逗号分隔值(下例中的 B 列)?换句话说,我如何将下面的 table...
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 中提出的解决方案非常接近我想要实现的目标,但我不知道如何根据另一列的标准列出值。以下是 Adam 的想法:
=ArrayFormula(QUERY(TRANSPOSE(SPLIT(JOIN(",",A:A),",")&{"";""}),"select Col1, count(Col2) group by Col1 label count(Col2) ''",0))
考虑第 'A' 列作为天数,第 'B' 列作为水果,第 1 行作为 headers,AdamL 的公式稍作调整即可为您工作,如下所示:
=ArrayFormula(QUERY(TRANSPOSE(SPLIT(JOIN(",",B2:B),", ",True)&{"";""}),"select Col1, count(Col2) group by Col1 label count(Col2) ''",0))
希望这能解决您的问题。
使用:
=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)''"))
我认为先在 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'"))
如果 A 列中的数字大于(或小于)X,我如何列出和计算唯一的逗号分隔值(下例中的 B 列)?换句话说,我如何将下面的 table...
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 中提出的解决方案非常接近我想要实现的目标,但我不知道如何根据另一列的标准列出值。以下是 Adam 的想法:
=ArrayFormula(QUERY(TRANSPOSE(SPLIT(JOIN(",",A:A),",")&{"";""}),"select Col1, count(Col2) group by Col1 label count(Col2) ''",0))
考虑第 'A' 列作为天数,第 'B' 列作为水果,第 1 行作为 headers,AdamL 的公式稍作调整即可为您工作,如下所示:
=ArrayFormula(QUERY(TRANSPOSE(SPLIT(JOIN(",",B2:B),", ",True)&{"";""}),"select Col1, count(Col2) group by Col1 label count(Col2) ''",0))
希望这能解决您的问题。
使用:
=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)''"))
我认为先在 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'"))