【Excel】文字列の指定された位置から指定バイト数を取得する方法(MIDB関数)

ExcelのMIDB関数の使い方について具体例を交えて説明します。

書式

MIDB(文字列, 開始位置, バイト数)

※ []内の引数は任意の項目です。

関数と変数の説明

文字列の指定された開始位置から指定した文字数分の文字を返します。

  • 文字列(必須項目):取り出す文字を含む文字列を指定します。
  • 開始位置(必須項目):文字列から取り出す位置の先頭を数値(バイト数)で指定します。1を指定すると文字列の先頭からになります(LEFTB関数と同じ)。0以下の値を指定すると、「#VALUE!」を返します。
  • バイト数(必須項目):取り出すバイト数を指定します。0を指定すると何も返ってきません(空が返る)。マイナスの値を指定すると、「#VALUE!」を返します。
引数[文字数]は1バイト文字(半角英数字)も 2バイト文字(日本語)に関わらず、1文字として扱います。
バイト数で指定したい場合はMID関数を使用します。

使用例

以下が使用例になります。

ABC
1対象文字列
2Microsoft(マイクロソフト)
3
4取得したい内容出力結果計算式
51.1バイトから5バイト取得するMicro=MIDB(A2, 1,5)
62.1バイトから14バイト取得するMicrosoft(マイ=MIDB(A2, 1,14)
73.15バイトから2バイト取得する=MIDB(A2, 15,2)
84.15バイトから100バイト取得するクロソフト)=MIDB(A2, 15,100)
95.開始位置が0以下の場合#VALUE!=MIDB(A2, 0,100)
106.取得するバイト数が0の場合=MIDB(A2, 11,0)
117.取得するバイト数が0未満の場合#VALUE!=MIDB(A3, 11,-1)

「1.1バイトから5バイト取得する」のケースは先頭から5バイトを指定した時の出力結果です。1バイト文字なのでMID関数と同じ結果が得られます。「2.1バイトから14バイト取得する」のケースは先頭から14バイトを指定した時の出力結果です。2バイト文字が含まれるため、MID関数と異なる結果となります。これらのケースは開始位置が共に1なので、LEFTB関数で代替可能です。

「4.11バイトから100バイト取得する」のケースでは対象となる文字列の指定位置からの文字数が11バイトしかない場合に100バイト取得をしています。その時は特に何のエラーも返さず、指定位置(バイト数)からの文字列すべてが返ってきます。

「5.開始位置が0以下の場合」と「7.取得する文字数が0未満の場合」は「#VALUE!」が返ってきます。

「6.取得する文字数が0の場合」は何も返ってきません(空が返る)。

類似関数

コメント

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