Excel

【Excel】エクセルで左から何文字目だけ抽出(n文字目:2文字目:3文字目のみ抜き出すなど)する方法

当サイトでは記事内に広告を含みます
技術ブログ特化メルマガはこちら

この記事では、エクセルで文字列の左端から特定の位置の文字を抽出する方法を関数とマクロを使って解説します。

以下がポイントです。

・MID関数の使用

・InputBoxでn文字目を指定して左からn文字目を抽出するマクロ

それでは詳しく見ていきます。

エクセルで左から何文字目だけ抽出(2文字目)する方法

以下のサンプルを使って、左から2文字目だけの抽出方法を見ていきましょう。

A列に元データを入力し、B2セルに以下の数式を入力します。

=MID(A2,2,1)

MID関数の第2引数に2を指定することで、左から2文字目の位置を指定し、1文字分を取り出しています。

ENTERで処理を確定し、B2セルからオートフィルでB列全体に数式をコピーすれば完了です。

MID関数は、文字列の左端からn文字目を抽出したい場合に応用できる便利なテクニックですね(^^)/

エクセルで左から何文字目だけ抽出(3文字目)する方法

左から3文字目の抽出も、MID関数を使えば簡単に実現できます。

A列の元データに対し、B2セルに以下の数式を入力します。

=MID(A2,3,1)

MID関数の第2引数に3を指定することで、左から3番目の位置を指定し、その位置の1文字を取り出しています。

ENTERで処理を確定させ、B2セルからオートフィルでB列全体に数式をコピーします。

文字列の左端からn文字目を抽出するには、MID関数の第2引数をnとすればOKですね!

エクセルで左から何文字目だけ抽出する方法【InputBoxでn文字目を指定して左からn文字目を抽出するマクロ】

先の関数をマクロ化して、InputBoxでn文字目を指定できるようにしてみましょう。

VisualBasicエディタを開き、以下のコードを入力します。



Sub ExtractNthCharacterFromLeft()
    Dim n As Long
    n = InputBox("左から何文字目を抽出しますか?")
    Dim lastRow As Long
    lastRow = Cells(Rows.Count, 1).End(xlUp).Row  
    Range("B2").Formula = "=MID(A2," & n & ",1)"
    Range("B2").AutoFill Destination:=Range("B2:B" & lastRow)
End Sub

このマクロは以下のような動作をします(^^)/

1. InputBoxでnに抽出する文字の位置を入力2. A列の最終行を取得

3. B2セルに数式を入力

4. B2セルの数式をB列全体にオートフィル

nに3を指定すれば左から3文字目、5を指定すれば左から5文字目を抽出します。

A列のデータが変わっても、マクロを実行するだけで瞬時にB列の結果が更新されますね!

まとめ エクセルで左からn文字目を抽出する方法

本記事ではエクセルの関数とマクロを使って、文字列の左から特定の位置の文字を抽出する方法を解説しました。

文字列操作のバリエーションは多岐にわたります。

本記事を参考に、エクセルの関数とマクロをマスターして業務の効率化につなげてください。