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

Excelで列を左から右にXNUMXつの列にスタックする方法は?

複数の列があるとすると、次のスクリーンショットに示すように、列を左から右にXNUMXつの列に積み重ねることができます。 列をXNUMXつずつ手動で移動する以外に、Excelでこれを解決するためのトリックはありますか?
ドキュメントスタック列を左から右に1

VBAを使用して列を左から右にXNUMX列にスタックします

Kutools for Excelを使用して、列を左から右にXNUMX列にスタックします


VBAを使用して列を左から右にXNUMX列にスタックします

Excelには、このジョブを処理できる組み込み関数はありませんが、VBAコードが役立ちます。

1。 押す Alt + F11 キー、次に アプリケーション向け Microsoft Visual Basic ウィンドウ、クリック インセット > モジュール 新しい空のモジュールを作成します。

2.以下のコードをコピーして、 モジュール.

VBA:列をXNUMXつにスタックします

Sub StackColumns()
'UpdatebyExtendoffice20180814
Dim xSRg, xDRg As Range
Dim xDWS As Worksheet
Dim xIntDR, xIntDC, xI As Long
Dim xFNumR, xFNumC As Long
On Error GoTo Err1
Set xSRg = Application.InputBox("Select Columns:", "Kutools for Excel", xTxt, , , , , 8)
If xSRg Is Nothing Then
Err1:
    Application.ScreenUpdating = True
    Exit Sub
End If
Set xDRg = Application.InputBox("Select a cell to place result:", "Kutools for Excel", xTxt, , , , , 8)
If xDRg Is Nothing Then
    Exit Sub
End If
Application.ScreenUpdating = False
Set xDWS = xDRg.Worksheet
xIntDR = xDRg.Row
xIntDC = xDRg.Column
xI = 0
    For xFNumC = 1 To xSRg.Columns.Count
        For xFNumR = 1 To xSRg.Rows.Count
            Set xDRg = xDWS.Cells(xIntDR + xI, xIntDC)
            xDRg.Value = xSRg.Cells(xFNumR, xFNumC).Value
            xI = xI + 1
        Next xFNumR
    Next xFNumC
Application.ScreenUpdating = True
End Sub

ドキュメントスタック列を左から右に2

3。 押す F5 コードを実行するためのキーを押すと、XNUMXつにスタックする列を選択するためのダイアログが表示されます。
ドキュメントスタック列を左から右に3

4。 クリック OK、結果を配置するセルを選択します。
ドキュメントスタック列を左から右に4

5。 クリック OK 終わる。 これで、選択した列がXNUMXつの列にスタックされました。
ドキュメントスタック列を左から右に5


Kutools for Excelを使用して、列を左から右にXNUMX列にスタックします

あなたが持っている場合 Kutools for Excel Excelにインストールすると、 Transform Range このジョブを処理するユーティリティ。

Kutools for Excel, 以上で 300 便利な機能は、あなたの仕事をより簡単にします。 

インストールした後 Kutools for Excel、以下のようにしてください:(今すぐExcel用のKutoolsを無料でダウンロードしてください!)

1.スタックする列を選択し、をクリックします クツール > レンジ > Transform Range.
ドキュメントスタック列を左から右に6

2。 の中に Transform Range ダイアログ、チェック Range to single row チェックボックスをクリックします Ok.
ドキュメントスタック列を左から右に7

3.ポップダイアログで、結果を配置するセルを選択し、をクリックします OK.
ドキュメントスタック列を左から右に8

これで、列がXNUMXつの行に変換されました。
ドキュメントスタック列を左から右に9

4.単一の行を選択し、を押します Ctrl + C コピーするには、スタック列を配置する別のセルを選択し、右クリックして選択します Transpose(T) コンテクストメニューに表示されます。
ドキュメントスタック列を左から右に10

これで、単一の行がスタック列に置き換えられました。
ドキュメントスタック列を左から右に11

最高のオフィス生産性向上ツール

🤖 Kutools AI アシスタント: 以下に基づいてデータ分析に革命をもたらします。 インテリジェントな実行   |  コードを生成  |  カスタム数式の作成  |  データを分析してグラフを生成する  |  Kutools関数を呼び出す...
人気の機能: 重複を検索、強調表示、または識別する   |  空白行を削除する   |  データを失わずに列またはセルを結合する   |   数式なしのラウンド ...
スーパールックアップ: 複数の基準の VLookup    複数の値の VLookup  |   複数のシートにわたる VLookup   |   ファジールックアップ ....
詳細ドロップダウン リスト: ドロップダウンリストを素早く作成する   |  依存関係のドロップダウン リスト   |  複数選択のドロップダウンリスト ....
列マネージャー: 特定の数の列を追加する  |  列の移動  |  Toggle 非表示列の表示ステータス  |  範囲と列の比較 ...
注目の機能: グリッドフォーカス   |  デザインビュー   |   ビッグフォーミュラバー    ワークブックとシートマネージャー   |  リソースライブラリ (自動テキスト)   |  日付ピッカー   |  ワークシートを組み合わせる   |  セルの暗号化/復号化    リストごとにメールを送信する   |  スーパーフィルター   |   特殊フィルター (太字/斜体/取り消し線をフィルター...) ...
上位 15 のツールセット12 テキスト ツール (テキストを追加, 文字を削除する、...)   |   50+ チャート 種類 (ガントチャート、...)   |   40+ 実用的 (誕生日に基づいて年齢を計算する、...)   |   19 挿入 ツール (QRコードを挿入, パスから画像を挿入、...)   |   12 変換 ツール (数字から言葉へ, 通貨の換算、...)   |   7 マージ&スプリット ツール (高度な結合行, 分割セル、...)   |   ... もっと

Kutools for Excel で Excel スキルを強化し、これまでにない効率を体験してください。 Kutools for Excelは、生産性を向上させ、時間を節約するための300以上の高度な機能を提供します。  最も必要な機能を入手するにはここをクリックしてください...

説明


Officeタブは、タブ付きのインターフェイスをOfficeにもたらし、作​​業をはるかに簡単にします

  • Word、Excel、PowerPointでタブ付きの編集と読み取りを有効にする、パブリッシャー、アクセス、Visioおよびプロジェクト。
  • 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
  • 生産性を 50% 向上させ、毎日何百回もマウス クリックを減らすことができます!
Comments (3)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Does anyone know how to replace/hardcode the columns (not bring up the message box for selection)?So, set the XSRg to be something like: Set xSRg = Range("A1").CurrentRegion.Select(which does not work because of type mismatch)thanks
This comment was minimized by the moderator on the site
I will be eternally grateful to you. Thank you so much!
This comment was minimized by the moderator on the site
A Word cheat to do the same:
- copy all your rows and lines in Excel
- paste without into a Word doc
- ctrl + h (find and replace)
- copy a tabulation space between two rows
- paste into search bar
- replace by tabs by line breaks "^l"

All your cells are now in column in your Word doc.
Copy paste them into Excel: done!
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations