MIDB関数:指定の位置から指定したバイト数だけ文字列を取得する

MIDB 関数は Excel で用意されている関数の一つで、文字列の指定した位置から指定したバイト数分だけ文字列を取得します。半角文字であれば 1 文字が 1 バイト、全角文字の場合は 1 文字が 2 バイトとなります。ここでは Excel における MIDB 関数の使い方について解説します。

※ Excel の対応バージョン : 365 web 2021 2019 2016 2013 2010 2007

(Last modified: )

MIDB関数の使い方

MIDB 関数は文字列の指定した位置から指定したバイト数分だけ文字列を取得します。

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

1 番目の引数には文字列または文字列が含まれるセルを指定します。文字列を指定する場合はダブルクォーテーションで囲んで指定してください。

2 番目の引数には取得する開始位置を表す数値または数値が含まれるセルを指定します。位置はバイト単位で指定します。先頭の文字は 1 で順に 2,3,... と続きます。全角文字の場合は 1 文字あたり 2 バイトとなる点に注意してください。

3 番目の引数には取得するバイト数を表す数値または数値が含まれるセルを指定します。取得する文字列が対象の文字列よりも大きい場合は、文字列の最後までを取得します。

例えば対象の文字列が "FLOWER" で、開始位置が 2 、バイト数が 3 だった場合には取得する文字列は "LOW" となります。

=MIDB("FLOWER",2,3)
--> "LOW"

MIDB 関数では取得する文字列をバイト数で指定するため、半角文字の場合は 1 つの文字は 1 バイトですが、全角文字の場合は 1 つの文字は 2 バイトとしてカウントされます。

例えば対象の文字列が "愛知県名古屋市" で、開始位置 3 、バイト数が 4 だった場合には取得する文字列は "知県" となります。

=MIDB("愛知県名古屋市",3,4)
--> "知県"

もしも開始位置とバイト数で指定した部分が、全角文字の半分ところから始まっていたり全角文字の半分のところで終わっている場合、半分の部分の文字は半角スペースとして取得されます。

例えば対象の文字列が "愛知県名古屋市" で、開始位置 3 、バイト数が 5 だった場合には取得する文字列は "知県 " となります。

=MIDB("愛知県名古屋市",3,5)
--> "知県 "

MIDB関数のサンプル

それでは実際に MIDB 関数を使ってみます。 Excel のシートに対象となる文字列を次のように入力しました。

MIDB関数のサンプル(1)

取得した文字列を表示する C3 セルを選択し、次のように入力しました。 MIDB 関数の 1 番目の引数に、対象の文字列が含まれる B3 セルを指定します。開始位置を指定する 2 番目の引数には 5 を指定し、取得するバイト数を指定する 3 番目の引数には 4 を指定しました。

=MIDB(B3,5,4)

MIDB関数のサンプル(2)

Enter キーを押すと C3 セルには次のように表示されます。

MIDB関数のサンプル(3)

B3 セルに入力されている文字列の 5 バイト目の文字から 4 バイト分の文字列を取得し C3 セルに表示しました。

同じように C4 セルから C6 セルに対しても MIDB 関数を入力しました。

MIDB関数のサンプル(4)

MIDB 関数の場合は開始位置や取得する文字の数をバイト数で指定するので、対象の文字列が全角文字か半角文字かで取得する文字数は異なります。半角文字であれば 1 文字あたり 1 バイト、全角文字であれば 1 文字あたり 2 バイトになります。

-- --

Excel における MIDB 関数の使い方について解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。