KutoolsforOffice— 1 つのソリューション、5 つの強力なツール。少ない労力で大きな成果。

Excel で大きなテーブルを複数の小さなテーブルに分割するには?

著者Xiaoyang変更日

複数の列と数百行~数千行を含む大きなExcel テーブルを、より管理しやすい小さなテーブルに分割したい場合があります。たとえば、特定の列の値に基づいてデータを分離したり、一定の行数ごとに分割したりする必要があるかもしれません。このチュートリアルでは、こうした作業を効率的にこなすためのステップ・バイ・ステップの方法をご紹介します。

メインテーブル 列の値に基づいてテーブルを複数のテーブルに分割行数に基づいてテーブルを複数のテーブルに分割
分割前の Excel の大規模なテーブルのスクリーンショット矢印列の値で分割された Excel テーブルのスクリーンショット行数で分割された Excel テーブルのスクリーンショット

VBA コードを使用して列の値に基づいて大きなテーブルを複数のテーブルに分割する

VBA コードを使用して指定された行数に基づいて大きなテーブルを複数のテーブルに分割する

Kutools for Excel を使用して列の値または行数に基づいて大きなテーブルを複数のテーブルに分割する


VBA コードを使用して列の値に基づいて大きなテーブルを複数のテーブルに分割する

指定した列の値に基づいてこの大きなテーブルを複数のテーブルに分割するには、次の VBA コードが役立ちます。以下の手順に従ってください。

1。「ALT」+「F11」キーを押して、「Microsoft Visual Basic for Applications」ウィンドウを開きましょう。

2。「挿入」>「モジュール」をクリックし、表示される「モジュール」ウィンドウに以下のコードを貼り付けてください。

VBA コード:キーカラムに基づいて大きなテーブルを複数のテーブルに分割する:

Sub Splitdatabycol()
'by Extendoffice
Dim lr As Long
Dim ws As Worksheet
Dim vcol, i As Integer
Dim icol As Long
Dim myarr As Variant
Dim title As String
Dim titlerow As Integer
Dim xTRg As Range
Dim xVRg As Range
Dim xWSTRg As Worksheet
On Error Resume Next
Set xTRg = Application.InputBox("Please select the header rows:", "Kutools for Excel", "", Type:=8)
If TypeName(xTRg) = "Nothing" Then Exit Sub
Set xVRg = Application.InputBox("Please select the column you want to split data based on:", "Kutools for Excel", "", Type:=8)
If TypeName(xVRg) = "Nothing" Then Exit Sub
vcol = xVRg.Column
Set ws = xTRg.Worksheet
lr = ws.Cells(ws.Rows.Count, vcol).End(xlUp).Row
title = xTRg.AddressLocal
titlerow = xTRg.Cells(1).Row
icol = ws.Columns.Count
ws.Cells(1, icol) = "Unique"
Application.DisplayAlerts = False
If Not Evaluate("=ISREF('xTRgWs_Sheet!A1')") Then
Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = "xTRgWs_Sheet"
Else
Sheets("xTRgWs_Sheet").Delete
Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = "xTRgWs_Sheet"
End If
Set xWSTRg = Sheets("xTRgWs_Sheet")
xTRg.Copy
xWSTRg.Paste Destination:=xWSTRg.Range("A1")
ws.Activate
For i = (titlerow + xTRg.Rows.Count) To lr
On Error Resume Next
If ws.Cells(i, vcol) <> "" And Application.WorksheetFunction.Match(ws.Cells(i, vcol), ws.Columns(icol), 0) = 0 Then
ws.Cells(ws.Rows.Count, icol).End(xlUp).Offset(1) = ws.Cells(i, vcol)
End If
Next
myarr = Application.WorksheetFunction.Transpose(ws.Columns(icol).SpecialCells(xlCellTypeConstants))
ws.Columns(icol).Clear
For i = 2 To UBound(myarr)
ws.Range(title).AutoFilter field:=vcol, Criteria1:=myarr(i) & ""
If Not Evaluate("=ISREF('" & myarr(i) & "'!A1)") Then
Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = myarr(i) & ""
Else
Sheets(myarr(i) & "").Move after:=Worksheets(Worksheets.Count)
End If
xWSTRg.Range(title).Copy
Sheets(myarr(i) & "").Paste Destination:=Sheets(myarr(i) & "").Range("A1")
ws.Range("A" & (titlerow + xTRg.Rows.Count) & ":A" & lr).EntireRow.Copy Sheets(myarr(i) & "").Range("A" & (titlerow + xTRg.Rows.Count))
Sheets(myarr(i) & "").Columns.AutoFit
Next
xWSTRg.Delete
ws.AutoFilterMode = False
ws.Activate
Application.DisplayAlerts = True
End Sub

3。コードを貼り付けたら、「F5」キーを押して実行してください。プロンプトボックスが表示されるので、データのヘッダー行を選択してください(下図参照)。

テーブルを分割するためのヘッダー行を選択する方法を示すスクリーンショット

4。次に「OK」をクリックすると、別のダイアログボックスが表示されます。ここで、テーブルを分割する基準となる列データを選択してください(下図参照)。

列の値でテーブルを分割するための列を選択する方法を示すスクリーンショット

5。「OK」をクリックすると、大きなテーブルが列の値に基づいて複数のワークシートに分割され、マスターシートの直後に新しいワークシートが挿入されます。これらのワークシートは、対応する列の値を使って自動的に名前付けされます(下図参照)。

列の値で分割した後に作成された複数のワークシートを示すスクリーンショット


VBA コードを使用して指定された行数に基づいて大きなテーブルを複数のテーブルに分割する

テーブルを行数に基づいて複数のテーブルに分割する必要がある場合は、次の VBA コードが便利です。

1。「ALT」+「F11」キーを押して、「Microsoft Visual Basic for Applications」ウィンドウを開きましょう。

2。「挿入」>「モジュール」をクリックし、表示される「モジュール」ウィンドウに以下のコードを貼り付けてください。

VBA コード:行数に基づいて大きなテーブルを複数のテーブルに分割する:

Sub Splitdatabyrows()
'Updated by Extendoffice 
Dim WorkRng As Range
Dim xRow As Range
Dim SplitRow As Integer
Dim xWs As Worksheet
Dim xTRg As Range
Dim xNTRg As Range
Dim xIER
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set xTRg = Application.InputBox("Please select the header row:", xTitleId, "", Type:=8)
If TypeName(xTRg) = "Nothing" Then Exit Sub
Set WorkRng = Application.InputBox("Please select the data range(exclude the header row):", xTitleId, WorkRng.Address, Type:=8)
If TypeName(WorkRng) = "Nothing" Then Exit Sub
SplitRow = Application.InputBox("Split Row Num", xTitleId, Type:=1)
If SplitRow = 0 Then Exit Sub
Set xWs = WorkRng.Parent
Set xRow = WorkRng.Rows(1)
xIER = WorkRng.Rows.Count
xIER = WorkRng.Row + xIER - 1
Application.ScreenUpdating = False
For i = 1 To WorkRng.Rows.Count Step SplitRow
    resizeCount = SplitRow
    If (xIER - xRow.Row + 1) < SplitRow Then
        resizeCount = (xIER - xRow.Row + 1)
    End If
    xRow.Resize(resizeCount).Copy
    Set xWs = Application.Worksheets.Add(after:=Application.Worksheets(Application.Worksheets.Count))
    If xIER > (xRow.Row + SplitRow - 1) Then
        xWs.Name = xRow.Row & " - " & (xRow.Row + SplitRow - 1)
    ElseIf xIER = xRow.Row Then
        xWs.Name = xRow.Row
    Else
        xWs.Name = xRow.Row & " - " & xIER
    End If
    Application.ActiveSheet.Range("A1").PasteSpecial
    Set xNTRg = Application.ActiveSheet.Range("A1")
    xTRg.Copy
    xNTRg.Insert
    Set xRow = xRow.Offset(SplitRow)
Next
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub

3。次に「F5」キーを押して表示されるダイアログボックスで、ヘッダー行を選択してください(下図参照)。

行数で分割するためのヘッダー行を選択する方法を示すスクリーンショット

4。次に「OK」をクリックし、2 番目のプロンプトボックスで、行数に基づいて分割したいデータ範囲を選択してください(下図参照)。

行で分割するためのデータ範囲を選択する方法を示すスクリーンショット

5。さらに「OK」ボタンをクリックし、3 番目のプロンプトボックスに分割する行数を入力してください(下図参照)。

Excel で分割する行数を入力する方法を示すスクリーンショット

6。その後、「OK」ボタンをクリックすると、マスターテーブルが下図のように指定された行数に基づいて複数のワークシートに分割されます。

行数で分割した後に作成された複数のワークシートを示すスクリーンショット


Kutools for Excel を使用して列の値または行数に基づいて大きなテーブルを複数のテーブルに分割する

上記のコードは多くのユーザーにとって難しく感じられるかもしれません。そこで、ここでは「Kutools for Excel」の優れた機能である「データの分割」をご紹介します。このユーティリティを使えば、キーカラムや指定した行数に基づいて、大きなテーブルを素早く簡単に複数のテーブルに分割できます。

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

1。分割したいデータ範囲を選択し、「KUTOOLS PLUS」>「データの分割」をクリックしてください(下図参照)。

2。「複数のワークシートにデータを分割する」ダイアログボックスで、必要に応じて設定を行ってください。

(1。)「分割の基準」セクションで、必要に応じて「列を指定」または「固定値」をお選びください。

(2。)「ルール」ドロップダウンリストから作成されるワークシートの名前を指定でき、さらにシート名に「プレフィックス」または「サフィックス」を追加することも可能です。

Kutools を使用してデータを分割する設定を示すスクリーンショット

3。「OK」ボタンをクリックすると、大きなテーブルが新しいワークブック内で複数の小さなテーブルに分割されます(下図参照)。

列の値に基づいてテーブルを複数のテーブルに分割行数に基づいてテーブルを複数のテーブルに分割
Kutools を使用して列の値ごとにワークシートに分割された Excel テーブルのスクリーンショットKutools を使用して行数ごとにワークシートに分割された Excel テーブルのスクリーンショット

Kutools for Excel— 300 以上の必須ツールでExcel を強化し、作業をより迅速・簡単に。AI 機能を活用して、スマートなデータ処理と生産性の飛躍的な向上を実現します。今すぐ入手


関連記事:

  • Excel でワークブックを個別のExcel ファイルに分割する
  • 大きなワークブックを個別のExcel ファイルに分割し、各ワークシートをそれぞれ別々のExcel ファイルとして保存したい場合があります。たとえば、ワークブックを複数のExcelファイルに分けて、それぞれを異なる担当者に渡すことで、特定の人に特定のデータのみを処理させることができます。これにより、データを安全に管理することが可能です。本記事では、各ワークシートに基づいて大きなワークブックを個別のExcel ファイルに分割する方法をご紹介します。
  • Excel でフルネームを最初の列と姓に分割する
  • 下図のスクリーンショットのように、名簿が1 つの列に記載されており、それを下図のように「名」列、「ミドルネーム」列、および「姓」列に分割する必要があるとしましょう。この課題を解決するための便利な方法をいくつかご紹介します。
  • Excel で長い列を複数の列に分割する
  • Excel で非常に長い列のデータがあると、閲覧が困難になることがあります。しかし、こうした長いリストをExcel で複数の列に分割できれば、ぐっと見やすくなり、非常に便利です。

最高の Office 業務効率化ツール

🤖KUTOOLS AI アシスタント:次に基づいてデータ分析を革新します:インテリジェント実行     コード生成  カスタム数式作成    データ分析とチャート生成  拡張機能呼び出し
人気の機能検索・ハイライト、または重複をマーキング     空白行を削除する     データを失うことなく列の結合またはセルを     数式を使用しない四捨五入...
スーパー LOOKUP複数条件 VLookup    複数値 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 でタブを使った編集と閲覧を有効にします。Publisher、Access、Visio、Project でもご利用いただけます。
  • 複数のドキュメントを、新しいウィンドウではなく、同じウィンドウ内の新しいタブで開いたり作成したりできます。
  • 日々の生産性を50%も向上させ、毎日数百回ものマウスクリックを削減します!

すべてのKutools アドインが、たった1 つのインストーラーで完結。

Kutools for Officeスイートには、Excel ・Word ・Outlook ・PowerPoint 用のアドインと Office Tab Pro が含まれており、複数の Office アプリを横断して作業するチームに最適です。

ExcelWordOutlookTabsPowerPoint
  • オールインワンスイート— Excel、Word、Outlook、PowerPoint 用アドイン+Office Tab Pro
  • インストーラー1 つ、ライセンス1 つ— 数分でセットアップ可能(MSI 対応)
  • 連携してさらにパワーアップ— Office アプリ全体で生産性が向上
  • 30 日間のフル機能トライアル— 登録不要、クレジットカード不要
  • 最高のお得感— 個別アドイン購入よりお得