ホームページ >トピック >excel >実践的な Excel スキルの共有: ワークシートをすばやく分割する 2 つの方法

実践的な Excel スキルの共有: ワークシートをすばやく分割する 2 つの方法

青灯夜游
青灯夜游転載
2023-01-30 19:38:0510653ブラウズ

ワークシートが要約される場合、ワークシートは分割されます。ワークシートをすばやく分割するにはどうすればよいですか?この記事では、ワークシートを素早く分割して効率を 99.99% 向上させる 2 つの方法を紹介します。

実践的な Excel スキルの共有: ワークシートをすばやく分割する 2 つの方法

こんな問題に遭遇したことはありませんか。すべての情報をテーブルにまとめた後、この大きなテーブルを特定の条件に従って並べ替える必要があります。条件は次のように分割されます。複数のワークシート。どうすればこれを達成できるでしょうか?おそらく最も愚かな方法は、元のワークシートのデータをフィルターしてから、それをコピーして新しいワークシートに貼り付けることです。ただし、この方法は大量のデータがある場合には適しておらず、新しいワークシートの名前も変更する必要があります。 1つは面倒なことです。今日は、ワークシートを分割するための 2 つの簡単で実用的な方法を紹介します。

図に示すように、このワークシートの内容を都市ごとに複数のワークシートに分割する必要があります。

実践的な Excel スキルの共有: ワークシートをすばやく分割する 2 つの方法

タイプ 1: 非常に高速な分割 - VBA (コードは記事に記載されています)

VBA は、大規模なデータを処理する EXCEL です。反復作業の量 使用するのに最適なツール。しかし、多くの人は VBA について何も知らないので、今日はコードの一部を共有し、仕事で使用できるように実際のテーブルに応じてコード値を変更する方法を詳しく説明します。

(1) Alt F11 を押して VBA エディタを開き、[挿入] メニューの [モジュール] をクリックします。

実践的な Excel スキルの共有: ワークシートをすばやく分割する 2 つの方法

(2) 右側のコードウィンドウに次のコードを入力します。手で入力したくない場合は、グループに参加して、準備されたコード ファイルをダウンロードし、コピーして貼り付けるだけで済みます。

サブ分割テーブル()

    Dim i, iRow, iCol, t, iNum As Integer, sh As Worksheet, str As String
    Application.ScreenUpdating = False
    With Worksheets("Sheet1")
     iRow = .Range("A65535").End(xlUp).Row
     iCol = .Range("IV1").End(xlToLeft).Column
     t = 3
        For i = 2 To iRow
            str = .Cells(i, t).Value
            On Error Resume Next
            Set sh = Worksheets(str)
            If Err.Number <> 0 Then
                Set sh = Worksheets.Add(, Worksheets(Worksheets.Count))
                sh.Name = str
            End If
           
            sh.Range("A1").Resize(1, iCol).Value = .Range("A1").Resize(1, iCol).Value
            iNum = sh.Range("A" & Rows.Count).End(xlUp).Row
            sh.Range("A" & iNum + 1).Resize(1, iCol).Value = .Range("A" & i).Resize(1, iCol).Value
            Next i
     End With
Application.ScreenUpdating = True
End Sub

コード分析:

ここでの赤いテキストは、実際の状況に応じて変更する必要があるコード パラメーターを示します。' はコメントを示すために使用されます。次のテキストは、コードの動作には影響しませんが、コードを説明するためにのみ使用されます。注釈テキストは、ここでは特に灰色で示されています。

サブ 分割テーブル 'ファイル名。独自のファイル名に従って変更します

Dim i、iRow、iCol、t、iNum を整数として、sh をワークシートとして、str を文字列として

# Application.ScreenUpdating = False '画面の更新をオフにする

With Worksheets("Sheet1")'二重引用符は、実際のワークブック名​​ , です。ワークブック名​​の変更

iRow = .Range("A65535").End(xlUp).Row 'A から取得最後の行から始まるワークシート内の行数。通常、Range の列パラメータのみが変更されます。ワークシートの有効範囲を B 列から開始する場合は、の場合、値は B65535 です。

iCol = .Range("IV1").End(xlToLeft).Column'最後の列から ( IV ) 行 1 から始まるワークシートの列数を取得します。通常、Range の行パラメーターのみが変更されます。ワークシートの有効範囲が必要な場合は、 行 2 から始まり、値は IV2

## になります。 t = 3 't は列の数です。たとえば、# を押した場合に、どの列に基づいて分割するかを設定します。 ##E列分割、これは t=5

For i =

2 To iRow 'i は行数であり、分割値を取得する行を設定します。テーブルの実際の変更

# str = .Cells(i, t).Value

'セル(i, t)の値を分割テーブル名として取得します # エラー時は次へ再開

Set sh = Worksheets(str)

'上記で取得した値に基づいて名前を付けたワークシートを作成します## If Err.Number 0 then

'

このワークシートが存在しない場合は、ワークシートを追加して名前を付けます Set sh = Worksheets.Add(, Worksheets(Worksheets.Count))

## sh.Name = str

End If '

このワークシートが存在する場合

sh.Range("A1").Resize(1, iCol).Value = .Range("A1").Resize(1, iCol).Value 'ワークシートのタイトルを取得します。通常、Range の列値と Resize# の行値のみが取得されます。仕事など ## が変更されます。 テーブルのタイトルは B 列の 3 行から始まり、このコードは sh.Range("B1").Resize( 3、 iCol).Value = .Range("B1").Resize(3, iCol).Value '

## iNum = sh.Range("

A" & Rows.Count).End(xlUp).Row ' 通常、Range の列値のみが変更されます。たとえば、ワークシートはB列の先頭、ここは Range("B" & Rows.Count).End(xlUp).Row## になります。 sh.Range("

A" & iNum) 1).Resize(1, iCol).Value = .Range("A" & i).Resize(1, iCol).Value

' ワークシート データを新しいテーブルに貼り付けます。通常、Range の列値のみが変更されます。ワークシートが # のものの場合、 ##B 列が開始する場合は、BRange("B") に変更します。 & iNum 1).Resize(1, iCol).Value = .Range("B" & i).Resize(1, iCol).Value 次は

## で終了 Application.ScreenUpdating = True

'画面更新をオンにするEnd Sub

(3) コードの入力が完了したら、メニューバーの「サブプロセスの実行」をクリックします。このようにしてワークシートが分割されます。

次のように完了します。

実践的な Excel スキルの共有: ワークシートをすばやく分割する 2 つの方法

このようにして、ワンクリックでワークシートの分割が完了します。

実践的な Excel スキルの共有: ワークシートをすばやく分割する 2 つの方法タイプ 2: 従来の分割 - ピボット テーブル

ピボット テーブルは非常に使いやすく、データ統計分析やフィルター ページの使用において絶対的な利点があるだけではありません。ワークシートを分割する機能を実現するのにも役立ちます。手順は次のとおりです。

(1) データ ソース内の任意のセルを選択し、[挿入] タブの [ピボット テーブル] をクリックします。既存のワークシートを選択し、「OK」をクリックします。

実践的な Excel スキルの共有: ワークシートをすばやく分割する 2 つの方法

(2) 分割するフィールド「City」をフィルターフィールドに、「Date」フィールドと「Salesperson」フィールドを行フィールドに、「Sales」フィールドを値フィールド。

実践的な Excel スキルの共有: ワークシートをすばやく分割する 2 つの方法

(3) 新しいワークシートを生成するときにテーブル形式の形成を容易にするために、ピボット テーブルの形式を変更します。

[ピボットテーブル ツール] の [デザイン] タブにある [レポート レイアウト] ドロップダウン メニューで [テーブルとして表示] を選択します。

実践的な Excel スキルの共有: ワークシートをすばやく分割する 2 つの方法

[ピボットテーブル ツール] の [デザイン] タブにある [レポート レイアウト] ドロップダウン メニューで [すべてのアイテム ラベルを繰り返す] を選択します。

実践的な Excel スキルの共有: ワークシートをすばやく分割する 2 つの方法

[ピボットテーブル ツール] の [デザイン] タブにある [小計] ドロップダウン メニューで [小計を表示しない] を選択します。

実践的な Excel スキルの共有: ワークシートをすばやく分割する 2 つの方法

完成した結果は次のとおりです。

実践的な Excel スキルの共有: ワークシートをすばやく分割する 2 つの方法

(4) 最後に、ピボット テーブルを各ワークシートに分割します。 [ピボット テーブル ツール] の [分析] タブの [ピボット テーブル] 機能ブロックにある [オプション] ドロップダウン メニューから [レポート フィルター ページの表示] を選択し、レポート フィルター ページのフィールドとして [都市] を選択します。表示される。

実践的な Excel スキルの共有: ワークシートをすばやく分割する 2 つの方法

# (5) 後続の処理を容易にするために、ピボット テーブルを通常のテーブルに変更します。最初のワークシートを選択します 「北京」、Shift キーを押しながら最後のワークシート「重慶」をクリックして、ワークシート グループを形成します。これにより、すべてのワークシートに対してバッチで統一された操作が可能になります。

実践的な Excel スキルの共有: ワークシートをすばやく分割する 2 つの方法

すべてを選択し、値としてコピーして貼り付けます。

実践的な Excel スキルの共有: ワークシートをすばやく分割する 2 つの方法

最初の 2 行を削除し、日付列の幅を調整すれば完了です。

実践的な Excel スキルの共有: ワークシートをすばやく分割する 2 つの方法

# ピボットテーブル方式の方が使いやすいですが手順が多く、VBA は操作が簡単ですが覚えることが多くなります。皆さんそれぞれの状況に合わせて使い分けていますので、良いと思ったらぜひ「いいね!」をお願いします!

関連する学習の推奨事項: Excel チュートリアル

以上が実践的な Excel スキルの共有: ワークシートをすばやく分割する 2 つの方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はitblw.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。