Google sheets 如何在一个单元格中拆分多个文本
我正在努力解决谷歌电子数据表中的问题 如果单元格如下所示,如何在一个单元格中拆分文本 项目 Ax2、B、C、D、Ex3 产品 Ax2、B、C、D、Ex3Google sheets 如何在一个单元格中拆分多个文本,google-sheets,Google Sheets,我正在努力解决谷歌电子数据表中的问题 如果单元格如下所示,如何在一个单元格中拆分文本 项目 Ax2、B、C、D、Ex3 产品 Ax2、B、C、D、Ex3 假设字符串为A1,请尝试 ={"Product", "Quantity"; ArrayFormula(split(transpose(split(A1, ", ", 0)&if(regexmatch(split(A1, ", ", 0), "x\d
假设字符串为A1,请尝试
={"Product", "Quantity"; ArrayFormula(split(transpose(split(A1, ", ", 0)&if(regexmatch(split(A1, ", ", 0), "x\d*$"), , "x1")), "x"))}
改变射程以适应
若您想处理多行并创建每个产品的数量总和,可以尝试
=query(ArrayFormula(split(flatten(split(A1:A4, ", ", 0)&if(regexmatch(split(A1:A4, ", ", 0), "x\d*$"), , "x1")), "x")), "Select Col1, sum(Col2) where Col1 <>'' group by Col1 label Col1 'Product', sum(Col2) 'Quantity'", 0)
=query(ArrayFormula(split(plant)(split(A1:A4,“,”,0))和if(regexmatch(split(A1:A4,“,”,0),“x\d*”,“x1”),“x”),“Select Col1,sum(Col2),其中Col1”按Col1标签Col1“产品”,sum(Col2)“数量”,0分组)
假设您希望聚合这些字符串中的许多行,并且第一个字符串位于A2中:
=ArrayFormula(查询(拆分(拆分(拆分(拆分(REGEXREPLACE)(过滤器(A2:A,A2:A“”)&“,”,“,”,“x1,”,”,“,”),“x”),“选择列1,按列1标签列1“产品”,列2“数量”分组求和(列2))
这与JPV建议的解决方案略有不同,因为它预先过滤的结果,这样您就不必专门命名范围以避免错误。它还采用了不同的方法进行转换
工作原理:
过滤器(A2:A,A2:A“”)
这确保了较大的公式仅适用于列中的非空白单元格,以避免出现错误
&“,”
这将附加到每个字符串的末尾,以便每个字符串的每个元素都临时以逗号结尾。这将在下面的转换步骤中使用
REGEXREPLACE(uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
然后将每个逗号替换为x1,
。请注意,即使列表中的条目后面已经有x2、x3等,现在也会添加此条目。例如,一个原始字符串(如“Ax2,B,C,D,Ex3”)此时在内存中的外观如下:“Ax2x1,Bx1,Cx1,Dx1,Ex3x1”。以后没关系了
SPLIT(“,”)
然后字符串将在逗号处拆分。例如,示例字符串在内存中如下所示:
Ax2x1 | Bx1 | Cx1 | Dx1 | Ex3x1
展平
将这些水平阵列转换为一个长垂直阵列
TRIM
将删除多余的空间
因此,上面的条目现在在内存中看起来像这样:
Ax2x1
Bx1
Cx1
Dx1
Ex3x1
SPLIT(\uuuuuuuuuuuuuuuuuuux”)
现在,这些字符串中的每一个都将在“x”处再次拆分,留下以下内容:
A | 2 | 1
B | 1
C | 1
D | 1
E | 3 | 1
QUERY(uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
最后,QUERY
将对所有这些操作起作用,只选择第一列以及第一列中每个唯一元素的第二列总和。(第三个虚拟列将被忽略。)然后将所选标签分配给其余两列中的每一列