メインコンテンツへスキップ

Kutools for Office — 1つのスイート、5つのツールで、もっと多くのことを成し遂げましょう。

Excelでベクトル/単一行または列を行列に変換するにはどうすればよいですか?

Author Xiaoyang Last modified

Excelでは、指定された行数と列数を持つ行列または表形式に「ベクトル」と呼ばれる単一行または列を変換する必要がある状況に遭遇することがあります。手動で各値をグリッドにコピーして貼り付けるのは、特に大規模なデータセットの場合、面倒でエラーが発生しやすい作業です。この記事では、効率を向上させ、ミスのリスクを減らすために、ベクトル(単一行または列)を迅速に行列に変換するためのいくつかの実用的な方法を紹介します。各方法は異なるシナリオに適しているため、データ変換や表示に最適な方法を選択できます。


数式を使用してベクトル/単一行または列を行列に変換する

Excelの数式は、単一行または列を行列レイアウトに変換するための柔軟で動的な方法を提供します。これは、ソースデータが変更された場合に行列が自動的に更新されるようにしたい場合に特に便利です。ただし、セル参照と行列サイズに注意してください。元のデータに空白セルがあると0が返されることがあります。

🔹 単一列を行列に変換する:

データがC1:C20にあると仮定し、それを4行×5列(4×5)の行列に変換したい場合、以下の手順に従ってください。

ステップ1: 行列を開始したい左上のセル(例:F1)に次の数式を入力し、Enterキーを押します。

=OFFSET($C$1:$C$20,COLUMN()-COLUMN($F$1)+((ROW()-ROW($F$1))*(ROWS($C$1:$C$20)/4)),0,1,1)

この数式は、列データを参照し、行列形式に再配置します。

Convert a single column to matrix with a formula

数式の説明:

  • $C$1:$C$20: ソース列データ。
  • $F$1: 行列の左上開始セル。
  • ROWS($C$1:$C$20)/4: 「4」は行列の行数です。必要に応じて調整してください。

ステップ2: フィルハンドルを4行分下にドラッグし、次に5列分右にドラッグして行列を完成させます。

drag the formula to right and down

🔹 単一行を行列に変換する:

A1:T1のような行を5行×4列(5×4)の行列に変換するには:

ステップ1: 開始セル(例:E4)に以下を入力します:

=OFFSET($A$1:$T$1,0,COLUMN()-COLUMN($E$4)+(ROW()-ROW($E$4))*(COLUMNS($A$1:$T$1)/5),1,1)

ステップ2: 次に5行分下にドラッグし、4列分右にドラッグして行列レイアウトを作成します。

Convert a single row to matrix with a formula

数式の説明:

  • $A$1:$T$1: ソース行データ。
  • $E$4: 行列の開始セル。
  • COLUMNS($A$1:$T$1)/5: 「5」は行列の行数です。

⚠️ 注意:

  • データポイントの数が行×列(例:4×5 = 20)に正確に一致することを確認してください。
  • ソース範囲に空白セルがある場合、行列にはその場所に0が表示されることがあります。
  • この数式方式は動的ですが、初心者には直感的ではない場合があります。参照が一貫していることを確認してください。

Kutools for Excelを使用してベクトル/単一行または列を行列に変換する

数式アプローチが複雑すぎる、または時間がかかりすぎる場合—特にExcel関数に不慣れなユーザーまたは大規模なデータセットを扱う場合—Kutools for Excelは非常に簡単な解決策を提供します。Transform Range機能を使用すると、数式を一切書かずに視覚インターフェースを通じて単一行または列を行列(またはその逆)に変換できます。この方法は、効率性と使いやすさを求めるユーザーに理想的です。

Kutools for Excelは、300以上の高度な機能を提供し、複雑なタスクを簡素化し、創造性と効率を向上させます。 AI機能と統合され、Kutoolsは正確にタスクを自動化し、データ管理を容易にします。Kutools for Excelの詳細情報...無料トライアル...

ステップ1: 行列に変換したい行または列の範囲を選択します。

ステップ2: ExcelリボンからKutools > 範囲 > Transform Rangeをクリックします。

click Transform Range feature of kutools

ステップ3: Transform Rangeダイアログで:

  1. 横方向の行を変換する場合はSingle row to range、縦方向の列を変換する場合はSingle column to rangeを選択します。
  2. Rows per recordFixed valueボックスに、結果として得られる行列の列数を入力します。たとえば、5列の行列を作成する場合は「5」を入力します。

set options in the dialog box

ステップ4: OKをクリックします。プロンプトが表示されたら、行列の結果を出力したい空白セルを選択します。

select a cell to output the result

ステップ5: 再びOKをクリックします。これで元の行または列が瞬時に行列形式に再配置されます。

the single column has been converted to a matrix

Kutoolsを使用することで、複雑な数式や手動でのフィル操作が不要になり、スピード、シンプルさ、正確さを重視するユーザーにとって理想的な選択肢となります。この方法にはKutoolsアドインが必要であり、すべての環境で利用できない場合があることに注意してください。


VBAコードを使用してベクトル/単一行または列を行列に変換する

より高度な柔軟性が必要な場合、プロセスを自動化したい場合、または大規模なデータセットを処理したい場合、VBAマクロは優れた選択肢です。カスタム行列サイズに対応し、繰り返しの手動操作を削減し、数千件のエントリでも効率的に動作します。このアプローチは、外部アドインに依存せずに、定期的なレポート、一括データ再構築、または再利用可能なExcelツールの作成に理想的です。

⚠ 重要: このスクリプトを実行する前に、必ずワークブックを保存し、マクロを有効にしてください。データサイズが行列の寸法に均等に収まらない場合、余分なセルはデータ損失を避けるために空白のままになります。

ステップ1: Alt + F11を押してMicrosoft Visual Basic for Applicationsエディタを開きます。挿入モジュールをクリックし、以下のコードを貼り付けます:

Sub VectorToMatrix()
    Dim vecRange As Range
    Dim outCell As Range
    Dim totalElements As Long
    Dim matrixRows As Long, matrixCols As Long
    Dim i As Long, j As Long, idx As Long
    Dim xTitleId

    On Error Resume Next
    xTitleId = "KutoolsforExcel"

    Set vecRange = Application.InputBox("Select the vector (single row or column) to convert:", xTitleId, Type:=8)
    If vecRange Is Nothing Then Exit Sub

    matrixRows = Application.InputBox("Enter number of rows for the matrix:", xTitleId, , , , , , 1)
    If matrixRows <= 0 Then Exit Sub

    matrixCols = Application.InputBox("Enter number of columns for the matrix:", xTitleId, , , , , , 1)
    If matrixCols <= 0 Then Exit Sub

    totalElements = vecRange.Cells.Count
    If matrixRows * matrixCols < totalElements Then
        MsgBox "Matrix size does not fit all values from vector!", vbExclamation
        Exit Sub
    End If

    Set outCell = Application.InputBox("Select the top-left cell for output matrix:", xTitleId, Type:=8)
    If outCell Is Nothing Then Exit Sub

    idx = 1
    For i = 1 To matrixRows
        For j = 1 To matrixCols
            If idx <= totalElements Then
                outCell.Cells(i, j).Value = vecRange.Cells(idx).Value
                idx = idx + 1
            Else
                outCell.Cells(i, j).Value = ""
            End If
        Next j
    Next i
End Sub

ステップ2: コードを実行するには、マクロ内をクリックして F5 を押すか、 Run button 実行 ボタンをクリックします。その後、指示に従います:

  1. ベクトル範囲を選択 — 変換したい単一行または列を選択します。
  2. 行列の行数と列数を入力します。
  3. 行列の左上の出力セルを選択します。

確認後、マクロは選択したベクトルからターゲット行列に自動的に値を入力します。行列サイズが小さすぎる場合、スクリプトは変更を行う前に中止され、警告が表示されます。

なぜVBAを選ぶのか? それはバッチ処理、再利用可能なロジック、および数式やアドインでは面倒なデータ集約型タスクに理想的です。頻繁に異なるサイズや多くのシート間でベクトルを行列レイアウトに変換する場合、この方法は時間と労力を節約します。

トラブルシューティング: 入力が単一行または列であることを確認し、行列の行×列の積がソース値の数以上であることを確認してください。このマクロは直接シートに書き込むため、常に実行前に保存してください。


関連記事:

Excelで行列をベクトルまたは単一列に変換するにはどうすればよいですか?

最高のオフィス業務効率化ツール

🤖 Kutools AI Aide:データ分析を革新します。主な機能:Intelligent Executionコード生成カスタム数式の作成データの分析とグラフの生成Kutools Functionsの呼び出し……
人気の機能重複の検索・ハイライト・重複をマーキング空白行を削除データを失わずに列またはセルを統合丸める……
スーパーLOOKUP複数条件でのVLookup複数値でのVLookup複数シートの検索ファジーマッチ……
高度なドロップダウンリストドロップダウンリストを素早く作成連動ドロップダウンリスト複数選択ドロップダウンリスト……
列マネージャー指定した数の列を追加列の移動非表示列の表示/非表示の切替範囲&列の比較……
注目の機能グリッドフォーカスデザインビュー強化された数式バーワークブック&ワークシートの管理オートテキスト ライブラリ日付ピッカーデータの統合セルの暗号化/復号化リストで電子メールを送信スーパーフィルター特殊フィルタ(太字/斜体/取り消し線などをフィルター)……
トップ15ツールセット12 種類テキストツールテキストの追加特定の文字を削除など)50種類以上のグラフガントチャートなど)40種類以上の便利な数式誕生日に基づいて年齢を計算するなど)19 種類の挿入ツールQRコードの挿入パスから画像の挿入など)12 種類の変換ツール単語に変換する通貨変換など)7種の統合&分割ツール高度な行のマージセルの分割など)… その他多数
Kutoolsはお好みの言語で利用可能 ― 英語、スペイン語、ドイツ語、フランス語、中国語、その他40以上の言語に対応!

Kutools for ExcelでExcelスキルを強化し、これまでにない効率を体感しましょう。 Kutools for Excelは300以上の高度な機能で生産性向上と保存時間を実現します。最も必要な機能はこちらをクリック...


Office TabでOfficeにタブインターフェースを追加し、作業をもっと簡単に

  • Word、Excel、PowerPointでタブによる編集・閲覧を実現
  • 新しいウィンドウを開かず、同じウィンドウの新しいタブで複数のドキュメントを開いたり作成できます。
  • 生産性が50%向上し、毎日のマウスクリック数を何百回も削減!

全てのKutoolsアドインを一つのインストーラーで

Kutools for Officeスイートは、Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proをまとめて提供。Officeアプリを横断して働くチームに最適です。

Excel Word Outlook Tabs PowerPoint
  • オールインワンスイート — Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proが含まれます
  • 1つのインストーラー・1つのライセンス —— 数分でセットアップ完了(MSI対応)
  • 一括管理でより効率的 —— Officeアプリ間で快適な生産性を発揮
  • 30日間フル機能お試し —— 登録やクレジットカード不要
  • コストパフォーマンス最適 —— 個別購入よりお得