Excelで字数制限を設定する際、全角と半角が混在するような文字列は、全角と半角を区別して文字数を設定したい場合があります。たとえば、全角では20文字、半角では40文字という字数制限を設けるには少し工夫は必要になります。
全角と半角を区別せずに字数制限を設定する方法
まず、全角と半角を区別せずに字数制限を設定する方法を紹介します。たとえば、20文字の字数制限を設定する場合を考えます。字数制限を設定したいセルにカーソルを合わせた状態で、データタブから「データの入力規則」をクリックします。

入力値の種類に「文字列(長さ指定)」を選択します。データには「次の値以下」を指定し、最大値に「20」と設定します。

エラーメッセージタブでは、エラーメッセージとして任意の文字列を設定できます。たとえば、字数制限を超えた場合には「20字以内で入力してください。」というメッセージを設定します。

これで「OK」を押せば字数制限を設定することができます。たとえば、以下のような文字列を入力してEnterで確定します。

そうすると、先ほど設定したエラーメッセージが表示されます。

ただし、このような全角・半角が混在するような文字列の場合、半角も1文字とカウントすると、記載できる情報量に差が生じてしまう場合があります。
全角と半角を区別して字数制限を設定する方法
そこで、全角文字の1文字は半角文字の2文字分として扱うようにします。
LENB関数で全角と半角を区別する
ここで活用するのがLENB関数です。LENB関数は文字列のバイト数を表示させる関数です。この関数では、半角文字は1バイト、全角文字は2バイトとして扱われます。似た関数にLEN関数がありますが、こちらは文字数を表示させる関数です。
たとえば、このような2つの文字列があります。上は全角と半角が混在しており、下はすべて全角で記載しています。

LEN関数で2つの文字列を調べると両方とも23表示されます。つまり、LEN関数では全角と半角を区別していないということです。


今度はLENB関数を使用してバイト数を調べると、上は「38」バイト、下は「46」バイトと表示されます。つまり、全角と半角を区別していることを意味します。


字数制限を設定する
このLENB関数を利用して全角と半角を区別して字数制限を設定します。全角では20文字、半角では40文字という字数制限を設定するには、LENB関数で表示される数字が40以下であることを条件として指定します。データタブから「データの入力規則」をクリックします。

入力値の種類に「ユーザー設定」を選択し、LENB関数で字数制限を設定したいセルを選択し、条件として40以下であることを指定します。
=LENB(A3)<=40

適宜、エラーメッセージを設定し、OKを押せば字数制限を設定することができます。
これで、先ほどの全角と半角が混在する文字列を入力してみます。

全角と半角が区別されているので、エラーメッセージは表示されません。

一方で、全角だけの文字列を入力すると、エラーメッセージが表示されます。


このようにLENB関数を活用することで、全角と半角を区別した字数制限を設定することができます。
コメント