Excelで大きなテーブルを複数の小さなテーブルに分割するにはどうすればよいですか?
複数の列と数百または数千行のデータを含む大きなワークシートがある場合、次の結果を得るために、列の値または行数に基づいて、この大きなテーブルを複数の小さなテーブルに分割します。 Excelでこのタスクをどのように処理できますか?
メインテーブル | 列の値でテーブルを複数のテーブルに分割する | 行数でテーブルを複数のテーブルに分割 | |
VBAコードを使用して、列の値に基づいて大きなテーブルを複数のテーブルに分割します
VBAコードを使用して、特定の行数に基づいて大きなテーブルを複数のテーブルに分割します
驚くべき機能を備えた列値または行数に基づいて、大きなテーブルを複数のテーブルに分割します
VBAコードを使用して、列の値に基づいて大きなテーブルを複数のテーブルに分割します
この大きなテーブルを特定の列の値に基づいて複数のテーブルに分割するには、次のVBAコードを使用すると便利です。 このようにしてください:
1。 を押し続けます Alt + F11 キーを押して アプリケーション向け Microsoft Visual Basic 窓。
2に設定します。 OK をクリックします。 インセット > モジュール、次のコードをに貼り付けます モジュール 窓。
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 をクリックします。 OK、この大きなテーブルは、マスターシートの後にある列の値によって複数のワークシートに分割されています。 また、新しいワークシートには列の値で名前が付けられます。 スクリーンショットを参照してください:
VBAコードを使用して、特定の行数に基づいて大きなテーブルを複数のテーブルに分割します
行数に基づいてテーブルを複数のテーブルに分割する必要がある場合は、次のVBAコードが役立ちます。
1。 を押し続けます Alt + F11 キーを押して アプリケーション向け Microsoft Visual Basic 窓。
2に設定します。 OK をクリックします。 インセット > モジュール、次のコードをに貼り付けます モジュール 窓。
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、およびXNUMX番目のプロンプトボックスで、行数で分割するデータ範囲を選択します。スクリーンショットを参照してください。
5。 そして、クリックし続けます OK ボタンのXNUMX番目のプロンプトボックスに、分割する行数を入力します。スクリーンショットを参照してください。
6。 次に、をクリックします。 OK ボタンをクリックすると、下のスクリーンショットに示すように、マスターテーブルが行数に基づいて複数のワークシートに分割されています。
驚くべき機能を備えた列値または行数に基づいて、大きなテーブルを複数のテーブルに分割します
上記のコードはほとんどのユーザーにとって難しいかもしれませんが、ここでは、驚くべき機能を紹介します-分割データ of Kutools for Excel。 このユーティリティを使用すると、キー列または行数によって大きなテーブルを複数のテーブルにすばやく簡単に分割できます。
ヒント:これを適用する 分割データ 機能、まず、ダウンロードする必要があります Kutools for Excel、次に機能をすばやく簡単に適用します。
インストールした後 Kutools for Excel、次のようにしてください。
1。 分割するデータ範囲を選択し、をクリックします クツールズプラス > 分割データ、スクリーンショットを参照してください:
2。 の中に データを複数のワークシートに分割する ダイアログボックスで、必要に応じて設定を指定します。
(1.)選択 特定の列 or 固定行 に基づいて分割 必要に応じてセクション。
(2.)から新しいワークシート名を指定します キャンペーンのルール ドロップダウンリスト、あなたは追加することができます 接頭辞 or サフィックス シート名にも。
3。 次に、をクリックします。 Ok ボタンをクリックすると、新しいワークブックで大きなテーブルが複数の小さなテーブルに分割されます。 スクリーンショットを参照してください:
列の値でテーブルを複数のテーブルに分割する | 行数でテーブルを複数のテーブルに分割 |
クリックしてKutoolsfor Excelと無料トライアルを今すぐダウンロードしてください!
より相対的な記事:
- ワークブックを分割してExcelでExcelファイルを分離する
- 大きなワークブックを分割してExcelファイルを分離し、ワークブックの各ワークシートを個別のExcelファイルとして保存する必要がある場合があります。 たとえば、ブックを複数の個別のExcelファイルに分割し、各ファイルを別の人に渡して処理することができます。 そうすることで、特定の人に特定のデータを処理させ、データを安全に保つことができます。 この記事では、大きなワークブックを分割して、各ワークシートに基づいてExcelファイルを分離する方法を紹介します。
- Excelでフルネームを姓名に分割する
- 下のXNUMXつの列に最初のスクリーンショットが示すように名前名簿があり、次のスクリーンショットに示すように、フルネームを名の列、ミドルネームの列、姓の列に分割する必要があるとします。 この問題を解決するのに役立ついくつかのトリッキーな方法があります。
- Excelで長い列を複数の列に分割する
- Excelに長い列のデータがある場合、それらを表示するときに面倒になります。 しかし、Excelでこのような長いリストを複数の列に分割できると、見やすくなります。
- Excelで単語または数値を別々のセルに分割する
- ワークシートに数字や単語のリストがあり、次のスクリーンショットのようにセルの内容を異なるセルの文字に分割する必要がある場合、Excelでこのジョブをどのように処理できますか?
- 長いリストをExcelで等しいグループに分割する
- 次のスクリーンショットのように、複数の等しいグループに分割する必要のあるデータの長いリストがある場合、Excelでこのタスクをすばやく簡単に処理するにはどうすればよいですか?
最高のオフィス生産性ツール
Kutools for Excelはほとんどの問題を解決し、生産性を80%向上させます
- スーパーフォーミュラバー (複数行のテキストと数式を簡単に編集できます); 読書レイアウト (多数のセルを簡単に読み取って編集する); フィルター範囲に貼り付け...
- セル/行/列をマージする およびデータの保持。 分割セルコンテンツ; 重複する行と合計/平均を組み合わせる...重複セルを防止します。 範囲を比較する...
- [複製]または[一意]を選択します 行; 空白行を選択 (すべてのセルは空です); スーパーファインドとファジーファインド 多くのワークブックで; ランダム選択...
- 正確なコピー 数式参照を変更せずに複数のセル。 参照の自動作成 複数のシートに; 箇条書きを挿入、チェックボックスなど...
- お気に入りの数式をすばやく挿入する、範囲、チャート、写真; セルを暗号化する パスワード付き。 メーリングリストを作成する そしてメールを送る...
- テキストを抽出、テキストの追加、位置による削除、 スペースを削除する; ページング小計の作成と印刷。 セルの内容とコメントを変換する...
- スーパーフィルター (フィルタースキームを保存して他のシートに適用します); 高度な並べ替え 月/週/日、頻度など。 特殊フィルター 太字、斜体...
- ワークブックとワークシートを組み合わせる; キー列に基づいてテーブルをマージします。 データを複数のシートに分割; xls、xlsx、PDFをバッチ変換...
- ピボットテーブルのグループ化 週番号、曜日など... ロック解除された、ロックされたセルを表示する さまざまな色で; 式/名前を持つセルを強調表示する...
- Word、Excel、PowerPointでタブ付きの編集と読み取りを有効にする、パブリッシャー、アクセス、Visioおよびプロジェクト。
- 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
- 生産性を 50% 向上させ、毎日何百回もマウス クリックを減らすことができます!