Excelのシートを複数のワークシートに分割する方法(3つの方法)-。

  • これを共有
Hugh West

大きなデータセットには、同じ列の値が複数含まれていることがあります。 同じカテゴリ(部署、月、地域、州など)の値やお好みの値を別のワークシートまたはワークブックに分割することができます。 この記事では、Excelシートを複数のワークシートに分割する方法を説明するつもりです。

この説明を分かりやすくするために、サンプルデータセットを使って説明します。 このデータセットには、異なる月の売上情報を表す4つの列があります。 これらの列は セールスパーソン、地域、月 売上高 .

練習用としてダウンロード

Excelのシートを複数のワークシートに分割する.xlsm

Excelのシートを複数のワークシートに分割する方法

1.フィルタとコピーの使用

任意のシートから、データを複数のシートに分割するために フィルター .

まず、適用したいセル範囲を選択します。 フィルター .

➤ ここでは、セル範囲を選択しました。 B3:E15 .

次に データ タブ>> 選択 フィルター .

を使用することもできます。 Ctrl + Shift + L 適用する フィルター キーボード操作 .

今すぐ フィルター は、選択されたセル範囲に適用されます。

次に のカラムでデータを分割したいので の値です。

そこから私は せんたくされた 以外 1月 をクリックします。 よっしゃー .

今、すべての値で でございます 1月 はフィルタリングされます。

それから。 コピー データと 貼り付け を新しいワークシートにコピーします。

ここでは、新しいシートに名前を付けました 1月 のすべての販売情報が表示されます。 1月 が紹介されています。

それ以外の部分については 月数 の場合は、同じ手順で操作できます。

もう一度、クリックします。 のカラムでデータを分割したいので の値です。

そこから 選び出す 以外 2月 をクリックします。 よっしゃー .

の値はすべて 2月 はフィルタリングされます。

それから。 コピー データと 貼り付け を新しいワークシートにコピーします。

その後、新しいシートに名前を付けました。 2月 このように、すべての販売情報が表示されます。 2月 が紹介されています。

もう一度、クリックします。 のカラムでデータを分割したいので の値です。

そこから 選び出す 以外 3月 をクリックします。 よっしゃー .

のすべての値が表示されます。 3月 はフィルタリングされます。

それから。 コピー データと 貼り付け を新しいワークシートにコピーします。

最終的に、新しいシートに名前を付けました。 3月 のすべての販売情報が表示されます。 3月 が紹介されています。

続きを読む Excelのシートを行を基準にして複数のシートに分割する

2.VBAでExcelのシートを行数で分割する

手順を始める前に、最初の行からデータを開始しなければならないことを覚えておく必要があります。

では、開いてみてください。 デベロッパー タブ>> 選択 ビジュアルベーシック

の新しいウィンドウが開きます。 Microsoft Visual Basic for Applications .

では、から インサート >> 選択 モジュール

A モジュール はそこで開かれます。

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

 Sub SplitExcelSheet_into_MultipleSheets() Dim WorkRng As Range Dim xRow As Range Dim SplitRow As Integer Dim xWs As Worksheet On Error Resume Next EcelTitleId = "Split Row Numt" Set WorkRng = Application.Selection Set WorkRng = Application.InputBox("Range", ExcelTitleId, WorkRng.Address, Type:=8) SplitRow = Application.InputBox("Split Row Num", ExcelTitleId, 4, Type:=1) Set xWs = WorkRng.Parent...Set xRow = WorkRng.Rows(1) Application.ScreenUpdating = False For i = 1 To WorkRng.Rows.Count Step SplitRow resizeCount = SplitRow If (WorkRng.Rows.Count - xRow.Row + 1) <SplitRow Then resizeCount = WorkRng.Rows.Count - xRow.Row + 1 xRow.Resize(resizeCount).Copy Application.Worksheets.Add after:=Application.Worksheets(Application.Worksheets.Count)となるようにします。Application.ActiveSheet.Range("A1").PasteSpecial Set xRow = xRow.Offset(SplitRow)次のApplication.CutCopyMode = False Application.ScreenUpdating = True End Sub 

というサブプロシージャーを作成しました。 ExcelSheet_into_multipleSheetsの分割 .

ここで、いくつかの変数を宣言しました。 WorkRng xRow かわりに レンジ いっしゅ

スプリットロウ かわりに 整数 矢張り エックスダブリューズ かわりに ワークシート のタイプになります。

また、中古 ExcelTitleId を贈る。 ダイアログボックス のタイトルが表示されます。

スプリットローナンバーを提供しました 4 というのは、私のデータセットでは、4行でデータを分割するためです。 1月 は4列です。

最後に、使用した について ループさせる スプリットロウ 与えられたセル範囲が終了するまで

それから。 セーブ を実行し、ワークシートに戻ってください。

では、開いてみてください。 デベロッパー タブ>> から インサート >> 選択 ボタン

A ダイアログボックス がポップアップ表示されます。

を割り当てるには マクロ とうさいされた ボタン .

選択 ExcelSheet_into_Multiplesheetsを分割する。 から マクロ名 をクリックします。 よっしゃー .

をクリックするだけです。 ボタン を実行します。 マクロ .

では、a ダイアログボックス がポップアップ表示されますので、そこにデータを入れてください の範囲である。

➤ ここでは、セル範囲を選択しました。 B1:E12

をクリックします。 よっしゃー .

別の ダイアログボックス がポップアップ表示され、データセットを分割するコードで指定した選択行数が表示されます。

➤ コードで、提供したのは 4 かわりに スプリットロー数

合計で 12 漕ぎ着ける 4列 ある筈だ 3枚 .

シート1 をクリックすると、最初の4行のデータが表示されます。

シート2 をクリックすると、5行目から8行目までのデータが表示されます。

シート3 をクリックすると、最後の4行のデータが表示されます。

続きを読む Excel VBA:行を基準にシートを複数に分割する

類似の読み物

  • エクセルで画面を分割する方法(3つの方法)
  • [修正:] Excel View Side by Side が動作しない。
  • エクセルでシートを区切る方法(6つの効果的な方法)
  • 2つのExcelファイルを別々に開く(5つの簡単な方法)
  • Excelのシートを複数のファイルに分割する方法(3つの簡単な方法)

3.列を基準にExcelシートを複数のワークブックに分割する

手順を始める前に、最初の行と最初の列からデータを開始する必要があることを覚えておく必要があります。

では、開いてみてください。 デベロッパー タブ>> 選択 ビジュアルベーシック

の新しいウィンドウが開きます。 Microsoft Visual Basic for Applications .

では、から インサート >> 選択 モジュール

A モジュール はそこで開かれます。

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

 Sub SplitSheetIntoMultipleWorkbooksBasedOnColumn() Dim objWorksheet As Excel.Worksheet Dim nLastRow, nRow, nNextRow As Integer Dim strColumnValue As String Dim objDictionary As Object Dim varColumnValues As Variant Dim objExcelWorkbook As Excel.Workbook Dim objSheet As Excel.Worksheet Set objWorksheet = アクティブシート nLastRow = ActiveSheet No No.objWorksheet.Range("A" & objWorksheet.Rows.Count).End(xlUp).Row Set objDictionary = CreateObject("Scripting.Dictionary") For nRow = 2 To nLastRow strColumnValue = objWorksheet.Range("C" & nRow).Value If objDictionary.Exists(strColumnValue) = False Then objDictionary.Add strColumnValue, 1 End If Next varColumnValues = objDictionary.KeysFor i = LBound(varColumnValues) To UBound(varColumnValues) varColumnValue = varColumnValues(i) Set objExcelWorkbook = Excel.Application.Workbooks.Add Set objSheet = objExcelWorkbook.Sheets(1) objSheet.Name = objWorksheet.Name objWorksheet.Rows(1).EntireRow.Copy objSheet.Activate objSheet.Range("A1").Select objSheet.PasteFor nRow = 2 To nLastRow If CStr(objWorksheet.Range("C" & nRow).Value) = CStr(varColumnValue) Then objWorksheet.Rows(nRow).EntireRow.Copy nNextRow = objWorksheet.Range("A" & objWorksheet.Rows.Count).End(xlUp).Row + 1 objSheet.Range("A" & nNextRow).Select objSheet.PasteobjSheet.Columns("A:D").AutoFit End If Next Next End Sub 

というサブプロシージャーを作成しました。 SplitSheetIntoMultipleWorkbooksBasedOnColumn(シートイントゥマルチプルワークブックスプリットオンカラム で、複数の変数を宣言しています。

3を使用しました。 FOR ループス 第1回 FOR ループは、2行目から、特定のカラムを取得するための値を持つ最後の行まで数えます。 のインスタンスを与えています。 "C" の欄があります。

あなたのケースに変更することができます

第2回 について ループは、新しいExcelワークブックを作成します。

第3回 フォ rループは同じ列のデータをコピーします。 "C" の値を、2行目から値のある最後の行まで、新しいワークブックに追加します。

それから。 保存 を実行し、ワークシートに戻ってください。

では、開いてみてください。 表示 タブ>> から マクロ >> 選択 マクロを見る

A ダイアログボックス がポップアップ表示されます。

では、その中から マクロ名 を選択します。 SplitSheetIntoMultipleWorkbooksBasedOnColumn(シートイントゥマルチプルワークブックスプリットオンカラム の中のワークブックも選択します。 のマクロ .

最後に 実行 選択された マクロ .

最後に、3 つの異なるワークブックが作成されたことを確認します。 月数 並み居る C . 書籍1 にとって 1月 .

があります。 書籍2 に対して 2月 .

があります。 書籍3 にとって 3月 .

続きを読む Excelのシートを列の値に基づいて複数のシートに分割する方法

結論

この記事では、Excelシートを複数のワークシートに分割する方法の3つの方法を説明しました。 あなたのExcelシートを複数のワークシートに分割するために説明した方法のいずれかに従うことができます。 あなたがこれらの方法に関する任意の混乱や質問がある場合には、以下のコメントかもしれません。

Hugh West は、業界で 10 年以上の経験を持つ、非常に経験豊富な Excel トレーナー兼アナリストです。彼は会計と財務の学士号と経営管理の修士号を取得しています。ヒューは教えることに情熱を持っており、理解しやすい独自の教育アプローチを開発しました。彼の Excel に関する専門知識は、世界中の何千人もの学生や専門家がスキルを向上させ、キャリアで優れた成果を上げるのに役立ってきました。 Hugh はブログを通じて知識を世界に共有し、個人や企業が潜在能力を最大限に発揮できるよう無料の Excel チュートリアルとオンライン トレーニングを提供しています。