OfficeType

Excel~RIGHTB関数で末尾から指定したバイト数を抽出しよう~エクセル

エクセルで文字列の末尾(右端)から指定されたバイト数の文字を返すRIGHTB関数について説明します。

  • RIGHTB関数の書式はRIGHTB(文字列, [バイト数])になります。
  • 文字列は指定したバイト数を抽出したい対象の文字列を指定します。
  • [バイト数]は右から何バイト抽出したいか指定します。
  • 半角は1文字1バイト、全角は1文字2バイトになります。

下の画像の例でセルB2にセルA2の全角の商品IDから数字部分を抽出したい場合はセルB2に=RIGHTB(A2,10)と入力しEnterを押します。

文字列はセルA2に入力された商品IDを指定するのでA2になります。

バイト数は数字部分は全角5文字で10バイトなので10になります。

つまりセルB2に=RIGHTB(A2,10)と入力しEnterを押すとセルA2の全角の商品IDの右から10バイトの数字部分の67890が表示されます。

セルB2からセルB5までオートフィルすればA列の商品IDの数字部分がB列に表示されます。

LENB関数、FINDB関数との組み合わせ

下の画像の例で全角の商品IDから数字部分を抽出したい時にアルファベットと数字のバイト数が決まっていない場合はRIGHTB関数、LENB関数、FINDB関数を組み合わせれば抽出できます。まずセルB2に=RIGHTB(A2,LENB(A2)-(FINDB("-",A2)+1))と入力しEnterを押すとセルB2にセルA2の商品IDの数字部分678が表示されます。

文字列はセルA2に入力された商品IDを指定するのでA2になります。

[バイト数]にはLENB(A2)-(FINDB("-",A2)+1)が入力されています。LENB関数はLENB(文字列)で文字列のバイト数を返します。つまりLENB(A2)はセルA2の全角の商品IDのバイト数の16を意味します。FINDB関数はFINDB("探したい文字",文字列)で探したい文字が文字列の左から何バイト目か返します。探したい文字に代入さているのが-(全角マイナス)で文字列に代入さているのがA2になるのでセルA2に入力された全角の商品IDの中で-(全角マイナス)が左から何バイト目にあるか返すので9を意味します。最後に+1がついているので-(全角マイナス)の末尾のバイト数の位置を意味します。つまり商品IDのバイト数16から-(全角マイナス)の末尾のバイト数の位置10を引くと数字部分のバイト数6が求まり、これが[バイト数]として使われます。

つまりセルB2に=RIGHTB(A2,LENB(A2)-(FINDB("-",A2)+1))と入力しEnterを押すとセルA2の全角の商品IDから数字部分がセルB2に表示されます。

セルB2からセルB5までオートフィルすればA列の商品IDの数字部分がB列に表示されます。