Excel

【Excel】エクセルで複数行を一行にまとめる関数(データを横並びにする)

エクセルで複数行を一つのセルにまとめるTEXTJOIN関数 - TEXTJOIN関数の基本構文
当サイトでは記事内に広告を含みます
いつも記事を読んでいただきありがとうございます!!! これからもお役に立てる各情報を発信していきますので、今後ともよろしくお願いします(^^)/

Excelで縦に並んだ複数行のデータを一行にまとめたいときは、データを一つのセルに連結するのか、複数のセルへ横並びに変換するのかによって、選ぶ関数が変わります。

たとえば氏名、部署、住所などを一つの文章としてまとめるならTEXTJOIN関数が便利です。

一方で、縦方向のリストを横方向の表へ並べ替えるなら、TRANSPOSE関数やTOCOL関数、TOROW関数を使う方法が役立ちます。

この記事では、1行目に見出しがある表を例に、複数行を一つのセルへ結合する方法と、複数行を横並びのセルへ展開する方法を分けて解説します。

複数行を一行にまとめる主な方法

・文字列を一つのセルへつなぐ場合はTEXTJOIN関数

・縦のデータを横のセルへ並べる場合はTRANSPOSE関数

・空白セルを除いて横一列へ並べる場合はTOROW関数

セルに入力された値の種類や、空白セルの扱い、元データを更新した後の連動の有無にも注意しながら、目的に合う方法を選びましょう。

 

エクセルで複数行を一つのセルにまとめるTEXTJOIN関数

それではまず、複数行の文字列を一つのセルへ自然につなげるTEXTJOIN関数について解説していきます。

行 A列 B列
1 項目 内容
2 氏名 山田 太郎
3 部署 営業部
4 所在地 東京都

この例では、B2からB4の内容を「山田 太郎、営業部、東京都」のように一つのセルへまとめます。

 

TEXTJOIN関数の基本構文

TEXTJOIN関数は、指定した区切り文字を入れながら、複数セルの文字列を連結できる関数です。

=TEXTJOIN(“、”,TRUE,B2:B4)

1つ目の引数にはセル同士の間へ入れる区切り文字を指定します。

この例の「、」を「 / 」へ変えれば、山田 太郎 / 営業部 / 東京都という表示になります。

2つ目の引数TRUEは、範囲内の空白セルを無視する指定です。

住所や備考のように、入力されていない行が混ざる可能性がある表では、TRUEを指定すると余分な区切り記号を防げます。

エクセルで複数行を一つのセルにまとめるTEXTJOIN関数 - TEXTJOIN関数の基本構文

3つ目の引数B2:B4には、結合したいセル範囲を入力します。

結果を表示したいセル、たとえばD2を選択して数式を入力し、Enterキーで確定しましょう。

 

改行を入れて複数行を見やすく結合する方法

一つのセルへまとめるものの、画面上では項目ごとに改行して表示したい場面もあります。

その場合は、区切り文字の位置にCHAR(10)を指定します。

=TEXTJOIN(CHAR(10),TRUE,B2:B4)

CHAR(10)はセル内改行を表す文字コードです。

数式を確定した後に文字列が横一列のまま見える場合は、結果セルを選び、ホームタブの「折り返して全体を表示する」を有効にしてください。

セルの高さを自動調整すると、氏名、部署、所在地が一つずつ改行された状態で確認しやすくなります。

印刷用の宛名ラベル、顧客情報の要約、複数行のコメントを一つのセルへ集約する用途で使いやすい形式です。

【操作のポイント】CHAR(10)を使うときは、結果セルの折り返し表示も必ず確認します。

 

TEXTJOIN関数で項目名も含めてまとめる方法

値だけでは内容が分かりにくいときは、項目名と値を「項目名=内容」の形で連結すると便利です。

=TEXTJOIN(“ ”,TRUE,A2:A4&”=”&B2:B4)

Microsoft 365やExcel 2021以降では、上の数式を通常どおりEnterキーで確定すると、範囲ごとの文字列をまとめられます。

表示例は、氏名=山田 太郎 部署=営業部 所在地=東京都です。

列見出しが1行目にある場合は、見出し行を範囲へ含めず、実データが始まる2行目から指定することが基本です。

古いExcelでは配列数式としての入力が必要になる場合があるため、動作しないときは補助列を作り、C2に=A2&”=”&B2を入力してからTEXTJOINでC2:C4を結合する方法もあります。

【操作のポイント】項目名を結合する場合は、見出し行ではなくデータ行だけを参照します。

 

縦のデータを横並びにするTRANSPOSE関数

続いては、縦に入力された複数行を、横方向の複数セルへ並べ替えるTRANSPOSE関数を確認していきます。

行 A列 B列 C列 D列
1 商品名 1月 2月 3月
2 りんご 120 150 130
3 みかん 90 110 100

たとえば、別の場所に縦方向で入力された1月、2月、3月を、横方向へ並べて月別の一覧を作るイメージです。

 

TRANSPOSE関数による縦横変換

TRANSPOSE関数は、指定範囲の行と列を入れ替える関数です。

=TRANSPOSE(B2:B4)

この数式をF2に入力すると、B2、B3、B4の値がF2、G2、H2へ横並びで表示されます。

Microsoft 365やExcel 2021では、結果が必要なセルへ自動的に広がるスピル機能が働くため、数式は先頭セルだけに入力します。

あらかじめF2からH2までを選択して数式をコピーする必要はなく、先頭セルに一度だけ入力するのが基本です。

元のB2:B4を変更すると、TRANSPOSE関数の結果も連動して更新されます。

元データを残したまま横並びの集計表を作りたい場合に向く方法です。

 

範囲の大きさとスピルエラーの確認

TRANSPOSE関数の結果が広がる先に文字や数式が入力されていると、スピルエラーになることがあります。

たとえばB2:B10の9行を横並びにする場合、数式の右側に9セル分の空き領域が必要です。

エラー表示が出たときは、数式セルの周囲にある値や結合セルを確認しましょう。

スピル範囲には直接入力できないため、結果の一部だけを手作業で修正したい場合には値貼り付けへ切り替えます。

元データとの連動を不要にしたいときは、TRANSPOSE関数の結果をコピーし、形式を選択して貼り付けから「値」を選択します。

【操作のポイント】横へ展開されるセル数を確認し、数式の右側を空けてから入力します。

 

コピーと形式を選択して貼り付けによる転置

数式ではなく、一度だけ縦横を入れ替えたいときは、貼り付け機能の「行列を入れ替える」も使えます。

元の範囲B2:B4をコピーし、貼り付け先の先頭セルを右クリックします。

表示された貼り付けオプションから、行と列を入れ替えるアイコンを選択しましょう。

この方法で作成した横並びの値は、元データを変更しても自動更新されません。

更新に追従させたい表にはTRANSPOSE関数、確定済みの一覧には転置貼り付けという使い分けが分かりやすいでしょう。

【操作のポイント】貼り付けで転置した結果は元データと連動しないため、更新予定の有無を先に決めます。

 

空白を除いて一行へ並べるTOROW関数

続いては、空白セルを含む複数行のデータを整理しながら横一列へ並べるTOROW関数を確認していきます。

行 A列 B列
1 項目 入力値
2 商品 ノート
3 色
4 数量 10
5 単価 250

このように入力済みセルと空白セルが混在する場合、TOROW関数を使うと必要な値だけを一行へ集めやすくなります。

 

TOROW関数で空白セルを無視する数式

TOROW関数は、範囲の内容を一行の配列として返す関数です。

=TOROW(B2:B5,1)

2つ目の引数に1を指定すると、空白セルを無視します。

この例では、ノート、10、250が横方向へ連続して表示され、B3の空白は結果に含まれません。

空欄のあるアンケート結果、任意入力の項目、欠損を含むリストを横並びに整える場合に特に便利です。

Book1 – Excel − □ ×
ファイル ホーム 挿入 ページ レイアウト 数式 データ 校閲 表示 ヘルプ
貼り付け
太字 B
罫線
中央揃え
F2fx=TOROW(B2:B5,1)
A B C D
1 項目 入力値
2 商品 ノート ノート 10
3 色 250
赤枠の先頭セルへ数式を入力すると、結果が右方向へ自動表示されます。
B2:B5 ➤ C2:E2

数式バーにTOROW関数を入力する際は、結果を表示する先頭セルだけを選択してください。

 

エラー値も除外したい場合の指定

空白だけでなく、参照先にエラー値が含まれる表もあります。

TOROW関数の2つ目の引数では、無視する値を数値で指定できます。

=TOROW(B2:B10,3)

引数3は空白セルとエラー値の両方を無視する指定です。

元表に#N/Aや#VALUE!が含まれていても、正常な値だけを横並びにできる可能性があります。

ただし、エラーそのものが入力漏れや計算ミスのサインであることもあるため、単に隠す前に原因を確認する姿勢が大切です。

【操作のポイント】空白だけを除くなら1、空白とエラーを除くなら3を第2引数へ指定します。

 

TOROW関数を使えないExcelでの代替案

TOROW関数は比較的新しい関数のため、古いExcelでは利用できない場合があります。

そのときは、FILTER関数とTRANSPOSE関数を組み合わせる方法、または補助列を用意して空白を除外する方法を検討します。

=TRANSPOSE(FILTER(B2:B10,B2:B10<>””))

この数式は、まずFILTER関数で空白ではないセルだけを抽出し、その結果をTRANSPOSE関数で横方向へ変換します。

FILTER関数が使用できるExcelなら、TOROW関数がなくても空白を除いた横並びを作成できます。

【操作のポイント】関数の対応状況は、数式入力時に関数名が候補として表示されるかで確認できます。

 

複数列を条件ごとに一行へ集約するFILTER関数

続いては、特定の条件に合う複数行だけを取り出し、一行へまとめるFILTER関数の使い方を確認していきます。

行 A列 B列 C列
1 担当者 商品 数量
2 田中 ノート 5
3 佐藤 ペン 8
4 田中 消しゴム 3

 

FILTER関数とTEXTJOIN関数の組み合わせ

田中さんの商品だけを一つのセルへまとめるなら、TEXTJOIN関数の中にFILTER関数を入れます。

=TEXTJOIN(“、”,TRUE,FILTER(B2:B4,A2:A4=”田中”))

結果は、ノート、消しゴムです。

FILTER関数が担当者列から田中を探し、該当する商品名だけをTEXTJOIN関数へ渡します。

条件に一致する複数行を一つのセルへ要約できるため、担当者別の商品一覧や顧客別の購入履歴に活用できます。

 

条件セルを参照する数式

数式内へ田中と直接書く代わりに、検索したい担当者名をE2に入力して参照する方法もあります。

=TEXTJOIN(“、”,TRUE,FILTER(B2:B100,A2:A100=E2,”該当なし”))

E2の文字を佐藤へ変更すれば、数式を直さずに佐藤さんの商品へ切り替わります。

FILTER関数の最後の「該当なし」は、条件に合うデータが存在しないときの表示です。

検索条件を別セルに置くと、担当者や部署を切り替えても同じ数式を再利用できます。

【操作のポイント】条件値を数式へ直接書かず、入力セルを参照すると表を使い回しやすくなります。

 

数値を横並びにするときの注意点

数量や金額などの数値をTEXTJOIN関数でまとめると、結果は文字列になります。

そのため、結合後のセルをSUM関数で合計しても計算できません。

計算用のデータは元の表に残し、TEXTJOIN関数で作ったセルは表示用や帳票用として扱うのが安全です。

数値の集計が目的なら、文字列として結合する前にSUMIFS関数やピボットテーブルで計算します。

【操作のポイント】TEXTJOINの結果は文字列として扱われるため、計算用の範囲と分けて管理します。

 

横並びにまとめる際の空白と書式の扱い

続いては、複数行を一行へまとめるときに起こりやすい空白、表示形式、結合セルの注意点を確認していきます。

行 A列 B列 C列
1 日付 内容 備考
2 2026/9/1 受付
3 2026/9/2 確認 電話連絡

 

空白セルによる区切り記号の増加

TEXTJOIN関数で第2引数をFALSEにすると、空白セルも連結の対象になります。

=TEXTJOIN(“、”,FALSE,A2:C2)

この例では備考が空白なので、結果の末尾に不要な区切り記号が見えることがあります。

通常はTRUEを指定し、実際に入力されている値だけをつなぐ設定にしておくと見た目が整います。

 

日付と数値の表示形式

日付や通貨を連結すると、セルに見えていた表示と異なる形になる場合があります。

日付を2026年9月1日のように整えたい場合は、TEXT関数を組み合わせます。

=TEXT(A2,”yyyy年m月d日”)&” ”&B2

金額ならTEXT(C2,”#,##0円”)のように指定できます。

TEXTJOIN関数へ渡す前にTEXT関数で書式を整えると、帳票やメール本文へ貼り付けても読みやすい文字列になります。

【操作のポイント】日付や金額はTEXT関数で表示形式を指定してから連結します。

 

セル結合を使わない表作成

複数セルを横に見せるために、セルの結合を使いたくなることがあります。

しかし結合セルがある表は並べ替え、フィルター、コピー、スピル配列の妨げになることがあります。

見出しを中央に見せたいだけなら、セル結合ではなく「選択範囲内で中央」を使う方法が実務では扱いやすいでしょう。

データを横並びにする目的にはTRANSPOSE関数やTOROW関数を使い、結合セルはできるだけ避けると後の編集が楽になります。

【操作のポイント】データ範囲には結合セルを作らず、数式が広がる余白も確保します。

 

まとめ エクセルで複数行を一行にまとめる関数(データを横並びにする)

エクセルで複数行を一行にまとめるときは、最初に「一つのセルへ文章としてまとめる」のか、「複数セルへ横並びに変換する」のかを決めることが重要です。

文字列を一つのセルへ連結する場合は、区切り文字と空白の扱いを指定できるTEXTJOIN関数が基本になります。

縦方向のデータを横方向へ並べる場合は、TRANSPOSE関数を先頭セルに入力すると、元データと連動した横並びの表を作れます。

空白を除きながら一行へ展開したい場合はTOROW関数、条件に合う行だけをまとめたい場合はFILTER関数とTEXTJOIN関数の組み合わせが便利です。

数式で作った横並びの結果はスピル範囲として広がるため、周囲のセルを空け、元データと結果の役割を分けて管理しましょう。

用途に応じて関数を使い分ければ、縦長の一覧を見やすい一行のデータや横並びの表へ効率よく変換できます。