Excelで表を作成していると、

「縦に並んだデータを横向きにしたい」
「[行/列の入れ替え]がグレーアウトして選べない…」
「コピーしても行列を入れ替えて貼り付けできない…」
ということがあります。
Excelでは通常、データをコピーして[行/列の入れ替え]を選ぶだけで、縦方向のデータを横方向へ、横方向のデータを縦方向へ変更できます。
しかし、操作方法やデータの状態によっては[行/列の入れ替え]を使用できません。
特に確認したいのが、次の2つです。
・Ctrl+Xで「切り取り」している
・データがExcelの「テーブル」になっている
この記事では、Excelで行列の入れ替えができない原因と対処法を初心者向けに解説します。
Excelで行列を入れ替える基本的な方法
まずは、通常の行列の入れ替え方法を確認しておきましょう。
たとえば、A列に次のようなデータが並んでいるとします。
| 商品A |
| 商品B |
| 商品C |
これを、
| 商品A | 商品B | 商品C |
のように横方向へ変更できます。
操作手順は次のとおりです。
■コピーして行列を入れ替える
1. 入れ替えたいセル範囲を選択する
↓
2. [Ctrl]+[C]でコピーする
↓
3. 貼り付け先のセルを選択する
↓
4. 右クリックする
↓
5. [貼り付けオプション]から[行/列の入れ替え]を選択する
これで、縦方向と横方向を入れ替えて貼り付けできます。

Excelで行列の入れ替えができない・グレーアウトする原因
[行/列の入れ替え]が表示されない、または選択できない場合は、まず次の原因を確認してみましょう。
Ctrl+Xで切り取っている
特に間違えやすいのが、Ctrl+Xで切り取ってから行列を入れ替えようとしているケースです。
行列を入れ替えて貼り付ける場合は、
[Ctrl]+[X]:切り取り
ではなく、
[Ctrl]+[C]:コピー
を使用します。

Microsoft公式の案内でも、行列の入れ替えでは切り取りではなくコピーする必要があると案内されています。
[行/列の入れ替え]が使えない場合は、一度[Esc]キーで操作を解除し、元データを[Ctrl]+[C]でコピーし直してみましょう。
Excelテーブルになっている
もう1つ注意したいのが、データがExcelテーブルになっている場合です。
Excelテーブル内では、通常の[行/列の入れ替え]機能をそのまま使用できません。

テーブルを通常のセル範囲へ戻してから操作します。
■テーブルを通常のセル範囲へ戻す
1. テーブル内のセルをクリックする
↓
2. [テーブル デザイン]タブを開く
↓
3. [範囲に変換]をクリックする
↓
4. [はい]を選択する
↓
5. データを[Ctrl]+[C]でコピーする
↓
6. [行/列の入れ替え]で貼り付ける

これで通常のセル範囲として行列を入れ替えられます。
なお、テーブルを解除したくない場合は、テーブル外のセルで後述するTRANSPOSE関数を使う方法もあります。
貼り付け先には十分な空きスペースを用意する
行列を入れ替えると、必要になる行数と列数も逆になります。
たとえば、「10行×2列」のデータを入れ替えると、「2行×10列」になります。
そのため、貼り付け先には十分な空きスペースを用意しておきましょう。
また、貼り付け先にすでにデータが入力されている場合は、上書きされる可能性があります。
元データとは少し離れた空白セルを選んでから[行/列の入れ替え]を実行すると分かりやすいでしょう。
TRANSPOSE関数で縦横を入れ替える方法
コピーして貼り付ける方法ではなく、数式で行列を入れ替えることもできます。
使用するのがTRANSPOSE関数です。
たとえば、A2:A4のデータを横方向へ入れ替える場合は、次のように入力します。
=TRANSPOSE(A2:A4)Microsoft公式のTRANSPOSE関数の説明にあるように、動的配列に対応したMicrosoft 365などでは、数式を入力して[Enter]キーを押すと、結果が複数のセルへ自動的に展開されます。
数式はテーブル外の空白セルに入力し、結果の展開先も空けておきましょう。展開先にデータがあると[#SPILL!]エラーになることがあります。
動的配列に対応していない旧バージョンのExcelでは、あらかじめ出力範囲を選択して数式を入力し、Ctrl+Shift+Enterで確定する必要があります。

貼り付けとTRANSPOSE関数はどちらを使う?
単純に表の向きを変えたいだけなら、コピー→[行/列の入れ替え]が簡単です。
一方、元データを変更したときに入れ替え先も連動させたい場合は、TRANSPOSE関数が便利です。
| 方法 | 向いているケース |
|---|---|
| 行/列の入れ替えで貼り付け | 一度だけ縦横を変更したい |
| TRANSPOSE関数 | 元データの変更を反映させたい |
迷った場合は、まず[Ctrl]+[C]でコピーして[行/列の入れ替え]を使えば問題ありません。
「並び替え」と「行列の入れ替え」は別の機能
Excelには似た操作として「並び替え」がありますが、行列の入れ替えとは目的が異なります。
並び替えは、
| A |
| B |
| C |
というデータを、
| C |
| B |
| A |
のように同じ方向のまま順番だけ変更する機能です。
一方、行列の入れ替えは、
・縦方向 → 横方向
・横方向 → 縦方向
のように、表の行と列を入れ替える操作です。
「データの順番を変更したい」のか、「縦横を入れ替えたい」のかで使う機能を選びましょう。
👉縦横を入れ替えるのではなく、データを昇順・降順などに並べ直したい場合は、こちらの記事も参考にしてください。
まとめ
Excelで行列の入れ替えができない場合は、まずCtrl+X(切り取り)ではなくCtrl+Cでコピーしているか確認しましょう。
また、Excelテーブル内では[行/列の入れ替え]をそのまま使用できません。
その場合は、
・テーブルを[範囲に変換]してから入れ替える
・TRANSPOSE関数を使う
という方法があります。
一度だけ縦横を変更するなら[行/列の入れ替え]、元データと連動させたいならTRANSPOSE関数、と使い分けると分かりやすいでしょう。
👉複数の表を縦方向につなげたい場合は、行列の入れ替えではなくVSTACK関数が便利です。
👉1列に並んだデータを指定した個数ごとに折り返したい場合は、WRAPROWS関数を使う方法もあります。




コメント