Excel一覧 Excel操作・関数 データ操作 行列の入れ替え

【Excel】行列の入れ替えができない時の原因と解決策

Excelでは、データの行と列を変えることができます
例えば、横方向(行)のデータを縦方向(列)に変更したり、逆に縦のデータを横にしたりする際に便利です。

しかし、「列の入れ替えができない!」「エラーが出る!」「数式が壊れる!」などのトラブルが発生することがあります。

この記事では、Excel の行列ができない原因とその解決策を詳しく解説します。

Excelの行列を入れ替える方法

まず、基本的な行列の改めて方法を確認してみましょう。

貼り付けオプションの「行列を入れ替える」を使う

📌 手順

  1. 代わりたいデータ範囲を選択
  2. 「Ctrl + C」でコピー
  3. 貼り付け先のセルを選択
  4. 「貼り付けオプション」→「行列を入れ替える(トランスポーズ)」を選択

結果:行と列が入れ替わったデータが貼られる!

✅TRANSPOSE関数を使う(動的な代わり)

「貼り付け」ではなく、数式で置きたい場合はTRANSPOSE関数を使用します。

📌 例:「A1 :C3 」を置き換える

=TRANSPOSE(A1:C3)

注意:この関数は配列数式なので、Excel 365 / 2019 以前では「Ctrl + Shift + Enter」で確定する必要があります。

結果:元データが変更されても、自動で行と列が入れ替わる!

行列の入れ替えができない原因と解決策

原因1:コピー元のデータが結合されている

結合セルを含むデータは、行列を入れ替えできません!

📌 解決策

  1. 「ホーム」タブ→「セルの書式設定」
  2. 「配置」→「セルを結合する」のチェックを外す
  3. もう一度「列を入れ替える」を続ける

結果:結合が解除され、列の入れ替えが可能に!

原因2:数式が壊れる(参照エラー)

貼り付け後に、#REF!#VALUE!エラーが発生することがございます。
これは、数式の参照が正しく変換されていないためです。

📌 解決策

  1. 列を入れ替える前に、「値のみコピー」する
    • 「Ctrl + C」→「右クリック」→「値のみ貼り付け」
  2. TRANSPOSE使用する
    • =TRANSPOSE(A1:C3)を使えば、動的に置き換え可能

結果:数式のエラーを阻止しながら列を張られる!

原因3:貼り付け先のセルにデータがある

貼り付け先のセルにすでにデータがあると、行列の入れ替えが正常にできません。

📌 解決策

  1. 貼り付け先のセルをクリアする
    • 「右クリック」→「クリア」→「すべての内容をクリア」
  2. 新しいシートに貼ってから調整する

結果:オンラインが解消され、行列を入れ替えられる!

原因 4:配列数式の範囲が正しくない

TRANSPOSE関数を使う場合、貼り付け範囲が適切でないとエラーが発生します

📌 解決策

  1. 代わりの行数と列数を確認
    • 例:「3行×5列」 → 「5行×3列」 へ変更
  2. Excel 365 / 2019以外の場合は、「Ctrl + Shift + Enter」で確定
  3. 不要な範囲にデータがある場合は削除

結果:適切な範囲を指定することで、エラーを防ぐ!

原因5:ファイルが「保護ビュー」で見られている

OneDrive や SharePoint からダウンロードしたファイルは、「保護ビュー」になっていることがあります。
この状態では、貼り付けオプションが使用できません。

📌 解決策

  1. 「ファイル」→「編集を有効にする」をクリック
  2. 「ブックの保護」を解除する
    • 「校閲」タブ→「シートの保護の解除」

結果:編集可能になり、行列の入れ替えができる!

VBAを使って列を入れ替える(大量データ向け)

大量のデータを一瞬で列変換したい場合は、VBAを使うのが便利です。

✅ VBAコード:列を自動で入れ替える

Sub TransposeData()

Dim rng As Range, newRange As Range
Dim ws As Worksheet

Set ws = ActiveSheet
Set rng = ws.Range("A1:C3") ' 入れ替えたい範囲
Set newRange = ws.Range("E1") ' 貼り付け先

newRange.Resize(rng.Columns.Count, rng.Rows.Count).Value = Application.WorksheetFunction.Transpose(rng.Value)

MsgBox "行列の入れ替えが完了しました!", vbInformation

End Sub

📌 実行方法

  1. 「Alt + F11」でVBAエディタを開く
  2. 「挿入」→「モジュール」
  3. コードを貼って「F5」で実行

結果:A1 :C3のデータが E1 から列変換されて貼り付けられる!


まとめ

Excel で連続の代わりができない原因は、さまざまな検討が考えられます。
以下の慎重に取り組むことで、スムーズに連続変換が可能になります。

📌 行列ができない時の解決策まとめ
原因解決策
セルが結合されている結合を解除してから貼り付け
数式が壊れる(#REF!エラー)「値のみコピー」→「貼り付け」または関数TRANSPOSEを使用
貼り付け先にデータがある貼り付け前に「セルをクリア」
配列数式の範囲が合っていない正しい範囲を指定し、Ctrl + Shift + Enterで確定
「保護ビュー」になっている「編集を有効にする」をクリック
大量のデータで手作業が難しいVBAによる自動変換
📌どのような方法を使えばいいですか?

手作業で連続を変更したい → 「貼り付けオプション」
動的に変えたい →TRANSPOSE関数
大量データを自動変換 → VBAを活用

-Excel一覧, Excel操作・関数, データ操作, 行列の入れ替え