跳到主要內容跳到頁尾

字元與格式文字函式:CODE、UNICHAR、ASC、EXACT、REPT、DOLLAR、FIXED、ROMAN

5 分鐘閱讀Lv.3 中級摘要與日期

整理比較少人提的文字函式:CODE 與 UNICHAR 的字元編碼、ASC 全形轉半形、EXACT 區分大小寫的比對、REPT 重複字串、T 取出文字、DOLLAR 與 FIXED 把數字轉成格式化文字,以及 ROMAN 與 ARABIC 的羅馬數字轉換。

發布 更新

文章目錄

今天把文字函式裡比較冷門的一批收在一起:CODE、UNICHAR、ASC、EXACT、REPT、T、DOLLAR、FIXED、ROMAN 和 ARABIC。

這些函式我平常用的次數都不多,但每個大概一年會遇到一兩次,像是用 REPT 在儲存格裡畫簡單的長條圖、用 EXACT 查兩欄「看起來一樣」但其實差一個大小寫的資料。這篇當作工具書,需要的時候回來查。

TRIM、CLEAN、SUBSTITUTE 這類清理函式,以及 CHAR、UNICODE,請看 文字清理函式參考。TEXT 的格式碼請看 文字格式碼進階。

怎麼選

想做的事用哪個傳回
查一個字的編碼CODE數字
由編碼得到字元UNICHAR文字
全形英數轉半形ASC文字
區分大小寫地比對EXACTTRUE 或 FALSE
重複一段文字REPT文字
只留下文字、其他變空白T文字
數字轉成貨幣格式文字DOLLAR文字
數字轉成千分位文字FIXED文字
數字與羅馬數字互換ROMAN、ARABIC文字、數字

字元與編碼

CODE

回傳文字第一個字元的 Unicode 編碼。

語法:

Google 試算表公式
fx

A 的編碼

=CODE("A")

大寫 A 是 65,結果就是 65!如果文字有好幾個字,只看第一個,所以 一樣是 65。

中文字也行, 會得到 33590,這是 Unicode 的 U+8336。

UNICHAR

由 Unicode 編碼得到字元,是 CODE 的反向。

語法:

Google 試算表公式
fx

編碼 33590 對應的字

=UNICHAR(33590)

結果是「茶」。如果是符號的話, 會得到「★」,做評分欄位的時候很好用,下面的 REPT 會再用到。

ASC

把全形的英文字母、數字和符號轉成半形。

語法:

Google 試算表公式
fx

全形轉半形

=ASC("Tea12")

結果是 Tea12。我比較常在比對訂單編號、商品代碼時用到,同一筆資料有人用全形輸入,兩邊看起來一樣但就是對不上,先用 ASC 轉過再比對。

中文字本身沒有全形半形之分,不會有變化。日文全形片假名也會轉成半形(アイウ 變成 アイウ),已經是半形的則維持原樣。

比對與重複

EXACT

比較兩段文字是否完全相同,區分大小寫,包含空格。

語法:

Google 試算表公式
fx

Tea 與 tea 是否相同

=EXACT("Tea", "tea")

結果是 FALSE。如果用 比較,結果會是 TRUE,因為等號不分大小寫。

空格也會被算進去, 同樣是 FALSE。比對看起來一樣卻回 FALSE 的時候,先檢查是不是有多餘的空格,再用 TRIM 清掉。

REPT

把一段文字重複指定的次數。

語法:

來做個簡單的長條圖。A 欄是品項,B 欄是銷量,每 5 杯畫一格,所以格數是銷量除以 5 再四捨五入:

Google 試算表公式
fx

依銷量畫文字長條

=REPT("█", ROUND(B2 / 5))

資料是:

品項銷量長條
蘋果紅茶37███████
青茶12██
烏龍茶25█████

37 ÷ 5 = 7.4,四捨五入是 7;12 ÷ 5 = 2.4,是 2;25 ÷ 5 = 5。次數有小數的時候,REPT 會直接捨去小數(2.9 次當成 2 次),負數則會出現 #VALUE!,所以我都先用 ROUND 處理,四捨五入的結果比較符合直覺。

T

如果值是文字就傳回它,否則傳回空白。

語法:

Google 試算表公式
fx

T 對文字與數字的差別

=T("蘋果紅茶")

文字會原樣傳回「蘋果紅茶」,而 傳回空白,布林值 也是空白。

坦白說,我還沒遇過非用 T 不可的情況。它的用途是從一格裡只撈出文字,數字就不要,例如一欄裡文字與數字混雜時,濾掉數字的做法。

數字轉格式化文字

這兩個函式傳回的是文字,不是數字,不能直接拿去加總。要算數字的時候,保留原始數字,另開一欄放格式化後的結果。

DOLLAR

把數字轉成貨幣格式的文字。

語法:

  • 小數位數:選填,預設 2。
Google 試算表公式
fx

1234.567 轉貨幣格式,2 位小數

=DOLLAR(1234.567, 2)

地區設定為台灣時,結果是 NT$1,234.57;小數位數填 0 的 為 NT$1,235。

貨幣符號跟著試算表的地區設定走,其他地區的符號不同;介面顯示繁體中文,不代表地區設定就是台灣。若輸出必須固定為指定符號,可用 TEXT 明確寫格式碼。

FIXED

把數字轉成固定小數位數、有千分位的文字。

語法:

  • 小數位數:選填,預設 2,可以填負數。
  • 不加千分位:選填,填 TRUE 就不加千分位。
Google 試算表公式
fx

1234.567 取 1 位小數

=FIXED(1234.567, 1)

結果是 1,234.6。要去掉千分位的話, 會得到 1234.6。

小數位數填負數的時候,會四捨五入到十位、百位: 是 1,200。

羅馬數字

ROMAN

把阿拉伯數字轉成羅馬數字。

語法:

  • 數字:1 到 3999。
  • 簡化規則:選填,0 到 4,數字越大寫法越簡短,預設 0 是標準寫法。
Google 試算表公式
fx

2026 轉羅馬數字

=ROMAN(2026)

先手算:2026 = 2000 + 20 + 6,也就是 MM + XX + VI,會得到 MMXXVI。

簡化規則以 499 為例, 是標準寫法 CDXCIX, 是最簡短的 ID。

ARABIC

把羅馬數字轉回數字,是 ROMAN 的反向。

語法:

Google 試算表公式
fx

MMXXVI 轉數字

=ARABIC("MMXXVI")

結果是 2026。要用雙引號把羅馬數字包起來,不然 Sheets 會把 MMXXVI 當成名稱。

需要的時候回來查就好,這一批大概就是這樣!

分享:
#CODE#UNICHAR#EXACT#REPT#FIXED#羅馬數字
喜特先生 Mr. Sheet

喜特先生 Mr. Sheet

數據分析師/商業分析師

八年工作經驗,跨不同業界解決數據需求。做過的案例都整理在作品集。

接下來可以

相關文章

查看所有文章

留言討論

共 0 則留言

訂閱電子報,新文章上線就通知你

免費,隨時可取消。

送出即表示同意服務條款與隱私權政策。