スポンサーリンク

LENB関数 – バイト数をかぞえる

関数の基礎

LENB関数とは

LENB関数は、指定した文字列が何バイトなのか、バイト数をかぞえる事ができます。

公式説明では下記のようになってます。

指定した文字列の文字数を返します。半角文字は1バイト、全角文字は2バイトとなります。

なので、全角のAは2、半角のAは1としてカウントされるという事です。

例えば、半角と全角が混じった、アアという文字列の場合、2+1で3という結果が返ってきます。

そもそも1バイト文字と2バイト文字ってなんなの?という点が気になる方は、こちらも合わせて読んでみて下さい。

LENB関数の使い方

式:=LENB(文字列)

特に変わったこともなく、バイト数を数えたい文字列を入れるだけという、シンプルな式になります。

直接文字列を入力するというより、=LENB(A1)のように、セルを参照させて使う事が多いです。

LENB関数を使ってみる

実際にLENB関数を使ってみましょう。

次に、セル参照ではなく、直接文字列を入力したり、数式を組んだりと、少しいじわるな使い方をしてみましょう。

まず、セイウチ12という文字列を直接入力した場合ですが、全角4文字と半角2文字なので、8+2で10という結果が返っています。

この時、文字列をダブルクォーテーションで囲まないと、#NAME?エラーとなってしまうので注意。

ですが、半角数値のみの場合や、数式としてみなされる内容の場合は、囲まなくて大丈夫です。

例えば、=LENB(5)ならば1という結果が返ってきますが、たとえ半角でも=LENB(a)のように、アルファベットの場合は#NAME?エラーとなってしまいます。

また、=LENB(+)のように、半角の記号の場合も受け付けません。

しかし数式とみなされるように入力した時、たとえば=LENB(5+5)などの場合は、その数式の結果に対してバイト数をかぞえます。

5+5は数式は3バイトですが、5+5の結果、つまり10に対してバイト数をかぞえますので、2という結果となります。

日付や時刻を使う場合は注意

日付や時刻が入力されたセルを参照する場合は注意が必要です。

例えば2021/4/1という日付が入力されているセルを参照すると、5という結果になります。

どう見ても5文字じゃないですよね。

これは、エクセルが日付や時刻のデータは、内部的には数値データとして持っており、それを見た目だけ日付などに変換していることが原因です。

今回例にあげた2021/4/1は、実際は44287という数値データであり、LENB関数がこっちの文字数をかぞえてしまうため、5文字という結果になっています。

同じ理由で、12:00のような時刻を参照した場合も、実体のほうの文字数をかぞえます。

12:00という時刻は、実際には0.5という数字であるため、この場合LENB関数の結果は3となります。

ただし、文字列として扱っている場合の日付や時刻は、見た目通りに文字数をかぞえてくれます。(2021/4/1は8バイト)

つまり、書式によってLENB関数の結果も変わってくるということですね。

日付や時刻の文字数をかぞえる時は、参照先の書式に注意しましょう。

実用例

単純に文字数をかぞえる場合は、そもそもLENB関数を使うの事が間違えであり、LEN関数を使うべきです。

では、LENB関数はどういうシーンで使うのかというと、システムに取り込むデータを用意する時が多いですね。

エクセルでデータを整理して、CSV形式で保存し、なんちゃらシステムに取込むといった具合。

例えば、住所データを作って人員管理システムに取込む際、住所データは30バイトまででお願いしますと指示されている時ですね。

この場合、30を超過した場合、要調整というチェックができます。

ちなみに今回の例ですと、セイウチをセイウチに変換する事ですべて30バイトに収まります。

 

コメント

タイトルとURLをコピーしました