「縦長のマスタを横並びの一覧にしたい」
「月を列、部門を行にしてクロス集計を作りたい」
横⇆縦の入れ替えを一瞬で実現してくれるのが TRANSPOSE 関数。
本記事では 実データ+数式+出力結果 をセットで示しながら、
ダッシュボードやレポート作成で即役立つテクニックを解説します。
1. TRANSPOSE関数 ── 行列をそのまま“ひっくり返す”
=TRANSPOSE(範囲)
引数 | 内容 |
---|---|
範囲 | 入れ替えたいセル範囲(1 行×n 列 でも n 行×1 列でも OK) |
ポイント
- 元データサイズが 3×5 なら結果は 5×3 に。
- 結果は スピル するので右側または下側のセルを空けておく。
2. 基本例:縦リスト → 横リスト
A列:月 | |
---|---|
1月 | |
2月 | |
3月 |
■ 式を B1 に入力
=TRANSPOSE(A1:A3)
B列 | C列 | D列 |
---|---|---|
1月 | 2月 | 3月 |
活用:プルダウンの候補を横並びに欲しいときや、
KPI カードを横並びに並べるダッシュボードで便利。
3. 基本例:横テーブル → 縦テーブル
B | C | D | |
---|---|---|---|
1 | 1月 | 2月 | 3月 |
2 | 120,000 | 98,000 | 135,000 |
■ 式を A5 に入力
=TRANSPOSE(B1:D2)
A列 | B列 |
---|---|
1月 | 120,000 |
2月 | 98,000 |
3月 | 135,000 |
活用:ピボットテーブルの前処理や
SUMIFS が使いやすい“縦持ち”形式に変換したいときに最適。
4. 応用例①:セル内改行 → 縦展開(SPLIT × TRANSPOSE)
A列:備考 |
---|
発注済み 入荷待ち 検品中 |
数式 (B1)
=TRANSPOSE(SPLIT(A2,CHAR(10)))
ステータス |
---|
発注済み |
入荷待ち |
検品中 |
用途:1 セルに詰め込まれたメモをリスト化 → COUNTIF で件数集計へ。
5. 応用例②:月×部門クロス集計を“くるっ”と回転
部門 / 月 | 1月 | 2月 | 3月 |
---|---|---|---|
営業 | 1,200 | 1,350 | 1,400 |
開発 | 900 | 1,050 | 1,200 |
式を G1 に入力
=TRANSPOSE(A1:D3)
月 / 部門 | 営業 | 開発 |
---|---|---|
1月 | 1,200 | 900 |
2月 | 1,350 | 1,050 |
3月 | 1,400 | 1,200 |
用途:グラフ描画ツールや 外部 BI が “月を行” で受け取るときにサッと変換。
6. 仕事で役立つテクニック集
テクニック | 数式例 | 効果 |
---|---|---|
動的列→行変換 | =ARRAYFORMULA(TRANSPOSE(B2:2)) | 新しい月列が増えても自動 |
文字列 → 行列 → 再合体 | =TEXTJOIN(";", TRUE, TRANSPOSE(C2:C6)) | 縦リストを「;区切り」の 1 セルに |
QUERY でヘッダ行抽出 ⇒ 回転 | =TRANSPOSE(QUERY(データ,"select * limit 1")) | 1 行ヘッダを列ラベルとして再利用 |
IMPORTRANGE 後に回転 | =TRANSPOSE(IMPORTRANGE(URL,"シート1!A1:Z10")) | 外部表形式を手元のフォーマットに合わせる |
7. よくあるエラー & 回避策
エラー | 原因 | 対処 |
---|---|---|
#REF! | スピル結果が隣接セルと衝突 | 結果範囲ぶん右・下に空列/空行を確保 |
行列サイズが合わない | 元データサイズ変動で余分セル残り | ARRAY_CONSTRAIN で行列数を固定 |
更新が遅い | 巨大シートで多用 | 必要箇所だけに限定/貼り付け値で静的化 |
8. まとめ & 早見表
目的 | 代表式 | キーワード |
---|---|---|
縦リスト → 横 | =TRANSPOSE(A2:A10) | 横並び候補 |
横テーブル → 縦 | =TRANSPOSE(B1:F3) | 縦持ち化 |
改行テキストを縦展開 | =TRANSPOSE(SPLIT(A2,CHAR(10))) | メモ分解 |
混在列データを回転 | =TRANSPOSE(IMPORTRANGE(...)) | 外部表整形 |
TRANSPOSE で“向きを変えるだけ”なのに効果絶大!
ダッシュボード用に横並びを作る、ピボット前に縦持ち化する、
いずれもワン関数で完了します。
SPLIT・IMPORTRANGE・QUERY と組み合わせればさらに自由度アップ。
ぜひ明日からのデータ整形・レポート作成に取り入れてみてください!