巴拉巴拉小魔仙 发表于 2021-10-6 15:09:00

在给定的单元格计算式中依次提取数字


有时会遇到这样情形
统计若干订单(包括退回,计做负数)
数字重复的订单计做123*4
所有数据全部计算在一个单元格中以总和的形式显示
要求
分别提取所有数字并分行依次列示
具体见附件

天空海 发表于 2021-10-9 17:55:41

=TRIM(MID(SUBSTITUTE(SUBSTITUTE(D$1,"+",REPT(" ",99)),"-",REPT(" ",99)&"-"),99*ROW(A1)-98+(ROW(A1)=1),99))

六月寒风 发表于 2021-10-9 18:27:09

除法和括号怎么算?

好人一生吉祥 发表于 2021-10-15 13:33:59

=TRIM(MID(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($D$1,"-","+-"),"*","+"),"/","+"),"+",REPT(" ",100)),ROW(A1)*100-98,100))

天晴雨渐停 发表于 2021-10-16 15:21:29


如附件,用POWERQUERY做的,支持乘法拆开

蓝带咖啡 发表于 2021-10-19 07:58:23


新函数搞定

抓住那个家伙 发表于 2021-10-22 03:07:27

冬哥,牛B

丿追着幸福灬跑丶 发表于 2021-10-22 03:08:40

=IFNA(LOOKUP(9999,--LEFT(LOOKUP(A4,MMULT(-(ROW($1:$99)>=COLUMN(A:CU)),-TEXT(RIGHT(SUBSTITUTE(9999999&TRIM(MID(SUBSTITUTE(SUBSTITUTE("+"&MID(FORMULATEXT(A$1),2,999),"-","+"),"+",REPT(" ",99)),ROW($1:$99)*99-98,99)),"*",REPT(" ",20)),6),"[<99];1")),MID("+"&MID(FORMULATEXT(A$1),2,999),FIND("@",SUBSTITUTE(SUBSTITUTE("+"&MID(FORMULATEXT(A$1),2,999),"-","+"),"+","@",ROW($1:$99))),8)),ROW($1:$8))),"")

好多年没整这么长的公式了,就不简化了。

中驰 发表于 2021-10-23 17:37:56

=LOOKUP(10^9,--MID(D$1,SMALL(IF(ISERR(-(0&MID(D$1,ROW($1:$299),1))),ROW($1:$299),999),ROW(A1))+(ROW(A1)=1),ROW($1:$9)))

李红亮 发表于 2021-10-23 21:42:21

页: [1] 2 3 4
查看完整版本: 在给定的单元格计算式中依次提取数字