在 Google 表格中,如何根据在不同列中拆分字符串的结果来聚合值(MAX、MIN、AVERAGE)?
In Google Sheets, how can one aggregate values (MAX, MIN, AVERAGE) based on the result of splitting a string in a different column?
如果我有一个具有以下值的 table,我如何生成以下 table?结果 table 将每个标签分开并计算带有提及标签的行数 (COUNT) 以及给定标签的最大值。
+-----+-------------+
| VAL | TAGS |
+-----+-------------+
| 4 | html, css |
+-----+-------------+
| 2 | js, ts |
+-----+-------------+
| 3 | js, css |
+-----+-------------+
+------+-------+-------+
| TAG | COUNT | MAX |
+------+-------+-------+
| html | 1 | 4 |
+------+-------+-------+
| css | 2 | 4 |
+------+-------+-------+
| js | 2 | 3 |
+------+-------+-------+
| ts | 1 | 2 |
+------+-------+-------+
尝试:
=ARRAYFORMULA(QUERY(SPLIT(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(
IF(IFERROR(SPLIT(B3:B, ","))<>"", "♀"&A3:A&"♦"&SPLIT(
SUBSTITUTE(B3:B, ", ", ","), ",")&"♦", )),,999^99)),,999^99), "♀")), "♦"),
"select Col2,count(Col1),avg(Col1),max(Col1),min(Col1)
group by Col2
label Col2'tags'"))
使用这样的公式:
=query (
arrayformula (
split (
transpose (
split (
textjoin (
",",true,
arrayformula (
{filter(A90:A,A90:A<>"") & "✫" &
trim(split(filter(B90:B,A90:A<>""),","))
}
)
),",")
),"✫"
)
),
"select Col2, count(Col2), max(Col1) where Col2 is not null group by Col2 label Col2 'Tag'")
如果我有一个具有以下值的 table,我如何生成以下 table?结果 table 将每个标签分开并计算带有提及标签的行数 (COUNT) 以及给定标签的最大值。
+-----+-------------+
| VAL | TAGS |
+-----+-------------+
| 4 | html, css |
+-----+-------------+
| 2 | js, ts |
+-----+-------------+
| 3 | js, css |
+-----+-------------+
+------+-------+-------+
| TAG | COUNT | MAX |
+------+-------+-------+
| html | 1 | 4 |
+------+-------+-------+
| css | 2 | 4 |
+------+-------+-------+
| js | 2 | 3 |
+------+-------+-------+
| ts | 1 | 2 |
+------+-------+-------+
尝试:
=ARRAYFORMULA(QUERY(SPLIT(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(
IF(IFERROR(SPLIT(B3:B, ","))<>"", "♀"&A3:A&"♦"&SPLIT(
SUBSTITUTE(B3:B, ", ", ","), ",")&"♦", )),,999^99)),,999^99), "♀")), "♦"),
"select Col2,count(Col1),avg(Col1),max(Col1),min(Col1)
group by Col2
label Col2'tags'"))
使用这样的公式:
=query (
arrayformula (
split (
transpose (
split (
textjoin (
",",true,
arrayformula (
{filter(A90:A,A90:A<>"") & "✫" &
trim(split(filter(B90:B,A90:A<>""),","))
}
)
),",")
),"✫"
)
),
"select Col2, count(Col2), max(Col1) where Col2 is not null group by Col2 label Col2 'Tag'")