ExcelのTRANSPOSE関数の使い方|行と列を入れ替える方法

スポンサーリンク

Excelで表を作っていて、「あ、これ縦と横が逆だった…」と気づいた経験はありませんか。コピペで行列を入れ替えることもできますが、元データが変わるたびに貼り直すのは面倒ですよね。

そんなときに使えるのがTRANSPOSE関数です。数式ひとつで行と列を入れ替えられて、元データとの連動もバッチリ。この記事では、基本の使い方から応用テクニックまでわかりやすく解説します。

TRANSPOSE関数とは?行と列をワンステップで入れ替える関数

TRANSPOSE(トランスポーズ)関数は、指定した範囲の行と列を入れ替えた配列を返す関数です。「transpose」は英語で「転置する・入れ替える」という意味。元の表の1行目が新しい表の1列目に、2行目が2列目に…という形で変換されます。

たとえば、3行×5列の表をTRANSPOSE関数にかけると、5行×3列の表に変わります。数式で処理するので、元データを変更すれば結果も自動で更新されるのがポイントです。

基本構文と引数

=TRANSPOSE(配列)

引数はたった1つだけです。

引数必須/任意説明
配列必須行と列を入れ替えたいセル範囲または配列

シンプルな構文なので、覚えやすいですよね。

コピペの「行列を入れ替える」との違い・使い分け

Excelには、コピー → 形式を選択して貼り付け →「行列を入れ替える」という機能もあります。どちらを使うべきか、違いを整理しておきましょう。

比較項目TRANSPOSE関数コピペの行列入れ替え
元データとの連動あり(自動更新)なし(静的コピー)
書式のコピーなしあり
入力方法数式を入力マウス操作で完結
向いている場面元データが頻繁に変わる一度きりの変換でOK

使い分けの目安はシンプルです。元データと連動させたいならTRANSPOSE関数、書式ごとコピーしたいならコピペ。目的に合わせて選んでみてください。

TRANSPOSE関数の基本的な使い方

ここからは、実際の入力手順を見ていきましょう。お使いのExcelバージョンによって操作が異なるので、それぞれ解説します。

Excel 365/2021(スピル)での入力手順

Microsoft 365やExcel 2021では、スピル機能が使えます。スピルとは、数式の結果が複数セルに自動展開される機能のことです。

手順はとてもかんたんです。

  1. 結果を表示したいセルを1つだけ選択する
  2. =TRANSPOSE(A1:E3) のように数式を入力する
  3. Enterキーで確定する

これだけで、転置された表が自動的に展開されます。出力先のセルを事前に選択する必要はありません。

旧バージョン(Excel 2019以前)でのCtrl+Shift+Enter入力

Excel 2019以前ではスピルが使えません。代わりにCSE(配列数式)として入力します。

  1. 転置後のサイズに合わせて出力先のセル範囲を選択する(元が3行×5列なら、5行×3列を選択)
  2. =TRANSPOSE(A1:E3) と数式を入力する
  3. Ctrl + Shift + Enter で確定する

正しく入力できると、数式バーに {=TRANSPOSE(A1:E3)} と中括弧が表示されます。この中括弧は自動で付くもので、手入力はしないでくださいね。

入力例:縦の売上表を横に変換する

実際のデータで試してみましょう。次のような縦方向の売上表があるとします。

 AB
1売上
24月120
35月150
46月180

この表を横方向に変換するには、空いているセル(たとえばD1)に次の数式を入力します。

=TRANSPOSE(A1:B4)

結果はこうなります。

 DEFG
14月5月6月
2売上120150180

4行×2列の表が、2行×4列に変換されました。元のB2セルの値を「200」に変えると、転置先も自動で「200」に更新されますよ。

よくあるエラーと対処法

TRANSPOSE関数でつまずきやすいエラーと、その解決策をまとめました。

#VALUE!エラーが出るときの原因と解決策

#VALUE!エラーは、主にCSE入力時に発生します。原因と対処法は次のとおりです。

  • 配列ではなく単一の値を指定している → セル範囲を正しく指定し直す
  • Ctrl+Shift+Enterで確定していない → 数式バーにカーソルを置き、Ctrl+Shift+Enterで再確定する

Microsoft 365やExcel 2021をお使いなら、通常のEnter確定で問題ありません。

また、スピル対応バージョンでは#SPILL!エラーが出ることもあります。これは、展開先のセルにデータや結合セルがある場合に発生します。展開先のセルを空にすれば解決できます。

参照範囲がずれるときのチェックポイント

思った結果にならないときは、以下をチェックしてみてください。

  • 転置後のサイズが合っていない(CSEの場合):元が4行×2列なら、出力先は2行×4列を選択する
  • 出力範囲が大きすぎる(CSEの場合):余ったセルに#N/Aが表示される。出力範囲を転置後のサイズぴったりに合わせる
  • #REF!エラーが表示される:参照元の範囲がシート外になっていないか確認する

FILTER・SORT・SEQUENCEと組み合わせた応用テクニック

TRANSPOSE関数は単体でも便利ですが、他の関数と組み合わせると活用の幅がぐっと広がります。ここからはMicrosoft 365 / Excel 2021向けの応用例を紹介します。

FILTER+TRANSPOSEで条件抽出した結果を横並びに表示

FILTER関数で抽出した結果は、通常は縦方向に並びます。これをTRANSPOSEで横方向に展開できます。

たとえば、A2:A10に商品名、B2:B10にカテゴリが入っているとします。カテゴリが「食品」の商品名だけを横並びにするには、こう書きます。

=TRANSPOSE(FILTER(A2:A10, B2:B10="食品"))

FILTER関数が縦に抽出した結果を、TRANSPOSEが横方向に変換する流れです。ダッシュボードなどで横並びに表示したいときに重宝します。

SORT+TRANSPOSEで並べ替えた結果を縦横変換

SORT関数で並べ替えた結果を、そのまま横展開することもできます。

=TRANSPOSE(SORT(A2:A10))

SORT関数が昇順に並べ替えた結果を、TRANSPOSEで横一行に展開します。ランキング表を横型レイアウトで見せたいときに便利ですよ。

SEQUENCE+TRANSPOSEで連番を行方向に展開

SEQUENCE関数は通常、縦方向に連番を生成します。これを横方向にしたいときにTRANSPOSEが使えます。

=TRANSPOSE(SEQUENCE(5))

SEQUENCE(5)が生成する縦方向の1〜5を、TRANSPOSEで横方向に変換します。結果は1行×5列で「1, 2, 3, 4, 5」と横に並びます。

ちなみに、SEQUENCE関数は=SEQUENCE(1,5)のように行数と列数を指定すれば、TRANSPOSE無しでも横展開が可能です。状況に応じて使い分けてみてください。

VSTACK・HSTACKとの組み合わせ

VSTACK関数HSTACK関数と組み合わせれば、複数の表を結合してから転置する処理も一発でできます。

HSTACKで横に結合した表をTRANSPOSEで縦に変換

たとえば、部署ごとの売上がA列とC列に分かれているとします。これを横に結合してから縦に転置するには、次のように書きます。

=TRANSPOSE(HSTACK(A1:A4, C1:C4))

HSTACK関数がA1:A4とC1:C4を横方向に結合して、TRANSPOSEがその結果を縦横入れ替えます。バラバラに配置されたデータを、見やすいレイアウトに整えるときに活躍する組み合わせです。

逆のパターンも可能です。VSTACK関数で縦に結合した結果をTRANSPOSEで横展開すれば、複数リストを横一行にまとめられます。

=TRANSPOSE(VSTACK(A1:A3, A5:A7))

まとめ:TRANSPOSE関数を使いこなすポイント

この記事では、TRANSPOSE関数の基本から応用まで解説しました。最後にポイントを整理しておきましょう。

  • 構文はシンプル=TRANSPOSE(配列) の引数1つだけ
  • バージョンで入力方法が異なる:365/2021はEnter確定、2019以前はCtrl+Shift+Enter
  • コピペとの使い分け:元データと連動させたいならTRANSPOSE、一度きりならコピペ
  • 他の関数との組み合わせが強力:FILTER関数SORT関数SEQUENCE関数との併用で活用の幅が広がる

行と列の入れ替えは、表の見せ方を変えるだけでデータの印象がガラリと変わります。ぜひTRANSPOSE関数を使いこなして、見やすいレイアウトを効率よく作ってみてください。

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