Excelで1つの列を複数の列に簡単に分割する7つの方法を徹底解説
Excelでは、1つのセルに入力されたデータ(例:「Microsoft Excel 2018」のような製品名と年号)を、複数の列に分けて整理したい場面がよくあります。本記事では、初心者から上級者まで使える7つの方法を、手順付きの画像解説とともにご紹介します。

方法1:区切り位置機能を使って1つの列を複数の列に分割する
ここでは、Microsoft製品のデータセット(B4:D9)を使用します。1つの列(B5:B9)に入力された情報を、複数の列に分割していきます。

手順:
- 分割したい列範囲(B5:B9)を選択します。
- [データ]タブを開きます。
- [データツール]グループにある[区切り位置]をクリックします。

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

- ウィザードのステップ2画面が表示されたら、[スペース]にチェックを入れます。
- [データのプレビュー]欄で、結果がどのように表示されるかを確認できます。
- [次へ]をクリックします。

- ウィザードのステップ3画面で、[列のデータ形式]から[標準](General)を選択します。
- [表示先](Destination)ボックスで、結果を表示させたい場所を指定します。
- [データのプレビュー]で結果が正しく表示されているか確認します。
- [完了]をクリックします。

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

方法2:カンマを区切り文字として1つの列を複数の列に分割する
今度は、製品名と年号がカンマで区切られたデータセット(B4:D9)を分割してみましょう。

手順:
- 分割したい列範囲(B5:B9)を選択します。
- [データ]タブ → [データツール]グループ → [区切り位置]を選択します。

- ウィザードのステップ1画面で、[区切り文字]オプションを選択して[次へ]をクリックします。

- ウィザードのステップ2画面で、[その他]にチェックを入れ、「,」(半角カンマ)を入力します。または、[カンマ]オプションにチェックを入れても構いません。
- [データのプレビュー]で結果を確認します。
- [次へ]をクリックします。

- ウィザードのステップ3画面で、[列のデータ形式]から[標準]を選択します。
- [表示先]ボックスで結果の出力先を指定します。
- [データのプレビュー]で結果を確認したら、[完了]をクリックします。

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

- 以下が実行結果です。

方法3:結合セルを解除して複数の列に分割する
結合されたセルが含まれる列を、セルの結合を解除して複数の列として扱えるようにします。

手順:
- 対象の列内にあるすべての結合セルを選択します。
- [ホーム]タブを開きます。
- [配置]グループの[中央揃え](Merge & Center)のドロップダウンをクリックします。
- [セル結合の解除]を選択します。

- セルの結合が解除され、それぞれ別の列に分割されました。

関連記事: Excel Power Queryで列を分割する方法
方法4:フラッシュフィルを使って1つの列を複数の列に分割する
フラッシュフィル(Flash Fill)は、最初の入力例からパターンを自動的に学習し、残りのデータを一括処理できる便利な機能です。製品名と年号が入ったデータセットの1列(B4:B9)を複数の列に分割します。

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

- セルC5を選択した状態で、フィルハンドル(右下の小さな四角)を使って下の空きセルまでドラッグします。
- 右下に表示される[オートフィル オプション]パネルから[フラッシュフィル]をクリックします。

- 隣の列(D列)についても同じ操作を繰り返します。

方法5:Excel VBAを使って1つの列を複数の列に分割する
大量のデータを定期的に分割する必要がある場合は、VBAマクロが便利です。年ごとのMicrosoft Excel製品データ(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)をクリックします。

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

- 入力範囲を選択して[OK]をクリックします。

- 新しい列に表示したい行数を入力し、[OK]を選択します。

- 出力先となる最初のセルを選択して[OK]をクリックします。

- 1つの列のすべての値が2つの列に分割された結果を確認できます。

方法6:INDEX関数とROWS関数を組み合わせて1つの列を複数の列に分割する
値が縦方向に連続して並んでいるデータセット(B4:B14)を、2つの列(Column1とColumn2)に振り分けます。この方法なら、元データが更新されても数式が自動的に反映されるのがメリットです。

手順:
- セルD5を選択します。
- 以下の数式を入力してEnterキーを押します。
=INDEX($B$5:$B$14,ROWS(D$5:D5)*2-1)

- フィルハンドルを使って、下のセルまでオートフィルします。

- セルE5を選択します。
- 以下の数式を入力してEnterキーを押します。
=INDEX($B$5:$B$14,ROWS(E$5:E5)*2)

- フィルハンドルで下方向にコピーすると、結果が表示されます。

方法7:LEFT関数とRIGHT関数を使って1つの列を複数の列に分割する
テキスト操作関数を活用すれば、「製品名 年号」という形式の文字列を空白の位置で前後に分けることができます。

手順:
- セルC5を選択します。
- 以下の数式を入力してEnterキーを押します。
=LEFT(B5,SEARCH(" ",B5)-1)

➥ 数式の解説
➤ SEARCH(" ",B5)
SEARCH関数は、セルB5内の空白文字の位置(何番目か)を返します。
➤ LEFT(B5,SEARCH(" ",B5)-1)
空白の直前までの文字列、つまり製品名部分を抽出して返します。
- Enterキーを押したら、フィルハンドルツールで下のセルまでオートフィルします。

- セルD5を選択します。
- 以下の数式を入力してEnterキーを押します。
=RIGHT(B5,LEN(B5)-SEARCH(" ",B5))

- フィルハンドルで下方向にコピーすると、結果が表示されます。

➥ 数式の解説
➤ SEARCH(" ",B5)
SEARCH関数は、空白文字の位置を返します。
➤ LEN(B5)
LEN関数は、セルB5の文字列全体の文字数を返します。
➤ RIGHT(B5,LEN(B5)-SEARCH(" ",B5))
文字列の総文字数から空白の位置を引いた分だけ右側から抽出するため、空白以降の文字列(年号部分)が返されます。
まとめ
今回ご紹介した7つの方法を、目的別に整理すると以下のようになります。
- 手軽さ重視なら: 方法1・2の「区切り位置」機能が最もシンプルです。
- 結合セルの解除なら: 方法3の「セル結合の解除」を使いましょう。
- パターン入力なら: 方法4の「フラッシュフィル」が直感的です。
- 大量データの定期処理なら: 方法5のVBAマクロが効率的です。
- 動的な数式管理なら: 方法6・7の関数を使う方法がおすすめです。
自分の用途やデータ量に合わせて、最適な方法を選んでみてください。
関連記事
- Excelで単語単位で列を分割する方法
- Excelで最初の空白を基準に列を分割する方法
- Excelでカンマを基準に列を分割する方法
- Excelで日付と時刻の列を分割する方法
-
Microsoft Outlookにメールを読み上げさせる方法|Speakコマンドの設定手順
Microsoft Outlookにメールを読み上げさせる方法Microsoft Officeには「テキスト読み上げ(Text to Speech)」機能が搭載されていることをご存じでしょうか?実は、Microsoft Outlookでもこの機能を活用して、メールの内容を音声で読み上げさせることができます。Outlookだけでなく、MS Officeの他のアプリケーションでも、選択したテキストをワンクリックで読み上げさせることが可能です。設定を始める前に、以下の点をあらかじめ理解しておきましょう。読み上げに使用される音声と速度は、コントロールパネルにインストールされているデフォルトの音声が適用
-
PowerPointプレゼンテーションをPDFファイルとして保存する方法【バージョン別手順】
ポイントPowerPoint 2013、2016、2019、Microsoft 365、Mac版PowerPointの場合:「ファイル」>「名前を付けて保存」>「PDF」の順に選択します。PowerPoint 2010の場合:「ファイル」>「保存して送信」>「PDF/XPSドキュメントの作成」を選択し、ファイル名と保存先を指定して「発行」をクリックします。Windows PCでPDFを最適化する場合:「ファイル」>「名前を付けて保存」>「オプション」の順に選択します。PowerPointのプレゼンテーションをPDFファイルとして保存すれば、印刷・確認・メール