OfficeType

Excel~LENB関数で文字列のバイト数を取得しよう~エクセル

エクセルで文字列のバイト数を表示するLENB関数について説明します。

  • LENB関数の書式はLENB(文字列)になります。
  • 文字列はバイト数をカウントしたい文字列を指定します。
  • 半角は1文字1バイト、全角は1文字2バイトになります。

下の画像の例でセルB2にセルA2の文字列のバイト数を表示したい場合はセルB2に=LENB(A2)と入力しEnterを押します。

文字列はセルA2の文字列のバイト数をカウントしたいのでA2になります。

つまりセルB2に=LENB(A2)と入力しEnterを押すと、セルA2の文字列"EXCEL"は全角なのでバイト数10が表示されます。

セルB2からセルB3までオートフィルするとセルA3の文字列"EXCEL"は半角なのでセルB3にバイト数5が表示されます。

スペースはカウントされる

LENB関数は半角スペースを1バイト、全角スペースを2バイトとしてカウントします。

下の画像の例でセルB2にセルA2の文字列のバイト数を表示したい場合はセルB2に=LENB(A2)と入力しEnterを押します。

文字列はセルA2の文字列のバイト数をカウントしたいのでA2になります。

つまりセルB2に=LENB(A2)と入力しEnterを押すと、セルA2の文字列"Microsoft Office"は半角なのでバイト数は半角スペースを含めて16バイトなので16が表示されます。

セルB2からセルB3までオートフィルするとセルA3の文字列"Microsoft Office"は全角なので全角スペースを含めてセルB3にバイト数32が表示されます。

IF関数との組み合わせ

LENB関数とIF関数を組み合わせれば文字列のバイト数を条件にして表示を変えられます。

下の画像の例でセルB5にセルA2のバイト数制限を参照して、制限以下なら"OK"と表示し、制限を超えたら"オーバー"と表示したい場合はセルB5に=IF(LENB(A5)<=$A$2,"OK","オーバー")と入力しEnterを押します。オートフィルした時に参照がズレないように絶対参照$を使っています。

IF関数の書式はIF(論理式,[値が真の場合],[値が偽の場合])になります。

IF関数の論理式にLENB(A5)<=$A$2を指定すればセルA5の文字列のバイト数がセルA2の数値以下の場合は論理式を満たすので、IF関数の[値が真の場合]が表示されます。セルA5の文字列のバイト数がセルA2の数値を超えた場合は論理式を満たさないので、IF関数の[値が偽の場合]が表示されます。

IF関数の[値が真の場合]には論理式を満たした場合に"OK"と表示したいので"OK"になります。

IF関数の[値が偽の場合]には論理式を満たさなかった場合に"オーバー"と表示したいので"オーバー"になります。

つまりセルB5に=IF(LENB(A5)<=$A$2,"OK","オーバー")と入力しEnterを押すと、セルA5の文字列"HELLO"は全角なのでバイト数は10になり、セルA2のバイト数制限の値5を超えていて論理式を満たさずに"オーバー"が表示されます。

セルB5からセルB6までオートフィルするとセルA6の文字列"HELLO"は半角なのでバイト数は5になり、セルA2の文字数制限の値5以下で論理式を満たすので"OK"と表示されます。

SUM関数との組み合わせ

LENB関数とSUM関数を組み合わせれば別セルの文字列のバイト数を合計することができます。

下の画像の例でセルC2にセルA2とセルB2の文字列のバイト数の合計を表示したい場合はセルC2に=SUM(LENB(A2),LENB(B2))と入力しEnterを押します。

SUM関数の書式はSUM(数値1, [数値 2], ...)になり、指定した全ての数値を合計します。

SUM関数の数値1はセルA2の文字列のバイト数を指定したいのでA2になります。

SUM関数の[数値 2]はセルB2の文字列のバイト数を指定したいのでB2になります。

つまりセルC2に=SUM(LENB(A2),LENB(B2))と入力しEnterを押すと、セルA2の全角文字列"Microsoft"のバイト数18と、セルB2の全角文字列"Office"のバイト数12の合計の30が表示されます。