我們經常在進行數據處理的時候,經常會遇到阿拉伯數字與中文數字之間的轉換,尤其遇到「錢」的問題時。而EXCEL提供的設置單元格格式,根本滿足不了這種需求。
今天韓老師跟大家講利用NUMBERSTRING和TEXT函數實現數字在阿拉伯與中文格式之間的轉變。
阿拉伯數字轉中文數字常用的兩種函數是NUMBERSTRING和TEXT。
NUMBERSTRING函數,顧名思義,是數字到文本的轉換。
該函數,在EXCEL裡是隱藏的,輸入的時候,需要我們全部輸入函數名,而且,參數也不會提示。
那韓老師就把該函數的用法與參數解釋一下:
NUMBERSTRING函數的參數有兩個所以,語法我們可以簡單的寫成:
NUMBERSTRING(要轉換成中文字符串的數值,格式參數)
其中:
格式參數為1:普通的大寫,如「七百八十九」;
格式參數為2:財務專用大寫,如「柒佰捌拾玖」;
格式參數為3:僅數字大寫,如「七八九」;
以「123456789」為例,不同的格式參數,轉換成為的中文數字格式不同,結果如下圖:
NUMBERSTRING函數的局限是:僅能計算整數。
TEXT函數用來數字轉中文大寫時的語法:
TEXT(要轉換成中文字符串的數值,格式參數)其中:
格式參數為"[dbnum1]":普通的大寫,如「七百八十九」;
格式參數為"[dbnum2]":財務專用大寫,如「柒佰捌拾玖」;
格式參數為"[dbnum3]":阿拉伯數字之間加單位,如「7百8十9」;
以「123456789」為例,不同的格式參數,轉換成為的中文數字格式不同,結果如下圖:
不同形式的中文數字轉換成阿拉伯數字的公式不同,如下圖:
韓老師以第一個公式:
「{=MAX((TEXT(ROW($1:$99999),"[dbnum1]")=A2)*ROW($1:$99999))}」為例,來講述實現方法。
本公式:
第一步計算ROW($1:$99999),此步的結果是返回1~99999之間的整數;因為本示例要轉換的數字有五位,所以,用1~99999,如果有三位,可以用1~999,有六位,需要用1~999999;
第二步計算TEXT(ROW($1:$99999),"[dbnum1]"),將1~99999之間的整數轉換為「一萬二千三百四十五」格式的中文數字;
第三步計算TEXT(ROW($1:$99999),"[dbnum1]")=A2,將1~99999之間格式為「一萬二千三百四十五」的中文數字與A2單元格的中文數字比較,如果相等,返回TRUE,如果不相等,返回FALSE。所以,此步返回的是由一個TRUE和99998個FALSE組成的數組;
第四部計算(TEXT(ROW($1:$99999),"[dbnum1]")=A2)*ROW($1:$99999),由一個TRUE和99998個FALSE組成的數組,分別與對應的1~99999相乘,TRUE相當於1,FALSE相當於0,所以,此步的結果是返回1個阿拉伯數字與99998個0組成的數組,而該阿拉伯數字,就是與A2單元格相對應的數字;
最後一步計算{=MAX((TEXT(ROW($1:$99999),"[dbnum1]")=A2)*ROW($1:$99999))},在1個阿拉伯數字與99998個0組成的數組中取最大值,也就是與A2單元格相對應的數字;
因為是數組計算,所以,以<Ctrl+Shift+Enter>結束公式輸入。
又因為數組中的數據有99999個,所以公式運行稍有點慢。
Excel與Word雙劍合璧,提取無規律分布的漢字、數字、字母,所向披靡!
Excel | 數字與文本分離的三種方法:LEFT、RIGHT函數;分列;快速填充
Excel | 用REPLACE函數隱藏身份證號碼部分數字
Excel | 數據分列的妙用——不喜歡函數的小夥伴開心了