如何使用度量单位对相似项目进行分组和添加
How to group and add similar items with a unit of measurement
我有以下电子表格。我需要压缩此电子表格的内容。我想知道是否可以将类似的项目(例如 1952)分组并在下一列中添加数字并输出 5m / 2w 或类似的东西? 1951 将被压缩到 9w。此数据不断变化,并且经常添加新的参考编号。
当数字紧挨着字母时,Sheets 不能很好地添加数字,因此您需要使用 left() 和 right() 将这些单元格拆分为数字列和字母列。将 left() 中的数字也放入 value() 函数中,以便 Sheets 知道它是一个数字。
创建辅助列后,您可以使用 query() 来合并和汇总您的值。查询语言可能会变得棘手,所以我推荐 reference page。吐出总和和字母后,您可以将它们连接到另一列(对我来说是 J)。
=ARRAYFORMULA(SUBSTITUTE(TRIM(SPLIT(TRANSPOSE(QUERY(TRANSPOSE({
SORT(UNIQUE(INDIRECT("B2:B"&COUNTA(B2:B)+1)&"♦")),IF(ISNUMBER(
QUERY(QUERY(TO_TEXT(SPLIT(TRANSPOSE(QUERY(TRANSPOSE(QUERY(IFERROR({
B2:B&"♦", REGEXEXTRACT(C2:C, "\d+")*1, REGEXEXTRACT(C2:C, "\d+(.+)")}),
"select Col1,sum(Col2),Col3
where Col3 is not null
group by Col1,Col3
label sum(Col2)''", 0)),,999^99)), "♦")),
"select count(Col1)
group by Col1
pivot Col2", 0), "offset 1", 0)), SUBSTITUTE(
QUERY(QUERY(TO_TEXT(SPLIT(TRANSPOSE(QUERY(TRANSPOSE(QUERY(IFERROR({
B2:B&"♦", REGEXEXTRACT(C2:C, "\d+")*1, REGEXEXTRACT(C2:C, "\d+(.+)")}),
"select Col1,sum(Col2),Col3
where Col3 is not null
group by Col1,Col3
label sum(Col2)''", 0)),,999^99)), "♦")),
"select count(Col1)
group by Col1
pivot Col2", 0), "limit 0", 1), " ", ), )}),,999^99)), "♦")), " ", " / "))
spreadsheet demo
我有以下电子表格。我需要压缩此电子表格的内容。我想知道是否可以将类似的项目(例如 1952)分组并在下一列中添加数字并输出 5m / 2w 或类似的东西? 1951 将被压缩到 9w。此数据不断变化,并且经常添加新的参考编号。
当数字紧挨着字母时,Sheets 不能很好地添加数字,因此您需要使用 left() 和 right() 将这些单元格拆分为数字列和字母列。将 left() 中的数字也放入 value() 函数中,以便 Sheets 知道它是一个数字。
创建辅助列后,您可以使用 query() 来合并和汇总您的值。查询语言可能会变得棘手,所以我推荐 reference page。吐出总和和字母后,您可以将它们连接到另一列(对我来说是 J)。
=ARRAYFORMULA(SUBSTITUTE(TRIM(SPLIT(TRANSPOSE(QUERY(TRANSPOSE({
SORT(UNIQUE(INDIRECT("B2:B"&COUNTA(B2:B)+1)&"♦")),IF(ISNUMBER(
QUERY(QUERY(TO_TEXT(SPLIT(TRANSPOSE(QUERY(TRANSPOSE(QUERY(IFERROR({
B2:B&"♦", REGEXEXTRACT(C2:C, "\d+")*1, REGEXEXTRACT(C2:C, "\d+(.+)")}),
"select Col1,sum(Col2),Col3
where Col3 is not null
group by Col1,Col3
label sum(Col2)''", 0)),,999^99)), "♦")),
"select count(Col1)
group by Col1
pivot Col2", 0), "offset 1", 0)), SUBSTITUTE(
QUERY(QUERY(TO_TEXT(SPLIT(TRANSPOSE(QUERY(TRANSPOSE(QUERY(IFERROR({
B2:B&"♦", REGEXEXTRACT(C2:C, "\d+")*1, REGEXEXTRACT(C2:C, "\d+(.+)")}),
"select Col1,sum(Col2),Col3
where Col3 is not null
group by Col1,Col3
label sum(Col2)''", 0)),,999^99)), "♦")),
"select count(Col1)
group by Col1
pivot Col2", 0), "limit 0", 1), " ", ), )}),,999^99)), "♦")), " ", " / "))