TOPページ > Excel・IT開発 > Excel実務のノウハウ > セルに入力されている文字が全角か半角かを判断する

セルに入力されている文字が全角か半角かを判断する|Excel実務のノウハウのお勉強

このエントリーをはてなブックマークに追加

見た目だけでは判断しにくい全角と半角

頻繁ではないのですが、弊社で行っている業務で全角と半角を識別する作業が発生することがあります。その際にできるだけ簡単に判断する方法はないかと模索して見つけた方法を紹介します。
LEN、LENB関数を使って全角と半角を判別
(※実際には作業した事例が少ないため、今回の方法で漏れているパターンがある可能性にもご注意ください)


LEN関数とLENB関数を使う

この手の作業ではVBA(マクロ)を使うのも手ですが、ここではLEN関数とLENB関数を使って判別する方法を見ていきます。
文字を対象とした関数を「文字列関数」などと言ったりしますが、その文字列関数の2つを使います。
「LEN関数」についてはそれなりにメジャーであると思います。一方「LENB関数」についてはあまり馴染みが無い方も多いかもしれません。
簡単に説明すると下記のような意味です。
LEN関数:文字数を数える(見たまんま)
LENB関数:バイト数を数える(全角が2バイト、半角が1バイト)
「バイト数」は言い換えるとパソコン目線での数える単位です。この二つの関数はセルの文字を引数にしたときに、同じ数値を返すこともあれば、違う数値を返すこともあります。
下記に簡単な表を使ってみてみます。
LEN、LENB関数を使ってその数値を見る
馴染みがないと分かりずらいかもしれませんが、このような結果になります。
LEN関数を使った文字数の方は見たまんまなので分かると思いますが、LENB関数の方が分かりずらいですね。
3行目の「123A」は数値(123)部分が全角(3文字×2バイト)、文字(A)部分が半角(1文字×1バイト)になっています。一方、4行目は全て半角の文字(4文字×1バイト)です。
全角と半角はパッと見ただけでは判断が難しいので目視は誤りやすいと言えます。


文字数とバイト数の違いの有無で全角半角を判断する

上記のLEN、LENB関数の仕組みを利用してセルの文字が全角なのか、あるいは半角なのかを知ることができます。

セルの文字が全部全角だった場合 セルの文字が全部半角だった場合
(LEN関数 X 2) = LENB関数 LEN関数 = LENB関数

全角と半角が混在している場合は、上記のいずれも当てはまりません。
上記関数のこのような仕組み(仕様)を使って全角、半角を判断します。


IF関数を加えて全角か半角かを判別する

冒頭の画像のように実際にセルのデータをどのようにして判別するのか見ていきたいと思います。
(下記は冒頭の画像)
LEN、LENB関数を使って全角と半角を判別
この画像ではいわゆる最終段階の状態で、IF関数の中にIF関数をいれるといういわゆるネスト(入れ子)の状態になっています。
今回判別したい内容は
・セルの文字が全角のみか
・セルの文字が半角のみか
・セルの文字が全角半角混在か
の3種類です。IF関数1つでは「YES(TRUE)かNO(FALSE)か」の2種類しか判別できないのでネストにしています。
下記画像はIF関数を1つだけ使った数式を入れているため、「半角かそれ以外」の判定です。
IF関数1つで半角のみかをチェック
「=IF(LENB(A2)=LEN(A2),"半角のみ","全角のみ、または半角混在")」

そこで下記赤枠部分を文字列(「全角のみ、または半角混在」)をIF関数に変更(ネスト)します。
IF関数にIF関数を入れる
IF関数にIF関数を入れる2
「=IF(LENB(A3)=LEN(A3),"半角のみ",IF(LENB(A3)=LEN(A3)*2,"全角のみ","全角半角混在"))」
このようにすることで上記に挙げた3種類(全角、半角、全角半角混在)が判別できるようになります。ちなみに関数ボックスでみるとこんな感じです。
関数ボックスで2つのIF関数を見る

このエントリーをはてなブックマークに追加

Excel実務のノウハウ 関連ページ


グローウィン有限会社
東京都三鷹市下連雀3-27-1 三協ビル2階-B 地図を見る
トップページ
入力代行関連
Excel・IT開発
中国アテンド
会社概要
プレスリリース
お問い合わせ
お問い合わせ内容一覧

英文ページ(English)
中文ページ
プレスリリース お問い合わせフォーム