excel,分别截取一数值,万,百…角分位

假设A1=123456.78
然后需要将这个数值分别取值 “百,十,万,仟,百,十,元,角,分”
当顶头数字为0的时候填充¥,怎么设置公式。或择中方法

经实测,百度和知乎上之前的答案都或多或少在数据特殊时存在一些问题。

研究出了如下最完美的解决方案,普适所有整数或一、两位小数的各种情况,数字可以以此类推更大,食用时仅需要将P7换成你所需要数据存储的单元格位置。

献给每一个可怜巴巴的会计和报价、报销、支付审批填表狗%>_<%

亿位:=IFERROR(IF(LEN(INT(P7))=8,"¥",MID(INT(P7),LEN(INT(P7))-8,1)),"")

千万位:=IFERROR(IF(LEN(INT(P7))=7,"¥",MID(INT(P7),LEN(INT(P7))-7,1)),"")

百万位:=IFERROR(IF(LEN(INT(P7))=6,"¥",MID(INT(P7),LEN(INT(P7))-6,1)),"")

十万位:=IFERROR(IF(LEN(INT(P7))=5,"¥",MID(INT(P7),LEN(INT(P7))-5,1)),"")

万位:=IFERROR(IF(LEN(INT(P7))=4,"¥",MID(INT(P7),LEN(INT(P7))-4,1)),"")

千位:=IFERROR(IF(LEN(INT(P7))=3,"¥",MID(INT(P7),LEN(INT(P7))-3,1)),"")

百位:=IFERROR(IF(LEN(INT(P7))=2,"¥",MID(INT(P7),LEN(INT(P7))-2,1)),"")

十位:=IFERROR(IF(LEN(INT(P7))=1,"¥",MID(INT(P7),LEN(INT(P7))-1,1)),"")

个位:=IFERROR(IF(LEN(INT(P7))=0,"¥",MID(INT(P7),LEN(INT(P7))-0,1)),"")

角:=IFERROR(MID(INT(P7*10),LEN(INT(P7*10))-0,1),"")

分:=IFERROR(RIGHT(P7*100,1),"")

另外赠送一个小写转换成大写的公式,一并食用更加哟~

仅需要替换所有P13为你所需要数据存储的单元格位置

=IF(ISNUMBER(P13),IF(INT(P13),TEXT(INT(P13),"[dbnum2]")&"元",)&IF(INT(P13*10)-INT(P13)*10,TEXT(INT(P13*10)-INT(P13)*10,"[dbnum2]")&"角",IF(INT(P13)=P13,,IF(P13<0.1,,"零")))&IF(ROUND((P13)*100-INT(P13*10)*10,),TEXT(ROUND(P13*100-INT(P13*10)*10,),"[dbnum2]")&"分","整"),"")

然后你就可以得到酱紫完美的解决方案了,祝大家工作愉快!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-09

是要图中效果吗?

B2中输入下面公式,向右填充公式到J列,向下随便填充,最大支持到百万,要到 千万公式里面10改成11,到亿改成12..........

=IF($A2="","",IF(10-COLUMN(A2)>LEN("¥"&ROUND($A2,2)*100),"",LEFT(RIGHT("¥"&ROUND($A2,2)*100,10-COLUMN(A2)))))

第2个回答  2010-12-09
百万位:=IF(LEN(INT(A1))=6,"¥",IF(LEN(INT(A1))<6,"",LEFT(RIGHT(INT(A1),7),1)))
十万位:=IF(LEN(INT(A1))=5,"¥",IF(LEN(INT(A1))<5,"",LEFT(RIGHT(INT(A1),6),1)))
万位:=IF(LEN(INT(A1))=4,"¥",IF(LEN(INT(A1))<4,"",LEFT(RIGHT(INT(A1),5),1)))
千位:=IF(LEN(INT(A1))=3,"¥",IF(LEN(INT(A1))<3,"",LEFT(RIGHT(INT(A1),4),1)))
百位:=IF(LEN(INT(A1))=2,"¥",IF(LEN(INT(A1))<2,"",LEFT(RIGHT(INT(A1),3),1)))
十位:=IF(LEN(INT(A1))=1,"¥",LEFT(RIGHT(INT(A1),2),1))
个位:=RIGHT(INT(A1),1)
角:=IF(LEFT(RIGHT(A1,2),1)=".",RIGHT(A1,1),LEFT(RIGHT(A1,2),1))
分:=IF(LEFT(RIGHT(A1,2),1)=".","0",RIGHT(A1,1))
希望我的回答对你有所帮助。本回答被提问者和网友采纳
第3个回答  2010-12-09
如果是单个单元格,可用公式取得:
=RIGHT(A1,LEN(A1)-FIND(":",A1))
公式可向下复制。

如果是整列数据,可用"数据"->"分列",分隔符号选冒号,得到的后一列数据就是你要的。
第4个回答  2010-12-09
=IF(TRUNC(A1)=0,"¥","")&TEXT(ABS(TRUNC(A1)),"[dbnum2]")&"元"&TEXT(LEFT((ROUND(ABS(A1)-ABS(TRUNC(A1)),2)*100)),"[dbnum2]")&"角"&TEXT(RIGHT((ROUND(A1,2)*100)),"[dbnum2]")&"分"
相似回答