在给定的单元格计算式中依次提取数字
有时会遇到这样情形
统计若干订单(包括退回,计做负数)
数字重复的订单计做123*4
所有数据全部计算在一个单元格中以总和的形式显示
要求
分别提取所有数字并分行依次列示
具体见附件
=TRIM(MID(SUBSTITUTE(SUBSTITUTE(D$1,"+",REPT(" ",99)),"-",REPT(" ",99)&"-"),99*ROW(A1)-98+(ROW(A1)=1),99)) 除法和括号怎么算? =TRIM(MID(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($D$1,"-","+-"),"*","+"),"/","+"),"+",REPT(" ",100)),ROW(A1)*100-98,100))
如附件,用POWERQUERY做的,支持乘法拆开
新函数搞定 冬哥,牛B =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))),"")
好多年没整这么长的公式了,就不简化了。 =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)))