Excelで複数の列を1つの列にまとめる

  • これを共有
Hugh West

Microsoft Excelでは、複数の列を1つの列に結合するのに適した方法がいくつかあります。 この記事では、複数の列から1つの列にデータを結合するためにさまざまなアプローチを適用する方法を、例と適切な図解で学びます。

練習用ワークブックをダウンロードする

この記事の作成に使用したExcelワークブックをダウンロードすることができます。

複数の列を1つの列にまとめる.xlsx

Excelで複数の列を1つの列にまとめる6つのアプローチ

1.Excelで複数の列を結合するCONCATENATEまたはCONCAT関数の使用法

次の図では、3つの列が分割されたランダムなアドレスを表しています。 各行をマージして、意味のあるアドレスを E列 の下に 合体テキスト ヘッダを表示します。

を使用することができます。 CONCATENATE または CONCAT 関数を使用することで、その目的を果たすことができます。 最初の出力では セルE5 の場合、必要な計算式は次のようになります。

=concatenate(b5,c5,d5)です。

あるいは

=concat(b5,c5,d5)

を押した後 入力 を使用し フィルハンドル の残りのセルをオートフィルする。 E列 とすると、下図のように結合された1つのカラムが得られます。

関連コンテンツ Excelで2つ以上のセルから1つのセルにテキストを結合する(5つの方法)

2.アンパサンド(&)による複数列の1列化

を使用することもできます。 アンパサンド(&) セル内のテキストに区切り記号がないと仮定して、行のテキストを結合するときには、区切り記号を挿入する必要があります。

出力において セルE5 を使って、必要な数式を作成します。 アンパサンド(&) になります。

=B5&」、「&C5&」、「&D5

プレス 入力 を自動入力します。 E列 をクリックすると、結合されたすべてのテキストがすぐに1つのカラムに収まります。

3.Excelで複数の列を1列にまとめるTEXTJOIN関数を挿入する

を使用している場合 エクセル2019 または Excel 365 であれば テキストジョイン 機能もまた、目的に合った素晴らしい選択肢です。

で複数のテキストを結合するために必要な式。 テキストジョイン での機能 セルE5 になります。

=textjoin(", ",true,b5,c5,d5)です。

を押した後 入力 の最後のセルまでドラッグダウンしてください。 E列 とすると、連結されたテキストが一度に1つのカラムに表示されます。

4.エクセルで複数の列を1つの列に積み重ねる

このデータセットには,4つのランダムな列があります. B列 まで E列 .下 コンバイン・コラム ヘッダから値をスタックします。 第4、5、6回 つまり、1つの列の中にすべてのデータを積み重ねるのです。

📌 ステップ1.

➤ セルの範囲を選択する (B4:E6) を含む。

➤ テキストで名前を付けます。 ネームボックス .

📌 ステップ2.

➤ 出力において セルG5 を入力し、次の数式を入力します。

=INDEX(データ,1+INT((ROW(A1)-1)/COLUMNS(データ)),MOD(ROW(A1)-1+COLUMNS(データ)),COLUMNS(データ))+1)

📌 ステップ3.

➤ プレス 入力 で4行目から最初の値を取得します。 セルG5 .

➤ 今すぐ使える フィルハンドル を見つけるまで、列に沿ってドラッグダウンしてください。 #レフ のエラーが発生しました。

そして最後に、次のような出力が表示されます。

🔎 フォーミュラの仕組みは?

  • COLUMNS(データ)。 があります。 コロンブス 関数の内部で モデル は,指定された範囲内で利用可能な列の総数を返します。 (データ) .
  • ROW(A1)-1+COLUMNS(Data)です。 の組み合わせは コロンブス の配当を定義しています。 モデル 関数を使用します。
  • MOD(ROW(A1)-1+COLUMNS(Data), COLUMNS(Data))+1。 の列番号を定義する部分です。 INDEX を返し、出力には '1' .
  • 1+INT((ROW(A1)-1)/COLUMNS(Data)): の行番号。 INDEX 関数は、この部分によって指定されます。 イント 関数は結果の値を整数に切り上げる。

5.メモ帳を利用してExcelの列データを結合する

また メモ帳 を使って、複数の列を1つの列にまとめることができます。 次の手順で行ってみましょう。

📌 ステップ1.

➤ セルの範囲を選択する (B5:D9) を含む。

➤ プレス CTRL+C をクリックして、選択したセル範囲をコピーします。

📌 ステップ2.

➤ ノートパッドファイルを開く。

➤ペースト CTRL+V をクリックすると、選択したデータをここに貼り付けることができます。

📌 ステップ3.

➤ プレス CTRL+H を開いてください。 交換 ダイアログボックスを表示します。

➤ メモ帳ファイル内の脇の2つのテキスト間のタブを選択し、コピーする。

➤ 貼り付けます。 を探す ボックスを使用します。

📌 ステップ4.

➤タイプ ", " において に置き換えてください。 ボックスを使用します。

➤ オプションを押す すべて交換 で終了です。

メモ帳ファイルにあるすべてのデータは、次の図のようになります。

📌 ステップ5.

➤ ここで、メモ帳からテキストを丸ごとコピーします。

📌 ステップ6.

➤ そして最後に、出力に貼り付けます。 セルE5 あなたの中の エクセル 表計算ソフト

の結果データ E列 は以下のようになります。

6.VBAスクリプトを使って、Excelで列を1列に結合する

また ブイビーエー メソッドを使って、複数の列を1つの列に重ねることができます。 次の図では G列 は、スタックしたデータを表示します。

📌 ステップ1.

➤ ワークブックのシート名を右クリックし 表示コード .

新しいモジュールウィンドウが表示されますので、そこに以下のコードを貼り付けてください。

 Option Explicit Sub StackColumns() Dim Rng1 As Range Dim Rng2 As Range Dim Rng As Range Dim RowIndex As Integer Set Rng1 = Application.Selection Set Rng1 = Application.InputBox("Select Range:", "Stack Data into One Column", Rng1.Address, Type:=8) Set Rng2 = Application.InputBox("Destination Column:", "Stack Data into One Column", Type:=8) RowIndex = 0 Application.ScreenUpdating = False For EachRng In Rng1.Rows Rng.Copy Rng2.Offset(RowIndex, 0).PasteSpecial Paste:=xlPasteAll, Transpose:=True RowIndex = RowIndex + Rng.Columns.Count Next Application.CutCopyMode = False Application.ScreenUpdating = True End Sub 

📌 ステップ2.

➤ コードを貼り付けたら、 を押します。 F5 を実行してください。

➤ マクロの名前を マクロ ダイアログボックスを表示します。

➤ プレス 実行 .

📌 ステップ3.

➤ データの主な範囲を選択する (B4:E6) において 範囲を選択 ボックスを使用します。

➤ プレス よっしゃー .

📌 ステップ4.

➤ 出力の選択 セルG5 を有効にした後 デスティネーションコラム ボックスを使用します。

➤ プレス よっしゃー で終了です。

次の図のように、出力欄に結合され積み重ねられたデータが表示されます。

結びの言葉

以上、簡単な方法をご紹介しましたが、これからは必要な時にExcelのスプレッドシートで応用していただければと思います。 もし、ご質問やご意見がありましたら、コメント欄でお知らせください。 または、本サイトのExcel関数に関連する他の記事もご覧になってみてください。

Hugh West は、業界で 10 年以上の経験を持つ、非常に経験豊富な Excel トレーナー兼アナリストです。彼は会計と財務の学士号と経営管理の修士号を取得しています。ヒューは教えることに情熱を持っており、理解しやすい独自の教育アプローチを開発しました。彼の Excel に関する専門知識は、世界中の何千人もの学生や専門家がスキルを向上させ、キャリアで優れた成果を上げるのに役立ってきました。 Hugh はブログを通じて知識を世界に共有し、個人や企業が潜在能力を最大限に発揮できるよう無料の Excel チュートリアルとオンライン トレーニングを提供しています。