『Excel VBA 表計算とプログラミング学習サイト』では、アフィリエイトプログラムを利用して商品を紹介しています。

【Excel】NUMBERSTRINGで数値を漢数字に変換します

Number は数字、String は文字列のことです。
つまり、NUMBERSTRING とは数値を文字列に変える関数なのですが、ただ文字列形式のデータにするのではなく、漢数字に変換します。でも数値を漢数字にしたければ「セルの表示形式」を変更するのが手っ取り早いですよね。だから「この関数に使い道あるの?」と訊かれても困りますけど、使い道なんてなくたって面白い。それがエクセルなのです。とりあえず NUMBERSTRING であれこれ遊んでみましょう。

【Excel】NUMBERSTRING関数

Excel の NUMBERSTRING

NUMBERSTRING(数値,書式)

の形で記述します。この書式には
 
1:位取り漢数字
2:旧字表記
3:位取りしない漢数字
 
の3種類あるのですが、それがどんな表示になるのか理解するには実際に試してみたほうが早いです。[数値] に「12345」を指定して、どんな漢数字に変換されるか見てみましょう。

=NUMBERSTRING(12345,1)

と入力すると「一万二千三百四十五」が返ってきます。これはよく見るタイプの普通の漢数字ですね。次は

=NUMBERSTRING(12345,2)

と入力してみましょう。「壱萬弐阡参百四拾伍」という文字列が返ってきます。旧字表記は難しいですね。今どきこんな漢数字をビジネスの現場で使ったりしたら「ややこしいことするな!」と怒られますね。ということで次にいきましょう。

=NUMBERSTRING(12345,3)

と入力して戻ってくるのは「一二三四五」という位取りを省いた漢数字です。そんなわけで、仮にこの関数を使う場合は、引数の選択肢としては「1」か「3」でしょうね。ちなみに、いったんこの関数で漢数字に変えてしまうと、それは文字列なので足したり引いたりすることはできなくなってしまいます。
 
実は TEXT という関数を使っても数値を漢数字に変えることができます。ですが、その引数の指定の仕方はとても面倒です。たとえば「12345」を「一万二千三百四十五」に変えようと思ったら

=TEXT(12345,"[DBnum1]G/標準")

と書かなくてはなりません。こんなのいちいち覚えてられないし、やっぱり漢数字に変えるときは TEXT より NUMBERSTRING を使ったほうが便利ですよ。「いや、セルの表示形式を変えたほうが断然早いでしょ!」と言われちゃあ身も蓋もないんだけどね。
 
エクセルで表示される漢数字の位は「兆」までです。残念ながら「京」とか「垓」といった大きな単位は出てきません。たとえば

=NUMBERSTRING(10^16,1)

と入力すると「一〇〇〇〇兆」と返ってきます。これを知ったときはちょっとがっかりしました。

コメント