「縦に並んだデータを横に並べ直したい」「横長の表を縦に変換してグラフに使いたい」という場面はExcel業務で頻繁に発生します。その解決策としてTRANSPOSE関数が用意されており、数式一本で行と列を入れ替えた動的な配列を返すことができます。
貼り付けオプションの「行/列の入れ替え」も同じ結果に見えますが、元データと連動するかどうかという本質的な違いがあります。本記事では、TRANSPOSE関数の基本構文・旧Excelでの配列数式入力と新Excelのスピル(動的配列)の違い・貼り付けオプションとの使い分け・実務シナリオ別パターン・エラー対処法・MOS Excel試験の出題ポイントを体系的に解説します。
TRANSPOSE関数の基本構文
TRANSPOSEの構文はシンプルです。
=TRANSPOSE(配列)
| 引数 | 説明 | 省略 |
|---|---|---|
| 配列 | 転置したいセル範囲または配列定数。行と列が入れ替わった結果を返す | 必須 |
基本例:A1:E1の横1行×5列のデータをA3:A7の縦5行×1列に転置するには、A3セルに次のように入力します(Microsoft 365 / Excel 2021以降の場合はEnterのみ)。
=TRANSPOSE(A1:E1)
結果として「スピル」によりA3:A7の5セルに自動展開されます。元のA1:E1を変更すると、転置先も即座に連動して更新されます。
旧Excelと新Excelでの入力方法の違い
TRANSPOSEは登場当初から存在する関数ですが、Excelのバージョンによって入力方法が大きく異なります。
| バージョン | 入力方法 | ポイント |
|---|---|---|
| Excel 2019以前 | 転置後のサイズ分のセルを先に選択してからTRANSPOSEを入力し、Ctrl+Shift+Enterで確定する | 配列数式になり{}で囲まれる。個別セルの編集・削除は不可 |
| Microsoft 365 / Excel 2021以降 | 転置後の左上セルだけを選択してTRANSPOSEを入力し、Enterのみで確定する | スピルにより自動展開。スピル範囲にデータがあるとブロックされ#SPILLエラーになる |
旧Excelでの手順:元データがA1:C3(3行×3列)なら、転置後は3列×3行=横3列・縦3行になるため、まずE1:G3を選択してから=TRANSPOSE(A1:C3)を入力し、Ctrl+Shift+Enterで確定します。この手順を間違えると正しく動作しません。
Microsoft 365でのスピル入力:E1セルだけを選択し=TRANSPOSE(A1:C3)と入力してEnterを押すと、E1:G3に自動展開されます。旧Excelのような事前選択は不要です。
貼り付けオプション「行/列の入れ替え」との違い
「コピー→形式を選択して貼り付け→行/列の入れ替え」でも視覚的に同じ結果が得られますが、TRANSPOSE関数とは本質的な仕組みが異なります。
| 比較項目 | TRANSPOSE関数 | 貼り付けオプション(行/列の入れ替え) |
|---|---|---|
| 元データとの連動 | 連動する(元データを変更すると転置先も自動更新) | 連動しない(コピー時点の静的スナップショット) |
| 操作の手軽さ | 数式入力が必要 | コピー操作のみで完結(ショートカットで素早く実行できる) |
| 書式の引き継ぎ | 書式は引き継がない(値と数式のみ) | 書式ごと貼り付けられる(書式込みで転置) |
| 転置後の編集 | スピル範囲への直接入力はできない(参照元を変更する) | 貼り付け後のセルを自由に編集できる |
| 適した用途 | 元データが更新され続ける帳票・レポート・ダッシュボード | 一度だけ向きを変えたい表の整形・手動更新で足りる表 |
選択基準:元データが変わるたびに転置後の表も更新したい場合はTRANSPOSE関数が最適です。一度きりの整形、または貼り付け後に転置先を自由に編集したい場合は貼り付けオプションを使います。書式も一緒に持っていきたい場合も貼り付けオプションの方が便利です。
実務シナリオ別の活用パターン
シナリオ1:縦の名簿を横のヘッダー行に変換する
A1:A5に「氏名」「部署」「役職」「入社年月」「メール」の項目名が縦に並んでいる場合、それを横ヘッダー(C1:G1)として使いたいときに使用します。
=TRANSPOSE(A1:A5)
C1セルに入力してEnterを押すと、C1:G1に項目名が横に展開されます。A列の項目名を修正すると、C1:G1の見出しも自動で追従します。
シナリオ2:横並び月次データを縦の集計表に変換する
B1:M1に1月~12月、B2:M2に売上金額が横に並んでいるデータを、ピボットテーブルや関数処理で使いやすい縦型(月名・売上が縦に並ぶ形)に変換します。
' A列(縦)に月名を表示
=TRANSPOSE(B1:M1)
' B列(縦)に売上金額を表示
=TRANSPOSE(B2:M2)
それぞれ縦に12行展開されます。縦型になったことでSUMIF・AVERAGEIF・フィルタなどの関数が適用しやすくなります。
シナリオ3:FILTER関数と組み合わせた動的転置
FILTER関数で条件抽出した結果をそのままTRANSPOSEで転置するとダッシュボードで重宝します。例として、営業部だけのデータを縦から横に並べて表示する場合です。
=TRANSPOSE(FILTER(A2:D20, B2:B20="営業部"))
「営業部」に一致する行だけが抽出され、さらに行列が転置された状態で展開されます。元データが変わればFILTERの絞り込み結果も変わり、転置結果も自動更新されます。
シナリオ4:グラフ用データの向きを変換する
Excelのグラフは「行系列」と「列系列」の違いで凡例とデータの向きが変わります。元データの向きを変えずにグラフ側の設定だけで切り替えることもできますが、別シートにTRANSPOSEで転置したデータを用意しておくと、グラフ作成・他ツールへのデータ貼り付け・印刷用帳票のレイアウト調整が容易になります。
=TRANSPOSE(Sheet1!A1:F6)
Sheet1のA1:F6(6行×6列)を別シートに転置すると、6列×6行(転置後)として展開されます。Sheet1の元データを修正するだけでグラフ用シートも即時更新されます。
よくあるエラーと原因・対処法
| エラー | 主な原因 | 対処法 |
|---|---|---|
| #SPILL! | スピル先のセルに既存データがある(Microsoft 365/2021) | 転置先の範囲内にあるデータを削除してから再入力する |
| #VALUE! | 引数に不正な値(エラー値など)が含まれている | 元データのエラーをIFERRORで処理してからTRANSPOSEに渡す |
| #REF! | 転置先の配置が既存のセル範囲外にはみ出している | 転置後のサイズを計算し、余裕のある位置に数式を移動する |
| 正しく展開されない(旧Excel) | Ctrl+Shift+Enterで確定していない、または事前の選択サイズが転置後のサイズと一致していない | 正しいサイズのセル範囲を選択しなおしてCtrl+Shift+Enterで再入力する |
| 部分的に変更できない | スピル範囲(または旧来の配列数式)のため個別セルを編集しようとしている | スピル範囲の左上セルを選択して数式全体を修正する。個別変更が必要な場合は貼り付けオプションで静的コピーを使う |
スピルサイズの確認方法:TRANSPOSE後の行数はROWS(元範囲)で求まり、列数はCOLUMNS(元範囲)で求まります。転置後は行と列が入れ替わるため、元が3行×5列なら転置後は5行×3列です。これを念頭に置いてスピル先のスペースを確保します。
ROWS・COLUMNS関数でサイズを動的確認する
転置前に元データのサイズを把握しておくと、スピル先が足りるかどうかの確認に役立ちます。
' 元データの行数を確認
=ROWS(A1:C5) → 5
' 元データの列数を確認
=COLUMNS(A1:C5) → 3
' 転置後: 行数=3、列数=5 のスペースが必要
TRANSPOSE後の結果サイズが分かれば、どこに転置先を置けばスペースが足りるか事前に判断できます。特にデータ量が変動するレポートでは、この事前確認が#SPILL!エラーの発生を防ぎます。
SORT・UNIQUE・SORTBYとの組み合わせ
Microsoft 365のスピル関数とTRANSPOSEを組み合わせると強力なデータ変換ができます。
| 組み合わせ | 数式例 | 効果 |
|---|---|---|
| SORT + TRANSPOSE | =TRANSPOSE(SORT(A1:A10)) | 昇順に並べてから横に展開する |
| UNIQUE + TRANSPOSE | =TRANSPOSE(UNIQUE(B1:B20)) | 重複を排除した値を横に展開する |
| FILTER + TRANSPOSE | =TRANSPOSE(FILTER(A1:D20, C1:C20>1000)) | 条件を満たす行を抽出してから行列転置する |
| SEQUENCE + TRANSPOSE | =TRANSPOSE(SEQUENCE(1,12,1)) | 1~12の連番を縦列に展開する |
活用例:部署名のリストから重複を排除して横ヘッダーとして展開するには=TRANSPOSE(UNIQUE(C2:C100))と入力するだけです。元の部署リストに変更・追加があっても転置ヘッダーが自動更新されるため、動的なダッシュボードのヘッダー作成に最適です。
MOS Excel試験でのTRANSPOSE出題ポイント
MOS Excel 365の試験では、データ操作・配列数式・スピルに関する問題でTRANSPOSEが出題される可能性があります。以下の点を確実に習得しておきましょう。
- スピル入力(Microsoft 365):左上のセルだけを選択してEnterで確定する操作を試験環境で迷わずできるようにする
- 旧来の配列数式入力:Ctrl+Shift+Enterで確定し{}で囲まれる動作を理解する(試験環境がExcel 2019以前の場合に必要)
- 貼り付けオプションとの区別:動的(TRANSPOSE関数)と静的(貼り付けオプション)の違いを説明できる
- #SPILL!エラーの解消:スピル先にデータがある場合にエラーが発生すると理解し、スペースを空けて解消できる
- 転置後のサイズ計算:元が5行×3列なら転置後は3行×5列という変換を素早く計算できる
MOS試験 TRANSPOSEチェックリスト
| 確認ポイント | 操作内容 | 難易度 |
|---|---|---|
| 基本入力(スピル) | 左上セルを選択してEnterで転置展開できる | ★☆☆ |
| 配列数式入力(旧版) | 転置後サイズを選択しCtrl+Shift+Enterで確定できる | ★★☆ |
| #SPILL!解消 | スピル先のデータを削除してエラーを解消できる | ★★☆ |
| 貼り付けオプションとの使い分け | 動的更新が必要かどうかで関数か貼り付けかを選択できる | ★★☆ |
| 他関数との組み合わせ | FILTERやUNIQUEの結果にTRANSPOSEを組み合わせた数式を作成できる | ★★★ |
まとめ:TRANSPOSEは動的転置の要
本記事のポイントをまとめます。
- TRANSPOSEの役割:行と列を入れ替えた配列を動的に返す。元データの変更が転置先に自動反映される
- 入力方法の違い:旧Excelは転置後サイズを先選択してCtrl+Shift+Enter確定。Microsoft 365/Excel 2021以降はスピル(左上セルだけ選択してEnter)
- 貼り付けオプションとの使い分け:動的更新が必要ならTRANSPOSE関数、一度きりの整形や書式ごと転置したい場合は貼り付けオプション
- #SPILL!エラーの解消:スピル先のセルを空けることで解消できる
- スピル関数との組み合わせ:FILTER・UNIQUE・SORT・SEQUENCEと組み合わせることで動的ダッシュボードの構成要素になる
- MOS試験での要点:入力確定の操作方法・スピルの概念・エラー解消の手順を正確に習得する
TRANSPOSEを活用できると、縦長と横長のデータ変換を数式一本で管理できるようになります。元データを正規化した縦型テーブルに保持しながら、レポートや印刷用帳票は横型に展開するという分業体制が実現し、データメンテナンスの手間を大幅に削減できます。MOS試験対策としては、旧来の配列数式入力とスピル入力の両方の操作手順を試験環境に合わせて使い分けられるよう、実際にExcelで繰り返し練習してください。
PR
TRANSPOSEを含む主要関数を実務目線で解説した一冊。スピル・動的配列に対応した最新版で、FILTER・UNIQUE・SORTとの組み合わせも丁寧に説明されており、関数の使い方を体系的に学びたいMOS学習者に最適です。
PR
今すぐ使えるかんたんbiz Excel関数+組み合わせ 効率UPスキル大全
単関数の解説にとどまらず、TRANSPOSEをFILTERやUNIQUEと組み合わせた実務パターンを多数収録。「使える組み合わせ」を優先した構成で、日々の業務効率化に直結する知識をすぐに身に付けられます。
