How to Unhide Columns in Excel: A Complete Step-by-Step Guide
Excel でデータを転置するとは、行を列に、または列を行に変換することを意味します。 これは、データセットが読み取り、分析、または表示が難しい構造の場合に便利です。 Excel の転置機能は、ワークシートのデータのレイアウトを変更するために、行を列に、列を行に変換します。
たとえば、販売データの縦のリストを報告のために横の形式にしたり、インポートされたデータをテンプレートに合わせて再形成したりすることができます。
このガイドでは、Excel ワークブックで組み込みのツール、数式、およびプログラムによる自動化手法を使用してデータを転置する方法について説明します。 最終的には、ワークフローに合った方法が正確にわかるようになります。
方法 1: ペースト特別を使用してデータを転置する
これは最も一般的で最速の方法です。
- 転置したいデータ範囲を選択します。
- Ctrl + C を押してコピーします。
- ワークシートの新しい場所で右クリックします。
- ペースト特別をクリックします。
- 転置オプションをチェックします。
- "OK"をクリックします。
あなたの行が列に、またはその逆に変換されます。

Add image alt text
この方法が最適な場合
この方法は、一度のデータ変換には最適です。
いつ使用すべきか
- 迅速なフォーマット変更
- 小〜中のデータセット
- 報告調整
- データ再編成
使用しない場合
- 頻繁に変化する動的データ
- 大規模な自動データセット
方法 2: Excel の TRANSPOSE 関数を使用する
TRANSPOSE 関数は、オリジナルデータと転置データ間に動的なリンクを作成します。
-
転置サイズと同じ空の範囲を選択します。
- 数式を入力します:
=TRANSPOSE(A1:D3)=TRANSPOSE(A1:D3)The provided code appears to be a formula from a spreadsheet application like Excel, rather than C# code. If you have C# code that needs conversion to VB.NET, please provide the correct C# code for conversion.$vbLabelText $csharpLabel - Ctrl + Shift + Enter (古い Excel バージョンの場合) または最新の Excel では Enter を押します。

Add image alt text
この方法が最適な場合
この方法は、データセット間のライブ更新が欲しいときに最適です。
いつ使用すべきか
- 動的なダッシュボード
- リンクしたレポート
- リアルタイムの更新
- データモデリング
使用しない場合
- 静的レポート
- 一度だけのフォーマットタスク
方法 3:Power Queryを使用してデータを転置する
Power Query はデータ変換に強力なツールです。
- データ範囲を選択します。
- データタブに行きます。
-
テーブル/範囲からをクリックします。 4.Power QueryEditor で、変換を選択します。
- 転置をクリックします。

画像の代替テキストを追加
- データを Excel に戻してロードします。

Add image alt text
この方法が最適な場合
この方法は、構造化されていて繰り返し可能なデータ変換に理想です。
いつ使用すべきか
- 大規模データセット
- データクリーニングワークフロー
- ビジネスインテリジェンスレポート
- 再利用可能な変換
使用しない場合
- 迅速な編集
- シンプルなスプレッドシート
方法 4: 手動リフォーマットでコピーして貼り付けする
小規模データセットでは、手動調整で十分なことがあります。
- データをコピーします。
- 新しい領域に貼り付けます。
- 行と列を手動で再配置します。
- 必要に応じてフォーマットを調整します。
この方法が最適な場合
この方法は非常に小規模または不規則なデータセットに役立ちます。
いつ使用すべきか
- 迅速な編集
- シンプルなリスト
- 一度だけの調整
- 非構造的データ
使用しない場合
- 大規模データセット
- 精度が重要なレポート
方法 5:VBA自動化を使用してデータを転置する
繰り返しタスクには、VBA が転置を自動化できます。
- ALT + F11 を押してVBAエディターを開きます。
-
挿入 → モジュールをクリックします。
- 以下のコードを貼り付けます。

画像の代替テキストを追加
- マクロを実行します。
Sub TransposeData()
Dim sourceRange As Range
Dim targetRange As Range
Set sourceRange = Range("A1:F9")
Set targetRange = Range("A12")
targetRange.Resize(sourceRange.Columns.Count, sourceRange.Rows.Count).Value = _
Application.WorksheetFunction.Transpose(sourceRange.Value)
End Sub
Sub TransposeData()
Dim sourceRange As Range
Dim targetRange As Range
Set sourceRange = Range("A1:F9")
Set targetRange = Range("A12")
targetRange.Resize(sourceRange.Columns.Count, sourceRange.Rows.Count).Value = _
Application.WorksheetFunction.Transpose(sourceRange.Value)
End Sub
Option Strict On
Sub TransposeData()
Dim sourceRange As Range
Dim targetRange As Range
sourceRange = Range("A1:F9")
targetRange = Range("A12")
targetRange.Resize(sourceRange.Columns.Count, sourceRange.Rows.Count).Value = _
Application.WorksheetFunction.Transpose(sourceRange.Value)
End Sub
この方法が最適な場合
この方法は繰り返しのデータ変換タスクに理想です。
いつ使用すべきか
- 自動化された報告システム
- 大規模データセット
- 繰り返しの変換
- エンタープライズワークフロー
使用しない場合
- 一度きりの使用
- 非技術的なユーザー
よくある問題とトラブルシューティング
転置したデータが自動で更新されないのはなぜですか?
ペースト特別を使用する場合に発生します。
解決策:
- 動的リンクには TRANSPOSE 公式を使用
- 更新が必要な場合は静的な貼り付けを避ける
転位後の Excel が REF エラーを表示するのはなぜですか?
通常、出力範囲がソースと重なると発生します。
解決策:
- 出力範囲が空であることを確認する
- 転置データを別のエリアに移動する
転置したデータのフォーマットが正しくないのはなぜですか?
フォーマットは常に自動で引き継がれません。
解決策:
- 転置後にフォーマットを再適用する
- より良いコントロールにはPower Queryを使用
TRANSPOSE が Excel バージョンで動かないのはなぜですか?
古いバージョンでは特別な配列入力が必要です。
解決策:
- Ctrl + Shift + Enter を使用
- または代わりにペースト特別法を使用
適切な方法の選択
さまざまなシナリオにはさまざまなアプローチが必要です。
| シナリオ |最適な方法| |---|---| |迅速な一度の変更|ペースト特別| |動的データ|TRANSPOSE 関数| |大規模なデータセット|Power Query| |手動による小規模編集|コピーして調整| |自動化ワークフロー|VBA|
開発者向け: IronXL を使用して Excel データを転置する
自動化されたシステムでは、レポートを生成したりデータセットを処理する際に、データ構造化がしばしば要求されます。 このような場合には、手動の転置は実用的ではありません。
ここで、Iron Software の .NET Excel ライブラリであるIronXLが便利になります。 開発者は Excel データを読み取り、プログラムで再構成することができます。 これはドキュメント自動化とデータ処理のために設計されています。
例: IronXL を使用してデータを転置する
using IronXL;
using System;
WorkBook workbook = WorkBook.Load("data.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;
var data = sheet["A1:D3"].ToArray();
int rows = data.GetLength(0);
int cols = data.GetLength(1);
WorkBook newBook = WorkBook.Create();
WorkSheet newSheet = newBook.CreateWorkSheet("Transposed");
for (int i = 0; i < rows; i++)
{
// Copy it to new blank cells
for (int j = 0; j < cols; j++)
{
newSheet[j, i].Value = data[i, j].Value;
}
}
newBook.SaveAs("TransposedData.xlsx");
using IronXL;
using System;
WorkBook workbook = WorkBook.Load("data.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;
var data = sheet["A1:D3"].ToArray();
int rows = data.GetLength(0);
int cols = data.GetLength(1);
WorkBook newBook = WorkBook.Create();
WorkSheet newSheet = newBook.CreateWorkSheet("Transposed");
for (int i = 0; i < rows; i++)
{
// Copy it to new blank cells
for (int j = 0; j < cols; j++)
{
newSheet[j, i].Value = data[i, j].Value;
}
}
newBook.SaveAs("TransposedData.xlsx");
Imports IronXL
Imports System
Dim workbook As WorkBook = WorkBook.Load("data.xlsx")
Dim sheet As WorkSheet = workbook.DefaultWorkSheet
Dim data = sheet("A1:D3").ToArray()
Dim rows As Integer = data.GetLength(0)
Dim cols As Integer = data.GetLength(1)
Dim newBook As WorkBook = WorkBook.Create()
Dim newSheet As WorkSheet = newBook.CreateWorkSheet("Transposed")
For i As Integer = 0 To rows - 1
' Copy it to new blank cells
For j As Integer = 0 To cols - 1
newSheet(j, i).Value = data(i, j).Value
Next
Next
newBook.SaveAs("TransposedData.xlsx")
これにより、開発者はデータの再形成タスクを完全に自動化することができます。
IronXLでできること
インストール
NuGetパッケージマネージャ経由でIronXLをインストールしてください:
Install-Package IronXL.Excel
- IronXL を使用した行と列の操作についてもっと学ぶ
- IronXLを使ったExcelファイルの編集方法をご覧ください
結論
Excel でのデータの転置は、スプレッドシートを再構築し、可読性を向上させるための強力な技術です。 クイック変更のためにペースト特別を使用するか、動的な更新のために TRANSPOSE 機能を使用するか、高度な変換のためにPower Queryを使用するかにかかわらず、Excel はあらゆるユースケースに柔軟なオプションを提供します。
開発者や自動化システム向けには、IronXL は Excel データの管理に完全なコントロールを提供し、大規模なデータセットをプログラムで転置し、操作するのを容易にします。
適切な方法を使えば、どのような報告や分析の要件にも合うようにデータをすばやく再形成できます。




