MIDB関数の使い方|任意の位置から文字をバイト数で抽出

Excel(エクセル)MIDB関数の使い方|任意の位置から文字をバイト数で抽出

Excel(エクセル)MIDB関数の使い方|任意の位置から文字をバイト数で抽出

MIDB関数はExcelで特定の文字列をバイト数で抽出する関数の一つで、任意(自分の思い通り)の位置から指定したバイト数だけの文字を取り出します。ここではMIDB関数の使い方について、できるだけ分かりやすく図解します。

使用関数:MIDB

MIDB関数とは?

MIDB関数は文字列の途中の自由な場所から自由なバイト数の文字を抽出します。

MIDBの読み方と意味

MIDBは「ミッドビ-」と読みます。Bは「Byte(バイト)」の略でExcelの文字単位の一つ。文字列をバイト単位でカウントする文字列操作の関数名には皆この「B」が末尾に付いています。

バイト数とは?

Excelの文字単位は「文字数」と「バイト数」があり、MIDBはバイト数で文字列を測って取り出します。
1バイト文字は半角です。全角は2バイトとカウントされます。

日本語の文章はMIDBで抽出すると実数の2倍になるということですね。
通常、文字列を抽出するのにはMID関数を使います。MID関数は全角・半角にかかわらず、1文字を1とカウントした文字数で任意の位置から文字列を抽出します。

MID関数の使い方や応用例はこちらで詳しく!

MID関数の使い方|任意の位置から指定の文字数を抽出
MID関数の使い方を分りやすく解説。MID関数の引数「文字列」「開始位置」「文字数」の指定、全角・半角を区別するMIDBについて、MID関数での数値の取り出し、日付の取り出し、MID関数を使って右から特定の文字までの文字列を取り出す応用例な...

MIDB関数の使い方

「数式」タブ→「関数ライブラリ」→「文字列操作」のMIDBをクリックします。
「数式」タブ→「関数ライブラリ」→「文字列操作」→MIDB
MIDB関数の書式の構成はこうなります。「文字列」「開始位置」「バイト数」(必須)です。
MIDB関数の書式の構成

以下の文字列からMIDB関数で花の名前を抽出してみましょう。
MIDB関数で文字を抽出する文字列

第一引数「文字列」

文字を取り出す元の文字列を指定します。数値や文字列を直に入力するか、セルを参照、または数式を入力します。

この例では最初の文字列のセルをクリックして指定します。
MIDB関数の引数「文字列」を指定

第二引数「開始位置」

取り出す文字列の最初の文字位置を指定します。引数「文字列」で指定した文字列の先頭文字の1バイト目を1として数えたバイト数、セル参照、またはその数値を戻り値とする数式で指定します。
※「開始位置」に文字列のバイト数を超える数値を指定すると、空白が返されます。

この例では花の名前の前にあるテキストは一律5文字10バイトなので、開始位置は10バイト+1となり、「11」と入力します。
MIDB関数の引数「開始位置」を指定

第三引数「バイト数」

開始位置から何バイトの文字を取り出すかを数値で指定します。数値や数式を入力するか、セルを参照します。
※「バイト数」に文字列を超える数値を指定すると、「開始位置」から「文字列」の末尾までが返されます。

この例では花の名前は全て4バイトなので、数値で「4」と入力します。
MIDB関数の引数「バイト数」を指定

数式を下までオートフィルコピーして完了です。任意の開始位置から4バイトの文字列が取得できました。
MIDB関数の結果
全角(バラ、百合)は2文字で4バイト、半角カタカナ(ヒマワリ)は4文字4バイトです。

MIDB関数で半角スペースが前後に付いた文字列を取り出す簡単な方法

全角の2バイト文字で構成された文字列からMIDB関数で文字を抽出するとき、引数「バイト数」の指定によって抽出文字列の前後に半角スペースを付けて表示させることができます。

例えばMIDB関数で抽出した文字列「バラ」の前後に半角スペースを付けて、他の文字列と連結させます。

表示させるセルに、先頭に置くテキストと結合演算子で=”品種”&と入力し、その後にMIDB関数を入力します。
MIDB関数の先頭に置くテキストと結合演算子を="品種"&と入力

MIDB関数を以下のように指定します。ポイントは「開始位置」に取り出したい文字の一つ前のバイト数を指定し、「バイト数」に開始位置から数えて取り出したい文字のバイト数より一つ多い数値を指定することです。「開始位置」に指定するのは通常の開始位置-1になり、「バイト数」に指定するのは抽出する文字(この例ではバラ)のバイト数+2になります。
前後に半角スペースを入れるMIDB関数の引数の指定

MIDB関数の数式の後に、結合演算子と末尾に置くテキストを&”ピンク”と入力、MIDB関数で取り出した文字列の前後に半角スペースが付いたことが分かります。
MIDB関数で取り出した文字列の前後に半角スペースが付いた

これはMIDB関数で取り出す文字列の左右に全角の文字があることが条件です。半角の文字があれば、その文字が返ります。

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