この記事では、エクセルで数字や文字をばらす(1つずつに分ける:区切る)方法について解説していきます。
こちらの処理としては、主に
・[データ]タブ→「区切り位置」を使用する方法
・MID関数とCOLUMN関数を使用する方法
・VBAを使用する方法
を使うことで、数字や文字をばらす(1つずつに分ける:区切る:分割)ことができます。
では、サンプルを見ていきましょう。
エクセルで数字をばらす(1つずつに分ける:区切る)方法1
エクセルで2桁以上の数字を、1桁ずつ別のセルに分けて表示させる場合、最も簡単な方法は[データ]タブ→「区切り位置」を使うとよいです。
まず、ばらしたい数字が入力されているセルを選択します(サンプルではセルA2に元となる数字を設定しています)。
次に、①[データ]タブを選択し、②[データ]タブ内の「区切り位置」を左クリックします。
「区切り位置指定ウィザード」が開いたら、①「元のデータ形式」の「スペースによって右または左に揃えられた固定長フィールドのデータ」を選択。②「次へ」を左クリックします。
続いて、数字の分けたい箇所に区切り線を追加します。
方法は、「データプレビュー」内の目盛りにカーソルを合わせて、左クリックを押します。すると、数字の間に区切り線が追加されます。
区切り線を追加したら、「次へ」を選択します。
今度は、今分けた数字をどのセルに表示させるかを指定します。
方法は、まず「表示先」の上矢印を左クリックします。
次に、表示させたいセルを選択します(サンプルではセルC2で設定しています)。
最後に、「完了」を選択します。
もし、以下のようなメッセージが表示された場合、「OK」を選択してください。
セルA2の「123456789」がセルC2~K2に1桁ずつにわかれて表示がされました。
以上が、[データ]タブ→「区切り位置」を使用して数字を1桁ずつにわける方法になります。
エクセルで数字をばらす(1つずつに分ける:区切る)方法2【関数】
続いて、関数を使って先ほど同様に数字を1桁ずつにばらす方法について解説します。
今回使用する関数は、MID関数とCOLUMN関数です。
まず、以下の関数をセルC2貼り付けします。
=MID($A2,COLUMN()-COLUMN($C2)+1,1)
次に、セルC2をコピーします。
そして、①セルD2~K2を選択した状態で、右クリックをします。②右クリックメニューから「貼り付けオプション」の「数式の貼り付け」を選択します。
【方法1】同様、セルA2の「123456789」がセルC2~K2に1桁ずつにばらして表示することができました。
エクセルで数字をばらす(1つずつに分ける:区切る)方法3【VBA】
最後に、VBAを使用して、マクロの実行により数字をばらす方法について解説します。
VBAコードは以下になります。
Sub 各桁に分割して抽出()
Dim Numbers As String
Dim i As Integer
‘ セルA1に入力されている数字を取得
Numbers = Range(“A2”).Value
‘ セルA1の桁数を取得し、取得した数字をiとする
For i = 1 To Len(Numbers)
‘ セルB1からi列目までに、セルA1を分割して表示
Cells(2, i + 2).Value = Mid(Numbers, i, 1)
Next i
End Sub
まず、①[開発]タブ→②「Visual Basic」を選択します。
「Visual Basic」ウィンドウが開いたら、ツール→「挿入」→「標準モジュール」の順にクリックします。
新規モジュールに、先ほどのVBAコードをコピーして貼り付けします。
貼り付けをしたら、Ctrl+Sを押して一旦保存をします。
作業の途中で、もし以下のダイアログが表示された場合は「いいえ」を押して、マクロ有効のExcelファイル(.xlsm)を新たに作成して保存してください。
では、マクロの実行できるか試してみましょう。
「Visual Basic」ウィンドウの「ユーザーフォームの実行」を左クリックします。
今度も、【方法1】【方法2】同様、セルA2の「123456789」がセルC2~K2に1桁ずつにわかれて表示がされました。
まとめ エクセルで数字を1つずつに分ける:区切る方法【関数:桁ごとに分けるなど】
この記事ではエクセルで数字をばらす(1つずつに分ける:区切る)方法について解説しました。
方法は、簡単なものから関数やVBAを使用したものまで沢山ありますので、それぞれの方法を理解し、業務に役立てていきましょう。