求助,一个单元格中:甲*5,乙*2,甲*5,丙*12,丁*4
excel吧
全部回复
仅看楼主
level 6
dream龙少 楼主
求助,一个单元格中:甲*5,乙*2,甲*5,丙*12,丁*4……所有的信息在一个单元格中,有多少条不固定,要把一样的数量相加最后显示在一个单元格中,如刚才的要显示成甲*10,乙*2,丙*12,丁*4
怎么写公式
2026年01月15日 00点01分 1
level 11
先按 , 分列到辅助列,再计算,再合并,比较简单!
2026年01月15日 01点01分 2
不简单啊,要在一个单元格中完成
2026年01月15日 01点01分
@dream龙少 先作个辅助列,,最后再合并到一个单元格里!这要是嫌麻烦,,那就更麻烦了!
2026年01月15日 02点01分
level 11
=LET(x,WRAPROWS(REGEXP(A1,"\pL|\d+"),2),t,TAKE(x,,1),ARRAYTOTEXT(BYROW(DROP(GROUPBY(HSTACK(XMATCH(t,UNIQUE(t)),t),TAKE(x,,-1)*1,SUM,,0),,1),LAMBDA(x,TEXTJOIN("*",,x)))))
2026年01月15日 01点01分 3
谢谢大佬,甲乙丙丁只是代指,文字不确定有几个,是了一下您给的公式跑出来报错
2026年01月15日 01点01分
2026年01月15日 01点01分
@德鲁咕噜 还是不行啊
2026年01月15日 01点01分
@dream龙少 不行你就发实例!没空在这跟你猜!
2026年01月15日 02点01分
level 6
dream龙少 楼主
2026年01月15日 01点01分 4
level 6
如果你的文本内容比较规范,都是逗号隔开的,那你直接按逗号分列。如果不规范,那你要参考正则表达式写
2026年01月15日 01点01分 5
分列没用啊,需要求和再合并在一个单元格
2026年01月15日 01点01分
[汗] 能简单化的就简单化,加辅助列 文本一列,数值一列,再SUMIF,再隐藏不必要的字段就行,非要去整那么复杂
2026年01月15日 02点01分
@dream龙少 解决了,这层不能发图,我单开个回复
2026年01月15日 02点01分
@DNA不可复制 高手发下实操,我参考参考
2026年01月15日 02点01分
level 11
=TEXTJOIN(",",1,BYROW(GROUPBY(INDEX(TEXTSPLIT(A1,"*",","),,1),INDEX(--TEXTSPLIT(A1,"*",","),,2),SUM,0,0),LAMBDA(X,TEXTJOIN("*",1,X))))
2026年01月15日 02点01分 6
level 6
解决了。先拆分需求,把每个类别的求出来再合并。方法如下:把你的原始数据放在A2单元格,甲乙丙丁类型在后面B1C1这样分列列个表头出来,在B2单元格输入=SUM(--IF(REGEXP(SUBSTITUTE(TOCOL(REGEXP($A$2,"([^,]+)"),,FALSE),"*",""),"[一-龟]+")=B$1,SUBSTITUTE(TOCOL(--REGEXP($A$2,"[-.0-9]+"),,FALSE),"*",""),0)),往右边拉填充即可。最终结果你自己文本合并一下
2026年01月15日 02点01分 7
我的建议是,面对这种稍微复杂的需求,不要想着一个单元格完成,开辅助列更优,对维护和使用体验提升太多了
2026年01月15日 02点01分
level 6
第二个解法。=MAP(REGEXP(D111,$D$115:$G$115&"\K\d+",3),LAMBDA(x,IFNA(SUM(--x),"")))
自己改下单元格引用就行
2026年01月15日 03点01分 8
level 6
dream龙少 楼主
谢谢各位大佬,待会我在试试
2026年01月15日 04点01分 9
level 13
提供表格,说明要求,可以帮忙搞定!
2026年01月16日 23点01分 11
level 10
=LET(z,TEXTSPLIT(A1,"*",","),t,TAKE(z,,1),TEXTJOIN({"*",","},,DROP(GROUPBY(HSTACK(FIND(t,A1),TAKE(z,,1)),--DROP(z,,1),SUM,,0),,1)))
2026年02月10日 05点02分 12
level 10
=TEXTJOIN(",",,MAP(UNIQUE(REGEXEXTRACT(A1,"\pl",1),1),LAMBDA(x,x&"*"&SUM(--REGEXEXTRACT(A1,"(?<="&x&"\*)\d+",1)))))
2026年02月10日 06点02分 13
level 13
=LET(a,WRAPROWS(REGEXEXTRACT(A1,"\p{han}|\d+",1),2),TEXTJOIN({"*",","},,GROUPBY(TAKE(a,,1),--DROP(a,,1),SUM,,0)))
2026年02月10日 06点02分 14
1