Excel~LEFTB関数で先頭から指定したバイト数を抽出しよう~エクセル
エクセルで文字列の先頭から指定されたバイト数を返すLEFTB関数について説明します。
- LEFTB関数の書式はLEFTB(文字列, [バイト数])になります。
- 文字列は指定したバイト数を抽出したい対象の文字列を指定します。
- [バイト数]は左から何バイト抽出したいか指定します。
- 半角は1文字1バイト、全角は1文字2バイトになります。
下の画像の例でセルB2に入力された住所から"東京都"を抽出したい場合はセルB2に=LEFTB(A2,6)と入力しEnterを押します。
文字列はセルA2に入力された住所を指定するのでA2になります。
[バイト数]は"東京都"は住所の中の左から6バイト分なので6になります。
つまりセルB2に=LEFTB(A2,6)と入力しEnterを押すと住所の中の左から6バイト分の"東京都"が表示されます。
オートフィル
下の画像の例でB列にA列の文字列の左から8バイト分のアルファベット部分を表示したい場合はオートフィルを使えば素早く表示できます。
まずセルB2に=LEFTB(A2,8)と入力しEnterを押すとセルB2にセルA2の文字列の左から8バイト分のアルファベット部分が表示されます。
次にセルB2を選択し右下にマウスカーソルを移動するとカーソルが黒十字(矢印なし)になるので、その状態でクリックしたままセルB5までカーソルを動かすとセルB2からB5にA列の文字列の左から8バイト分のアルファベット部分が表示されます。
FINDB関数との組み合わせ
下の画像の例で商品IDからアルファベット部分を抽出したい時にアルファベットのバイト数が決まっていない場合はLEFTB関数とFINDB関数を組み合わせれば抽出できます。まずセルB2に=LEFTB(A2,FINDB("-",A2)-1)と入力しEnterを押すとセルB2にセルA2の商品IDのアルファベット部分"QZXE"が表示されます。
文字列はセルA2に入力された商品IDを指定するのでA2になります。
[バイト数]にはFINDB("-",A2)-1が入力されています。FINDB関数はFINDB("探したい文字",文字列)で探したい文字が文字列の左から何バイト目か返します。探したい文字に代入さているのが-(全角マイナス)で文字列に代入さているのがA2になるのでセルA2に入力された商品IDの中で-(全角マイナス)が左から何番目にあるか返します。最後に-1がついているので-(全角マイナス)の左の文字が文字列の左から何バイト目にあるかが求まり、これが[バイト数]として使われます。
つまりセルB2に=LEFTB(A2,FINDB("-",A2)-1)と入力しEnterを押すとセルA2の商品IDからアルファベット部分がセルB2に表示されます。
セルB2からセルB5までオートフィルすればA列の商品IDのアルファベット部分がB列に表示されます。