LENB関数とは
LENB関数は、指定した文字列が何バイトなのか、バイト数をかぞえる事ができます。
公式説明では下記のようになってます。
なので、全角の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バイトに収まります。
コメント