PR

Excelで2行ごとのデータを1行にまとめる方法|WRAPROWS関数とINDEX関数で解説

Excel
記事内に広告が含まれています。

Excelでデータを整理していると、

・名前とメールアドレスが2行に分かれている
・商品名と価格が交互に並んでいる
・日付と内容が縦に並んでいる
・WebやPDFからコピーしたデータが2行で1件になっている

ということはありませんか?

このようなデータは、そのままだとフィルターや並べ替え、集計がしづらくなります。

たとえば、次のようなデータです。

A列
山田太郎
yamada@example.com
佐藤花子
sato@example.com
鈴木一郎
suzuki@example.com

これを、次のように1行にまとめたい場合があります。

名前メールアドレス
山田太郎yamada@example.com
佐藤花子sato@example.com
鈴木一郎suzuki@example.com

Microsoft 365やExcel 2024以降であれば、WRAPROWS関数を使うと簡単に変換できます。

また、WRAPROWS関数が使えない古いExcelでも、INDEX関数を使えば同じように2行ごとのデータを1行にまとめられます。

この記事では、Excelで2行ごとのデータを1行にまとめる方法を、WRAPROWS関数とINDEX関数の両方で解説します。

2行ごとのデータを1行にまとめるならWRAPROWS関数が便利

Microsoft 365やExcel 2024以降を使っている場合は、WRAPROWS関数を使うのが簡単です。

WRAPROWS関数は、縦または横に並んだデータを、指定した個数ごとに折り返して表示できる関数です。

基本構文は次のとおりです。

=WRAPROWS(対象範囲, 1行に並べる個数, 不足分に表示する値)

2行ごとのデータを1行にまとめたい場合は、1行に並べる個数を「2」にします。

たとえば、A2:A7にデータがある場合は、次のように入力します。

=WRAPROWS(A2:A7,2)

これで、A列に縦に並んでいたデータを、2件ごとに横へ並べられます。
つまり、1行目と2行目、3行目と4行目、5行目と6行目をそれぞれ同じ行に並べるイメージです。

見出しを付けると表として使いやすい

WRAPROWS関数で変換したデータは、そのままだと見出しがありません。
そのため、必要に応じて上の行に見出しを付けておくと見やすくなります。

たとえば、名前とメールアドレスを分ける場合は、次のようにします。

名前メールアドレス
山田太郎yamada@example.com
佐藤花子sato@example.com
鈴木一郎suzuki@example.com

見出しを付けておくと、あとからフィルターや並べ替えをするときにも便利です。

👉整えたデータを絞り込みたい場合、フィルターが正しく効く状態にしておくことも大切です。
フィルターがうまく動かない場合は、こちらの記事も参考になります。

最後に#N/Aが出る場合は第3引数を指定する

WRAPROWS関数を使っていると、最後に「#N/A」が表示されることがあります。

たとえば、A列に次のようなデータがあるケースです。

A列
山田太郎
yamada@example.com
佐藤花子
sato@example.com
鈴木一郎

この場合、最後の「鈴木一郎」に対応するメールアドレスがありません。
そのため、次の数式だけだと不足分に「#N/A」が表示されることがあります。

=WRAPROWS(A2:A6,2)

このような場合は、第3引数に空白を指定します。

=WRAPROWS(A2:A6,2,"")

第3引数に "" を指定すると、足りない部分を空白で表示できます。

#N/Aを表示したくない場合は、基本的に第3引数まで指定しておくのがおすすめです。

👉#N/AエラーはWRAPROWS関数以外でもよく発生します。
VLOOKUP関数などで出る#N/Aエラーの原因も知っておくと、Excelのエラー対応がしやすくなります。

空白行を除外して2行ごとにまとめる方法

WebやPDFからコピーしたデータでは、途中に空白行が混ざることがあります。

たとえば、次のようなデータです。

A列
山田太郎
yamada@example.com
佐藤花子
sato@example.com
鈴木一郎
suzuki@example.com

この状態でそのままWRAPROWS関数を使うと、空白行も1つのデータとして扱われます。
その結果、名前とメールアドレスの組み合わせがズレることがあります。

空白行を除外してから2行ごとにまとめたい場合は、FILTER関数と組み合わせます。

=WRAPROWS(FILTER(A2:A100,A2:A100<>""),2,"")

この数式では、まずFILTER関数で空白以外のデータだけを取り出し、その結果をWRAPROWS関数で2件ごとに横へ並べています。

途中に空白行があるデータを扱う場合は、こちらの数式のほうが実務では使いやすいです。

👉FILTER関数について詳しく知りたいという方は、以下記事にて基本的な説明から活用方法までまとめておりますので、ぜひチェックしてみてください。

👉空白行や空白セルが原因でデータ整形がうまくいかない場合は、空白を除外する考え方を知っておくと便利です。
より詳しく知りたい方は、こちらの記事も参考にしてください。

3行で1件のデータを1行にまとめる方法

WRAPROWS関数は、2行ごとのデータだけでなく、3行で1件のデータにも使えます。

たとえば、次のようなデータです。

A列
山田太郎
東京都
090-xxxx-xxxx
佐藤花子
大阪府
080-xxxx-xxxx

このように、名前・住所・電話番号の3行で1件になっている場合は、第2引数を「3」にします。

=WRAPROWS(A2:A7,3,"")

すると、次のように1行にまとめられます。

名前住所電話番号
山田太郎東京都090-xxxx-xxxx
佐藤花子大阪府080-xxxx-xxxx

ポイントは、第2引数に「1行に並べたい項目数」を指定することです。
2行で1件なら「2」、3行で1件なら「3」、4行で1件なら「4」を指定します。

このように、WRAPROWS関数は「一定の件数ごとに横へ並べたい」ときに便利です。

横に並んだデータを2列ごとに折り返すこともできる

WRAPROWS関数は、縦に並んだデータだけでなく、横に並んだデータにも使えます。

たとえば、A1:F1に次のようなデータが横に並んでいるとします。

A列B列C列D列E列F列
山田太郎yamada@example.com佐藤花子sato@example.com鈴木一郎suzuki@example.com

このデータを2列ごとに折り返したい場合は、次の数式を使います。

=WRAPROWS(A1:F1,2,"")

結果は次のようになります。

名前メールアドレス
山田太郎yamada@example.com
佐藤花子sato@example.com
鈴木一郎suzuki@example.com

横方向に長く並んだデータを、見やすい表に直したいときにも便利です。

👉縦に並んだデータを横並びにする方法は、目的によって使う関数が変わります。
COUNTIFやFILTER関数を使った整理方法も知りたい場合は、こちらの記事も参考になります。

WRAPROWS関数が使えない古いExcelではINDEX関数で代用する

WRAPROWS関数は、Microsoft 365版ExcelやExcel 2024以降で使える関数です。
Excel 2021以前など、古いExcelでは使えない場合があります。

WRAPROWS関数が使えない場合は、INDEX関数で代用できます。

例えば、A列に次のようなデータがあるとします。

A列
山田太郎
yamada@example.com
佐藤花子
sato@example.com
鈴木一郎
suzuki@example.com

このデータを、B列に名前、C列にメールアドレスとして表示します。

B2には次の数式を入力します。

=INDEX($A$2:$A$7,ROW(A1)*2-1)

C2には次の数式を入力します。

=INDEX($A$2:$A$7,ROW(A1)*2)

あとは、B2:C2を下方向へコピーします。

すると、次のように表示することができます。

B列C列
山田太郎yamada@example.com
佐藤花子sato@example.com
鈴木一郎suzuki@example.com

B列では、指定した範囲の1行目、3行目、5行目……を取り出します。
C列では、指定した範囲の2行目、4行目、6行目……を取り出します。

つまり、2行で1件になっているデータを、奇数番目と偶数番目に分けて横並びにしているイメージです。

なお、ROW(A1) はコピーしたときに 1、2、3……と増やすためのカウンターとして使っています。A1の値を参照しているわけではありません。

WRAPROWS関数とINDEX関数はどちらを使うべき?

WRAPROWS関数とINDEX関数のどちらを使うべきかは、Excelのバージョンや用途によって変わります。

方法おすすめの人メリット注意点
WRAPROWS関数Microsoft 365、Excel 2024以降を使っている人数式が短くて簡単古いExcelでは使えない場合がある
INDEX関数Excel 2021以前など古いExcelを使っている人古いExcelでも使いやすい列ごとに数式を作る必要がある

単発でデータを整えるだけなら、WRAPROWS関数が一番簡単です。

ただし、会社のExcelが古い場合や、他の人にファイルを渡す場合は、INDEX関数で作ったほうが安全なケースもあります。

WRAPROWS関数のように、ExcelにはMicrosoft 365や新しいバージョンで使える便利な関数が増えています。

古いExcelでもINDEX関数で代用できますが、今後も新しい関数を使って作業を効率化したい場合は、Microsoft 365版Excelを検討してみてもよいでしょう。

【PR】
👉Microsoft 365をAmazonでチェックしてみる
👉Microsoft 365を楽天でチェックしてみる

うまく表示されないときの確認ポイント

WRAPROWS関数やINDEX関数でうまく表示されない場合は、次の点を確認しましょう。

Excelのバージョンが古い

WRAPROWS関数が使えない場合、Excelのバージョンが古い可能性があります。

Excel 2021以前などで使えない場合は、INDEX関数で代用しましょう。

最後に#N/Aが表示される

データ数が指定した個数で割り切れていない可能性があります。

第3引数に空白を指定すると、#N/Aを空白にできます。

=WRAPROWS(A2:A100,2,"")

途中で組み合わせがズレる

2行ごとのデータを変換したときに、途中から名前とメールアドレスの組み合わせがズレることがあります。

この場合、関数の問題ではなく、元データに原因があることが多いです。

よくある原因は次のとおりです。

・途中に空白行がある
・本来2行で1件なのに、1行だけ抜けている
・途中から3行で1件のデータが混ざっている
・見出し行まで範囲に含めている

特に、途中で1行だけ抜けている場合は、それ以降のデータがすべてズレます。

まずは元データが本当に2行で1件の並びになっているか確認しましょう。

数式の結果が広がらない

WRAPROWS関数の結果は、入力したセルから自動で広がって表示されます。

しかし、結果を表示する範囲にすでに文字や数式が入っていると、うまく展開されません。

この場合は、表示先のセルを空白にしてから、もう一度数式を入力しましょう。

👉WRAPROWS関数の結果が広がらない場合は、スピル範囲にデータが残っている可能性があります。#SPILL!エラーの詳しい原因と直し方は、こちらの記事で解説しています。

変換後のデータを値として固定する方法

WRAPROWS関数やINDEX関数で表示したデータは、基本的には数式の結果です。
そのため、元データを削除すると、変換後の結果も変わったり消えたりします。

変換後のデータを通常の表として使いたい場合は、値として貼り付けて固定しましょう。

手順は次のとおりです。

  1. 変換後の範囲を選択する
  2. Ctrl + Cでコピーする
  3. 貼り付け先を選択する
  4. 右クリックして「値の貼り付け」を選択する

これで、数式ではなく通常のデータとして固定できます。

データを他の人に渡す場合や、元データを削除したい場合は、値として貼り付けておくと安心です。

2行ごとのデータを1セルにまとめたい場合は別の方法を使う

この記事では、2行ごとのデータをA列・B列のように複数列へ分ける方法を解説しています。

一方で、複数行のデータを1つのセルにまとめたい場合は、TEXTJOIN関数などを使います。

たとえば、複数行の名前を1つのセルにまとめたい場合です。

A列
山田太郎
佐藤花子
鈴木一郎

これを、次のように1セルにまとめたい場合は、WRAPROWS関数ではなくTEXTJOIN関数が便利です。

結果
山田太郎、佐藤花子、鈴木一郎

👉複数行のデータを1セルにまとめたい場合は、WRAPROWS関数ではなくTEXTJOIN関数を使うと便利です。
改行区切りやカンマ区切りでまとめる方法は、こちらの記事で解説しています。

文字列を分割したい場合はTEXTSPLIT関数も便利

2行ごとのデータではなく、1つのセル内の文字を分けたい場合は、TEXTSPLIT関数が便利です。

たとえば、次のような氏名データです。

A列
山田 太郎

このように1つのセルに入っている文字列を、姓と名に分けたい場合は、TEXTSPLIT関数を使います。

山田太郎

WRAPROWS関数は、縦や横に並んだデータを指定数ごとに折り返す関数です。

一方、TEXTSPLIT関数は、1つのセル内の文字列を区切り文字で分割する関数です。

やりたいことに応じて使い分けましょう。

👉1つのセルに入った文字列を分けたい場合は、TEXTSPLIT関数が便利です。
氏名を姓・名に分ける方法は、こちらの記事で詳しく解説しています。

よくある質問

WRAPROWS関数が使えないのはなぜですか?

Excelのバージョンが古い可能性があります。
WRAPROWS関数は、Microsoft 365版ExcelやExcel 2024以降で使える関数です。
Excel 2021以前などで使えない場合は、INDEX関数で代用しましょう。

2行ごとではなく3行ごとにまとめることはできますか?

できます。WRAPROWS関数の第2引数を「3」に変更します。

例)

=WRAPROWS(A2:A100,3,"")

名前・住所・電話番号のように、3行で1件になっているデータを1行にまとめるときに便利です。

空白行を除外して変換できますか?

できます。
FILTER関数と組み合わせると、空白行を除外してから2行ごとにまとめられます。

例)

=WRAPROWS(FILTER(A2:A100,A2:A100<>""),2,"")

WebやPDFからコピーしたデータのように、途中に空白行が混ざる場合に便利です。

古いExcelではどうすればいいですか?

INDEX関数で代用できます。
A列のデータを2行ごとにB列・C列へ分ける場合は、B2とC2に次の数式を入力します。

例)
B2:

=INDEX($A$2:$A$7,ROW(A1)*2-1)

C2:

=INDEX($A$2:$A$7,ROW(A1)*2)

あとは下方向へコピーすれば、2行ごとのデータを1行にまとめられます。

まとめ

Excelで2行ごとのデータを1行にまとめたい場合は、WRAPROWS関数を使うと簡単です。

=WRAPROWS(A2:A100,2,"")

3行で1件のデータなら、第2引数を「3」に変更します。

=WRAPROWS(A2:A100,3,"")

途中に空白行がある場合は、FILTER関数と組み合わせると便利です。

=WRAPROWS(FILTER(A2:A100,A2:A100<>""),2,"")

WRAPROWS関数が使えない古いExcelでは、INDEX関数で代用できます。

2行で1件になっているデータは、そのままだと扱いづらいため、表形式に整えてからフィルターや集計に使いましょう。

ろじゃー

仕事・子育てに奮闘中の社会人です。
仕事でも日常生活でも、ちょっとでも便利になることが紹介できるブログを書いています!
 
仕事柄、PC操作やエクセル、VBAなどは得意です!
Excel歴は10年以上の事務職。
関数やVBAを活用して、資料作成やデータ分析をはじめとした様々な業務の効率化・自動化に取り組んできました。
 
このブログでは、実際の業務で使える効率化テクニックを発信しています。
「わからない」や「困った」など問題を抱える方や、もっと効率化したいと思っている方に、少しでも役立てれば幸いです!

ご質問・ご相談など、お気軽にご連絡ください。

🥷 「現代で暮らすゆる忍者」ラインスタンプシリーズ公開中!日常や仕事、夫婦の会話など様々なシーンを製作しています
▶ LINEスタンプ一覧はこちら

ろじゃーをフォローする
ご質問・ご相談はこちらへ!
 ろじゃー|日々、ちょっとずつ良くなることを目指すブロガー
Excel歴10年以上。VBAや関数、業務効率化などを発信中。
📩 お問い合わせはこちら
Excel
シェアする
ろじゃーをフォローする

コメント

タイトルとURLをコピーしました