返回列表 上一主題 發帖

如何將數字180.30改成國字壹捌零點參零

如何將數字180.30改成國字壹捌零點參零

我只知道將數字180.30改成壹佰捌拾.參
但要如何將數字180.80改成國字壹捌零點參零
請大大幫忙
程式離我好遠

回復 1# sasah168


    https://dl.dropboxusercontent.com/u/61135474/%E8%8B%B1%E6%96%87%E5%A4%A7%E5%AF%AB%E8%BD%89%E6%8F%9B.xls
參考看看....
50 字節以內
不支持自定義 Discuz! 代碼

TOP

本帖最後由 p212 於 2013-12-10 16:19 編輯

回復 1# sasah168
假設儲格A1為180.3
於任一儲存格輸入 =LEFT(TEXT(A1,"[dbnum2]"),FIND(".",TEXT(A1,"[dbnum2]"))-1)&"點"&RIGHT(TEXT(A1,"[dbnum2]"),LEN(TEXT(A1,"[dbnum2]"))-FIND(".",TEXT(A1,"[dbnum2]")))

TOP

本帖最後由 ANGELA 於 2013-12-10 16:52 編輯

回復 1# sasah168
Sorry!
3#的回覆未周全,請參考下列組合公式。
假設儲格A1為180.30,任一儲存格輸入
=LEFT(TEXT(A1,"[DBNum2]0.00"),FIND(".",TEXT(A1,"[DBNum2]0.00"))-1)&"點"&RIGHT(TEXT(A1,"[DBNum2]0.00"),LEN(TEXT(A1,"[DBNum2]0.00"))-FIND(".",TEXT(A1,"[DBNum2]0.00")))
答案即為「壹捌零點參零」
思路:任一儲存格輸入=TEXT(A1,"[DBNum2]0.00")得「壹捌零.參零」
小數固定兩位可省略成......&"點"&RIGHT(TEXT(A1,"[DBNum2]0.00"),2)

TOP

=SUBSTITUTE(TEXT(A1,"[DBNum2]0.00;;"),".","點")
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

本帖最後由 p212 於 2013-12-10 22:19 編輯

回復 5# ML089
感謝ML089版主簡化公式
請問:在=SUBSTITUTE(TEXT(A1,"[DBNum2]0.00;;"),".","點") 中使用紅字部份「2個分號」用意何在?
煩請賜教,謝謝!

TOP

回復  ML089
感謝ML089版主簡化公式
請問:在=SUBSTITUTE(TEXT(A1,"[DBNum2]0.00;;"),".","點") 中使用紅 ...
p212 發表於 2013-12-10 22:14


TEXT(數字,"正;負;零;文字")
後面將兩個 ;; 主要作用是沒有輸入數值時以空白呈現
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

=SUBSTITUTE(TEXT(A1,"[DBNum2]0.00;;"),".","點")
ML089 發表於 2013-12-10 19:55

不錯的 Idea!
順便恭賀你升任版主。

TOP

回復 1# sasah168
除了以公式 (ML089 版大提示) 處理外,尚可以使用 VBA 模組的方式來處理,如圖:

TOP

我只知道將數字180.30改成壹佰捌拾.參
但要如何將數字180.80改成國字壹捌零點參零
請大大幫忙 :di ...
sasah168 發表於 2013-12-10 11:45

置於 "模組 -> Module1" 內:
  1. Sub Ex()
  2.     Dim strs As String, num As Double
  3.    
  4.     num = 15673624.89
  5.     strs = NumToCur(num)
  6.     MsgBox num & Chr(10) & strs & Chr(10) & NumToCur(180.3)
  7. End Sub

  8. Function NumToCur(ByVal num) As String
  9.     Const cNum As String = "零壹貳參肆伍陸柒捌玖-            點  "
  10.     Dim sNum As String
  11.     Dim i As Long
  12.    
  13.     If (num <> 0) And (Abs(num) < 10000000000000#) Then
  14.         sNum = Trim(Str(Int(Abs(num) * 100)))
  15.         For i = 1 To Len(sNum)                ' 逐位轉換
  16.             NumToCur = NumToCur + Mid(cNum, (Mid(sNum, i, 1)) + 1, 1) + Mid(cNum, 26 - Len(sNum) + i, 1)
  17.             '  NumToCur = NumToCur + Mid(cNum, (Mid(sNum, i, 1)) + 1, 1)
  18.         Next
  19.         NumToCur = Replace(NumToCur, " ", "")
  20.         If num < 0 Then NumToCur = "(負)" + NumToCur
  21.     Else
  22.         NumToCur = IIf(num = 0, "零值", "溢出")
  23.     End If
  24. End Function
複製代碼

TOP

        靜思自在 : 做該做的事是智慧,做不該做的事是愚癡。
返回列表 上一主題