英字(数字)と日本語を分ける

英字と日本語を分ける関数です。
もしくは、文字列から数字を取り出したいときに使えます。

間にスペースなどが入っていれば区切り位置を使って簡単に分けることができますが、そういった目安になるものが入ってない場合、以下のような関数を使うと便利です。




先頭が英字から始まる場合。

「B1」 =LEFT(A1,LENB(JIS(A1))-LENB(A1))

「C1」 =RIGHT(A1,LENB(A1)-LEN(A1))

0712_2

綺麗に分かれますね。

 

では今度は先頭が日本語から始まる場合です。

「B1」 =LEFT(A1,LENB(A1)-LEN(A1))

「C1」 =RIGHT(A1,LENB(JIS(A1))-LENB(A1))

0712_3

・LENB 半角は1バイト、全角は2バイトとして数えます。

・JIS 半角1バイトを、2バイトに変換します。

半角文字をすべて全角文字として何バイトか数える、実際の文字数が何文字か数える、それを引き算してLEFTやRIGHTで抽出するという考え方です。