Excelの列に基づいてデータを複数のワークシートに分割するにはどうすればよいですか?
膨大な数のデータを含むワークシートがあり、次に、データを複数のワークシートに分割する必要があるとします。 お名前 列(次のスクリーンショットを参照)、および名前はランダムに入力されます。 たぶん、最初にそれらを並べ替えてから、それらをXNUMXつずつコピーして他の新しいワークシートに貼り付けることができます。 ただし、これを繰り返しコピーして貼り付けるには、忍耐が必要です。 今日は、このタスクを解決するためのいくつかの簡単なトリックについて説明します。
VBAコードの列に基づいてデータを複数のワークシートに分割する
Kutools for Excelの列に基づいて、データを複数のワークシートに分割します
VBAコードの列に基づいてデータを複数のワークシートに分割する
列の値に基づいてデータをすばやく自動的に分割する場合は、次のVBAコードを選択することをお勧めします。 このようにしてください:
1。 を押し続けます Alt + F11 キーを押して アプリケーション向け Microsoft Visual Basic 窓。
2に設定します。 OK をクリックします。 インセット > モジュール、モジュールウィンドウに次のコードを貼り付けます。
Sub Splitdatabycol()
'updateby 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
Dim xWS 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
Set xWS = Sheets.Add(after:=Worksheets(Worksheets.Count))
xWS.Name = myarr(i) & ""
Else
xWS.Move after:=Worksheets(Worksheets.Count)
End If
xWSTRg.Range(title).Copy
xWS.Paste Destination:=xWS.Range("A1")
ws.Range("A" & (titlerow + xTRg.Rows.Count) & ":A" & lr).EntireRow.Copy xWS.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 ボタンをクリックし、XNUMX番目のプロンプトボックスで、分割する列データを選択してください。スクリーンショットを参照してください。
5。 次に、をクリックします。 OK、およびアクティブなワークシート内のすべてのデータは、列の値によって複数のワークシートに分割されます。 また、分割されたワークシートには、分割されたセル名で名前が付けられます。 スクリーンショットを参照してください:
Note:分割されたワークシートは、マスターワークシートがあるワークブックの最後に配置されます。
Kutools for Excelの列に基づいて、データを複数のワークシートに分割します
Excelの初心者として、この長いVBAコードは私たちにとってやや難しいものであり、私たちのほとんどは、必要に応じてコードを変更する方法さえ知りません。 ここでは、多機能ツールを紹介します-Kutools for Excel、 その 分割データ ユーティリティは、列に基づいてデータを複数のワークシートに分割するのに役立つだけでなく、行数でデータを分割することもできます。
注:これを適用する 分割データ、まず、ダウンロードする必要があります Kutools for Excel、次に機能をすばやく簡単に適用します。
インストールした後 Kutools for Excel、次のようにしてください。
1。 分割するデータの範囲を選択します。
2に設定します。 OK をクリックします。 クツールズプラス > ワークシート > 分割データ、スクリーンショットを参照してください:
3。 の中に データを複数のワークシートに分割する ダイアログボックスでは、次のことを行う必要があります。
1)。 選択する 特定の列 内のオプション に基づいて分割 セクションをクリックし、ドロップダウンリストでデータを分割する列の値を選択します。 (データにヘッダーがあり、それらを新しい分割ワークシートごとに挿入する場合は、チェックしてください。 私のデータにヘッダーがあります オプション。)
2)。 次に、分割ワークシート名を下で指定できます。 新しいワークシート名 セクションで、ワークシート名のルールを キャンペーンのルール ドロップダウンリスト、あなたは追加することができます 接頭辞 or サフィックス シート名にも。
3)。 クリック OK ボタン。 スクリーンショットを参照してください:
4。 これで、データは新しいワークブックの複数のワークシートに分割されます。
クリックしてKutoolsfor Excelと無料トライアルを今すぐダウンロードしてください!
Kutools for Excelの列に基づいて、データを複数のワークシートに分割します
Kutools for Excel 300以上の便利なExcelツールが含まれています。 30日以内に制限なしで無料でお試しいただけます。 今すぐ無料トライアルをダウンロードしてください!
関連記事:
行数でデータを複数のワークシートに分割するにはどうすればよいですか?
最高のオフィス生産性向上ツール
🤖 | 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% 向上させ、毎日何百回もマウス クリックを減らすことができます!