ExcelのTOROW関数で列データを横一列に並べ替える方法
この記事でわかること
縦に並んだデータを、横方向に並べ替えるときの考え方がわかります。
単に数式を真似するだけでなく、「なぜその形になるのか」「どこでズレが起きやすいのか」という視点を持てるように整理します。
TOROW(トゥーロウ)関数の基本的な使い方と、結果が想定と違うときに確認すべきポイントや直し方を押さえます。
Before/Afterで完成形を確認
完成形は「1行に横一列へ並べる」か、「1行1レコードの表にする」かでゴールが分かれます。
目的を最初に決めておかないと、途中で列数や並び順に迷いやすくなります。
例えばA1:A12に縦リストがあるとき、TOROWを使えばデータを途切れさせずに横一列へ変換できます。
その横一列の配列を、WRAPROWSで4列ずつに折り返すと、3行×4列の表になります。
このように、一次元の配列を経由することで、最終的な表の形をコントロールしやすくなります。
TOROWでできること/できないこと
TOROWは、範囲(配列)を1行に並べ直すための関数です。
縦方向や横方向に散らばったデータを、一定の順序で一直線に整える役割を担います。
行や列の「形」を変えるのは得意ですが、項目の意味を判断したり、自動で列名や見出しを作ったりすることはしません。
そのため、「どこまでが1レコードか」「何項目で1セットなのか」は、人が事前に決める必要があります。
この前提を押さえておくと、WRAPROWSと組み合わせたときにも、表が崩れにくくなります。
前提:必要なExcel環境と配列数式
TOROWやWRAPROWSは新しい関数のため、環境によっては使えない場合があります。
数式がセルから自動的に広がるスピル(配列)動作が前提になるので、出力先の右側や下側が空いている必要があります。
使えない場合の代替は後半でまとめます。
変換前データの整理
整形は関数の前に、元データの癖を把握すると失敗が減ります。
特に実務データでは、見た目以上に構造が複雑なことが多く、そのまま関数を当てると想定外の結果になりがちです。
空白やエラー、見出し行の有無を事前に意識するだけでも、後工程での修正回数を大きく減らせます。
特に空白やエラー、見出し行が混ざると、折り返しの列数がズレやすいです。
どの行がデータで、どの行が説明や区切りなのかを先に整理しておくと、式の意味も理解しやすくなります。
単純な縦リスト
最も単純なのは、1列に値だけが並んでいるパターンです。
余計な空白や文字がなく、同じ種類のデータだけが連続している状態を指します。
例として、A1:A6に商品名が縦に並んでいる状態を想像します。
このようなデータは、TOROWとの相性がよく、特別な設定をしなくても意図した結果を得やすいです。
この場合は、TOROWでそのまま横一列にできます。
まずはこの基本形で動作を確認すると、後の応用が理解しやすくなります。
空白・エラー・見出し行が混ざるケース
現場データは途中に空白行が入ったり、計算エラーが混ざったりします。
さらに、途中に小見出しや区切り行が入っていることも珍しくありません。
空白を残したまま横にすると、見た目の列位置がずれて「表」にしにくくなります。
その結果、WRAPROWSで折り返したときに、1行ごとの項目数が揃わなくなります。
まずは空白を無視したいのか、空白もデータとして残したいのかを決めます。
用途が「表の整形」であれば、空白は無視して詰めた方が扱いやすいことが多いです。
エラーが混ざる場合は、IFERRORなどで置換してから並べると安定します。
エラーを放置したままだと、スピル結果全体がエラーになる点に注意します。
1レコードが複数行にまたがるケース
1人分の情報が「氏名」「住所」「電話」のように3行で1セットになっていることがあります。
このようなデータは、一見すると縦リストですが、実際には「複数行=1レコード」という構造を持っています。
このパターンは、TOROWで一次元にしてから、WRAPROWSで3列ずつ折り返すと1行1レコードにできます。
列数をレコードの項目数と一致させることで、意図した形の表に整います。
ただし、途中で欠けがあると折り返しが崩れるので、欠損の扱いを先に決めます。
欠けを埋めるのか、該当レコードを除外するのかを決めておくと、後戻りが減ります。
TOROW(トゥーロウ)関数の基本
TOROWは「範囲→1行」の変換を、短い式で実現できます。
縦方向や横方向に並んだデータを、いったん一直線の配列として扱える点が大きな特徴です。
まずは最小例で動きを確認してから、並び順や空白の扱いを調整します。
基本の動きを理解しておくと、後からWRAPROWSなど他の関数と組み合わせるときにも迷いにくくなります。
基本構文と最小例
TOROWの基本形は、次のように範囲を指定します。
=TOROW(A1:A10)
この式は、A1:A10の縦リストを1行に並べて返します。
数式自体はシンプルですが、結果は配列として返され、セルの右方向に自動的に広がります。
そのため、結果が横に広がる分だけ、式を入れるセルの右側に十分な空きが必要です。
空きが足りないと、スピルエラーになって正しく表示されません。
並び順がズレる理由と直し方
縦リストだけを指定している場合は、順番がズレることはあまりありません。
一方で、複数列の範囲を指定すると、どの順序で値を読み取るかが意識ポイントになります。
例えばA1:C3のような範囲を渡すと、列ごとに読むのか、行ごとに読むのかで並びが変わります。
想定と違う並びになったら、走査順(scan_by_column)を切り替えて確認します。
実際に切り替えた結果を見比べると、TOROWがどの順序で値を拾っているのかが理解しやすくなります。
また、元データ側で「行方向に並べたいのか」「列方向に並べたいのか」を先に言語化すると迷いにくいです。
空白やエラーを混ぜたまま整えるコツ
空白が多いときは、空白を無視して詰めるか、空白を残して位置を維持するかで結果が変わります。
どちらが正解かは目的次第ですが、表に整形する前提なら、まず空白を無視して詰めた方が折り返しが安定しやすいです。
エラーが混じると、スピル結果全体もエラーになりやすい点に注意が必要です。
そのため、前処理としてエラーを文字や空白に置き換えてからTOROWに渡すと扱いやすくなります。
例として、エラーを空欄にしてから並べるなら次の形にします。
=TOROW(IFERROR(A1:A10,””))
このようにしておくと、途中にエラーがあっても処理が止まらず、配列として最後まで展開されます。
このとき、空欄を無視する設定と組み合わせると、より安定します。
TOROW関数の引数(迷う所だけ)をやさしく理解
TOROWは引数が増えると難しそうに見えますが、実際によく迷うのは「空白」と「走査順」です。
引数の意味を一つずつ整理すると、結果が崩れる原因を切り分けやすくなります。
すべての引数を覚えようとするより、「どこで結果が変わるか」を意識する方が実務では重要です。
ここでは、実際に触る頻度が高いポイントだけに絞って整理します。
引数1:配列(参照範囲)の指定
配列には、縦1列だけでなく、複数列や複数行の範囲も指定できます。
そのため、元データの形に合わせて柔軟に参照できるのが利点です。
ただし範囲が大きいほど出力も長くなり、出力先の空きが足りないと途中で止まります。
特に列数が多い場合は、思った以上に右方向へスピルする点に注意が必要です。
可変範囲にしたい場合は、テーブル化して列全体を参照するか、FILTERで必要行だけを抜き出します。
まずは「確定した範囲」で動作確認してから、可変にする方が安全です。
引数2:空白の扱い(よく使う場面)
空白を無視するかどうかは、表に整形したい場面で結果に大きく影響します。
空白が混ざると列数カウントがズレやすいため、基本は空白無視で詰めるのが無難です。
特に1行1レコードの表を作る場合、空白1つで次の行にズレることがあります。
一方で、元データの位置そのものに意味がある場合は、空白を残して並べる方がよいケースもあります。
例えば、区切り行や意図的な間隔として空白を使っている場合です。
空白をどう扱うかを決めたら、WRAPROWSの列数とセットで見直します。
引数3:走査順(迷いやすい場面)
走査順は、複数行×複数列の範囲を渡すときに効いてきます。
「列ごとに上から下へ読んで並べる」のか、「行ごとに左から右へ読んで並べる」のかを切り替えます。
どちらが正しいかは、最終的に作りたい並び順によって決まります。
想定の順序と違う場合は、走査順を切り替えた結果を並べて見比べると理解が早いです。
出力の先頭が「元のどのセル由来か」を追うと、次回からの判断がしやすくなります。
WRAPROWS(ラップローズ)で指定列数ごとに折り返す
WRAPROWSは、1行に並んだ配列を、指定した列数ごとに折り返して2次元にします。
一次元の配列を、そのまま扱いやすい「表の形」に戻せる点が、この関数の大きな特徴です。
TOROWで一次元にした結果を、最終的な表として仕上げる役割を担います。
TOROWとWRAPROWSは対になる関数として考えると、処理全体の流れが理解しやすくなります。
基本構文と最小例
横一列に並んだ配列がある場合、WRAPROWSで列数を指定して折り返します。
例えば、B1に横一列の配列ができているなら、次のように指定します。
=WRAPROWS(B1#,4)
この式では、横に並んだ値を4列ごとに区切って下の行へ送ります。
1行目が4項目、2行目が次の4項目という形で、自動的に表が作られます。
「#」はスピル範囲全体を参照する記号で、元の配列サイズに追従します。
元データが増減しても参照を直さずに済むため、更新のあるデータで便利です。
列数の決め方(1レコードの項目数)
列数は「1レコードが何項目か」で決めます。
これは、表設計そのものに関わる重要なポイントです。
名簿が「氏名・部署・内線」の3項目なら3列、住所録が「氏名・郵便番号・住所・電話」なら4列です。
列数が合っていれば、折り返したときに1行が1レコードになります。
項目名を書き出して数えると、列数の判断で迷いにくくなります。
列数が合っていないと、次の行にズレて入ってしまうため、まず項目数を確定させます。
余り・不足が出るときの考え方
元データの件数が列数で割り切れないと、最後の行が途中までで終わります。
この状態がエラーなのか、仕様として許容できるのかを判断します。
空欄をそのまま残すのか、欠けている項目を補うのかで、後工程の扱いが変わります。
不足が多い場合は、欠損データを見つけて補う方が根本的な解決になります。
特に集計や分析に使う表では、欠損を放置しない方が安全です。
TOROW×WRAPROWSで列データを表に整形する手順
ここからは、縦データを「1行1レコードの表」に整える一本道の流れをまとめます。
個々の関数を点で理解するのではなく、作業全体を一本の流れとして捉えるのがポイントです。
ポイントは、一次元化と折り返しを分けて考えることです。
最初に形を単純化し、その後で表の形に戻すことで、途中のズレやミスに気づきやすくなります。
手順:TOROWで一次元化→WRAPROWSで表化
最初に、元範囲をTOROWで横一列に並べます。
この段階では、並び順が想定どおりか、余計な空白やエラーが含まれていないかを重点的に確認します。
次に、その結果(スピル範囲)をWRAPROWSに渡して列数で折り返します。
ここで指定する列数が「1レコードの項目数」と一致しているかが、成否を分けるポイントになります。
例として、A1:A12が縦リストで、1レコードが4項目なら次の形になります。
=WRAPROWS(TOROW(A1:A12),4)
この式では、TOROWで一次元にした配列を、そのままWRAPROWSに渡しています。
式が長く感じる場合は、途中結果を別セルに出して確認してから合体すると安心です。
途中結果を目で確認できると、どこでズレが生じているかを判断しやすくなります。
ズレたときの最短チェック
ズレの原因は、だいたい「列数が違う」か「空白が混ざっている」のどちらかです。
まず、TOROWの結果が想定件数になっているかを確認します。
件数が合っていない場合は、参照範囲が広すぎないか、空白行が含まれていないかを見直します。
次に、1レコードの項目数(列数)を見直して、折り返しが合うかを確認します。
列数を変えながら試すより、元データの項目構成を先に整理した方が近道です。
空白が原因なら、空白を無視して詰める設定や、前処理で空白行を除外します。
仕上げ:見出し行と体裁の整え方
整形した表の上に、列見出しを別行で用意すると実務で使いやすくなります。
見出しがあることで、各列の意味が明確になり、後から見返したときにも理解しやすくなります。
また、出力表をテーブル化すると、フィルターや集計がしやすくなります。
テーブル化しておけば、行数が増減しても数式や参照範囲を意識せずに済みます。
元データが更新されるなら、参照範囲も更新に追従できるように設計します。
更新を前提にした設計にしておくことで、日常的なメンテナンスの手間を大きく減らせます。
新関数が使えない環境での整形(代替手段)
環境によってTOROWやWRAPROWSが使えない場合は、目的を分解して代替手段を考えます。
無理に同じ手順を再現しようとせず、「最終的に何を作りたいのか」を先に明確にするのがポイントです。
「横に並べるだけ」なのか、「1行1レコードの表が必要なのか」で、選ぶ方法は大きく変わります。
また、更新頻度や作業回数によっても、最適なやり方は異なります。
旧来の方法でできる範囲
縦リストを横にするだけであれば、貼り付けの形式を使った転置で対応できることがあります。
一度きりの資料作成や、今後更新しないデータであれば、この方法でも十分な場合があります。
ただし転置は自動更新されないため、元データが変わると貼り直しが必要になります。
更新のたびに手作業が発生すると、貼り付けミスや範囲指定ミスが起きやすくなります。
数式で無理に再現することも可能ですが、可読性やメンテナンス性が下がりやすい点には注意が必要です。
Power Queryで1行1レコードに整える流れ
繰り返し同じ整形を行うなら、Power Queryを使う方法が有力です。
一度変換手順を作っておけば、元データを差し替えるだけで同じ処理を再実行できます。
基本的な流れは、「データを取り込む → 不要行を除く → 列に分割またはピボット解除 → テーブルとして読み込む」です。
処理の手順が画面上に残るため、後から見返したり、他の人と共有しやすいのも利点です。
関数が使えない環境でも、再現性の高い整形が必要な場合は、十分に検討する価値があります。
よくある質問(FAQ)
つまずきやすいポイントを、確認の順番がわかる形でまとめます。
最初に「スピルできる状態か」を確認し、その次に「参照範囲が想定どおりか」を確認すると切り分けが速いです。
困ったら、式そのものより先に「出力先の空き」と「参照範囲」を確認すると解決が早いです。
同じ式でも、貼り付け場所や参照の取り方が変わるだけで結果が変わることがあります。
焦って式をいじる前に、条件を一つずつ潰す方が最短で直せます。
TOROWの結果がスピルしない/途中で止まる
出力先の右側や下側にデータがあると、スピルできずに止まります。
まずは出力先周辺を空けてから、式を入れ直します。
空きがない場合は、別の場所に一度結果を出してから移動するのも有効です。
また、参照範囲が想定より大きくなっていないかも確認します。
列全体参照や可変参照を使っていると、空白行まで含めて横へ広がることがあります。
空白が多くて列がずれる
空白が混ざると、折り返しの列数が合っていても行がズレて見えます。
特にWRAPROWSで表にしたときは、空白1つが次の項目としてカウントされ、レコード境界が崩れやすいです。
空白を無視して詰める方針にするか、空白を埋めるルールを決めて前処理します。
どちらにしても、まずTOROWの出力が連続したデータになっているかを見ます。
連続していない場合は、空白の除外やエラー置換を先に済ませてから折り返しを試します。
折り返し列数が分からない
1レコードの項目名を紙に書き出して、項目数を先に確定します。
データの意味が曖昧なままだと、列数を変えても正解が判断できず、迷いが長引きます。
次に、少ない件数で試して、折り返しが1行1レコードになっているかを確認します。
テスト用に2〜3レコードだけで整形すると、どこでズレたかが見つけやすいです。
慣れてきたら、見出し行を固定しておくと、列数の迷いが減ります。
見出しがあれば、列の意味が目で追えるため、ズレの原因を特定しやすくなります。
エラーが混ざって結果が崩れる
参照範囲の中にエラーがあると、配列の展開自体が止まることがあります。
まずはIFERRORで空欄や文字に置換し、エラーが式の評価を止めない状態にします。
そのうえで、空欄をどう扱うかを決めてからWRAPROWSへ渡すと表が安定します。
| 目的 | 使う関数 | 入力の形 | 出力の形 | つまずきやすい点 | 対処の方向 |
|---|---|---|---|---|---|
| 縦リストを横一列にしたい | TOROW | 1列または範囲 | 1行の配列 | 出力先が足りない | 出力先を空ける |
| 横一列を表にしたい | WRAPROWS | 1行の配列 | 2次元の表 | 列数が合わない | 項目数を確定 |
| 1行1レコードの表にしたい | TOROW+WRAPROWS | 縦リストや範囲 | 表 | 空白でズレる | 空白方針を決める |
| エラーを含むデータを整えたい | IFERROR+TOROW | 1列または範囲 | 1行の配列 | 途中で止まる | エラーを置換してから並べる |