【Excel】1つの列を複数の列に分割する7つの簡単な方法を徹底解説
長いExcelの列から目的の値を探し出すのは、時にとても大変です。そこで役立つのが「1つの列を複数の列に分割する」という操作です。データを見やすく整理でき、必要な情報にも素早くアクセスできるようになります。本記事では、具体的な例と手順を交えながら、Excelで1つの列を複数の列に分割する方法をわかりやすく解説します。
練習用ワークブックについて
記事の内容を実際に試せるように、練習用のワークブックをご用意しました。ぜひダウンロードして操作を体験してみてください。
1つの列を複数の列に分割する7つの方法
方法1:「区切り位置」機能を使って分割する
「区切り位置(Text to Columns)」は、Excelに標準搭載されている便利な機能です。ここでは、Microsoft製品のデータセット(B4:D9)を例に、1つの列(B5:B9)に入った情報を複数の列に分割してみましょう。

手順:
- まず、分割したい列の範囲(B5:B9)を選択します。
- 次に「データ」タブを開きます。
- 「データツール」グループ内の「区切り位置」をクリックします。

- ウィザードの第1/3ステップ画面が表示されます。
- 「コンマやタブなどの区切り文字によってフィールドごとに区切られたデータ」を選択し、「次へ」をクリックします。

- ウィザードの第2/3ステップ画面で、「スペース」にチェックを入れます。
- 「データのプレビュー」欄で分割結果を確認しましょう。
- 確認できたら「次へ」をクリックします。

- ウィザードの第3/3ステップ画面では、「列のデータ形式」から「標準」を選択します。
- 「表示先」ボックスに、結果を表示させたいセルを指定します。
- 「データのプレビュー」で結果が正しいか最終確認します。
- 「完了」をクリックします。

- これで、1つの列のデータが複数の列に分割されました。

方法2:改行やカンマで区切られたデータを複数の列に分割する
「区切り位置」機能を使えば、1つのセル内に複数行・複数項目で入力されたデータも簡単に分割できます。ここでは、Microsoft製品と年が同じセルに入力されたデータセット(B4:D9)を分割していきます。

手順:
- 分割したい範囲(B5:B9)を選択します。
- 「データ」タブ → 「データツール」 → 「区切り位置」の順にクリックします。

- ウィザードの第1/3ステップで「区切り文字により...」を選択し、「次へ」をクリックします。

- ウィザードの第2/3ステップ画面で、「その他」にチェックを入れ、半角カンマ「,」を入力します。
- 「データのプレビュー」で結果を確認して「次へ」をクリックします。

- ウィザードの第3/3ステップで、「列のデータ形式」は「標準」を選びます。
- 「表示先」に結果を出力する場所を指定します。
- 「データのプレビュー」で確認後、「完了」をクリックします。

- 確認メッセージが表示されたら「OK」を選択します。

- これで分割結果が表示されます。

方法3:結合セルを解除して複数の列に分ける
下記のデータセットのように、結合されたセルが含まれる列がある場合、結合を解除することで複数の列に分けられます。

手順:
- まず、対象となる結合セルをすべて選択します。
- 「ホーム」タブを開きます。
- 「配置」グループの「セルを結合して中央揃え」のドロップダウンをクリックします。
- 「セル結合の解除」を選択します。

- セルの結合が解除され、それぞれ別の列にデータが振り分けられます。

関連記事: Power Queryで列を分割する5つの簡単な方法
方法4:「フラッシュフィル」機能を使って分割する
Excelには賢い自動処理ツールがいくつか用意されています。そのひとつが「フラッシュフィル(Flash Fill)」です。入力したセルのパターンを認識し、それに合わせた出力を自動的に生成してくれます。ここでは、Microsoft製品名と年が入った1つの列(B4:B9)を複数の列に分割します。

手順:
- セルC5を選択し、製品名の「Microsoft Excel」と入力します。
- 続いてセルD5を選択し、年の「2018」と入力します。

- セルC5を選択した状態でフィルハンドルを使って下の空きセルまでオートフィルします。
- 表示される「オートフィルオプション」から「フラッシュフィル」をクリックします。

- 隣の列でも同じ操作を行えば、すべてのデータが分割されます。

方法5:VBAマクロを使って分割する
ExcelのVBA(Visual Basic for Applications)のコードを使えば、1つの列を複数の列に自動分割できます。ここでは、Microsoft製品と年が縦に並んだデータ(B4:B14)を、D4とE4を起点とする2つの列に分割してみましょう。

手順:
- まず、分割したい列の全データを選択しておきます。
- シートタブ上でシート名を右クリックします。
- 「コードの表示(View Code)」を選択します。

- VBAモジュール画面が開くので、以下のコードを入力します。
Sub SplitOneColumn()
Dim rng As Range
Dim InputRng As Range
Dim OutputRng As Range
Dim xRow As Integer
Dim xCol As Integer
Dim xArr As Variant
Set InputRng = Application.Selection
Set InputRng = Application.InputBox("Select Input Range :", "SplitOneColumn", InputRng.Address, Type:=8)
xRow = Application.InputBox("Enter Row Number :", "SplitOneColumn")
Set OutputRng = Application.InputBox("Select Output Range :", xTitleId, Type:=8)
Set InputRng = InputRng.Columns(1)
xCol = InputRng.Cells.Count / xRow
ReDim xArr(1 To xRow, 1 To xCol + 1)
For i = 0 To InputRng.Cells.Count - 1
xValue = InputRng.Cells(i + 1)
iRow = i Mod xRow
iCol = VBA.Int(i / xRow)
xArr(iRow + 1, iCol + 1) = xValue
Next
OutputRng.Resize(UBound(xArr, 1), UBound(xArr, 2)).Value = xArr
End Sub
- 「実行(Run)」をクリックします。

- 確認ダイアログが表示されたら「実行」を選択します。

- 入力範囲(Input Range)を選択して「OK」をクリックします。

- 新しい列に表示したい行数を入力し、「OK」をクリックします。

- 出力先となる新しい列の先頭セルを選択して「OK」をクリックします。

- これで、1つの列の値が2つの列に分割されました。

方法6:INDEX関数を使って分割する
ExcelのINDEX関数とROWS関数を組み合わせると、数式だけで1つの列を複数の列に分割できます。データセット(B4:B14)の値を、「列1」と「列2」の2つの列に振り分けてみましょう。

手順:
- 最初にセルD5を選択します。
- 次の数式を入力します。
=INDEX($B$5:$B$14,ROWS(D$5:D5)*2-1)

- Enterキーを押し、フィルハンドルで下のセルまでオートフィルします。

- 続いてセルE5を選択します。
- 次の数式を入力します。
=INDEX($B$5:$B$14,ROWS(E$5:E5)*2)

- Enterキーを押してフィルハンドルでコピーすれば、結果が表示されます。

方法7:LEFT関数とRIGHT関数を使って分割する
ExcelのLEFT関数は文字列の左端から指定した文字数を抽出し、RIGHT関数は右端から文字を取り出すことができる文字列関数です。ここでは、1つの列(B4:B9)に入ったデータを、この2つの関数を使って分割します。

手順:
- セルC5を選択します。
- 次の数式を入力します。
=LEFT(B5,SEARCH(" ",B5)-1)

▼ 数式の解説
➤ SEARCH(" ",B5)
SEARCH関数が、スペースの位置(何番目の文字か)を返します。
➤ LEFT(B5,SEARCH(" ",B5)-1)
スペースの直前までの文字列、つまり製品名部分を取り出します。
- Enterキーを押し、フィルハンドルで下のセルまでオートフィルします。

- 今度はセルD5を選択します。
- 次の数式を入力します。
=RIGHT(B5,LEN(B5)-SEARCH(" ",B5))

- 最後にEnterキーを押し、フィルハンドルでコピーすると結果が表示されます。

▼ 数式の解説
➤ SEARCH(" ",B5)
SEARCH関数がスペースの位置を返します。
➤ LEN(B5)
LEN関数が、文字列全体の文字数を返します。
➤ RIGHT(B5,LEN(B5)-SEARCH(" ",B5))
全体の文字数からスペースの位置を引いた残りの文字、つまり年号部分を右端から取り出します。
まとめ
今回は、Excelで1つの列を複数の列に分割するための最速の方法を7つ紹介しました。練習用ワークブックも用意していますので、ぜひ実際に手を動かして試してみてください。ご質問や新しい方法の提案などがありましたら、お気軽にお寄せください。
関連記事
- Excelで単語を基準に列を分割する5つの効果的な方法
- Excelで最初のスペースを基準に列を分割する方法(簡単な手順付き)
- Excelでカンマを基準に列を分割する8つの quick メソッド
- Excelで日付と時刻の列を分割する7つの簡単な方法
-
Excelで複数のCSVファイルを1つのワークブックにまとめる3つの簡単な方法
Excelは、大量のデータを扱う際に最も広く活用されているツールです。表計算から分析まで多彩な作業をこなせる万能ソフトですが、本記事では複数のCSVファイルを1つのExcelワークブックに結合する方法を、初心者にもわかりやすく解説します。 Excelで複数のCSVファイルを1つのワークブックに結合する3つの方法 CSVとは「Comma Separated Values(カンマ区切り値)」の略で、データを表形式で保存できる軽量なファイル形式です。テキストベースのため、パソコンのストレージ容量をほとんど消費しないのもメリットです。ここでは、デスクトップ上にあるCSVファイル2つが入ったフォルダを例
-
Excelでアンケートを作成する2つの簡単な方法【手動入力とVBA】
この記事では、Excelでアンケート(質問票)を作成する方法を解説します。アンケートとは、質問や特定の項目に対して選択肢を設け、回答者から情報を収集するためのツールです。Excelを使えば、いくつかの簡単な手順だけで誰でもアンケートを作成できます。本記事では2つの簡単な方法をご紹介します。これらの方法をマスターすれば、Excelでのアンケート作成がぐっと楽になります。それでは早速始めましょう。 練習用ワークブックはこちらからダウンロードできます。 Excelでアンケートを作成する2つの方法 Excelでアンケートを作成するには、主に2つの方法があります。 1つ目の方法は、手動でアンケートを作成