ベンダー向けの個々のワークシートの印刷(Microsoft Excel)
ミッチェルのワークシートには、彼の会社のhttp://www.formville.com/C17_free-purchase-orders.html [注文書]の1年間のすべてを表す多くのデータがあります。データは、ベンダー名を含む列Cでソートされます。 Mitchellは、ベンダーごとに、それらの行のすべてのデータを含む個別のページを印刷したいと考えています。彼は、ベンダー固有のシートの印刷を自動化する方法があるかどうか疑問に思います。
Excelの多くのものと同様に、この問題に対して実行できるアプローチは複数あります。このヒントでは、4つのアプローチを見ていきます。 4つのアプローチはすべて、データがベンダー名の列(列C)に従ってソートされ、データの各列(名前、日付、PO番号、ベンダーなど)に列見出しがあることを前提としています。
小計の使用
小計を使用してベンダー固有のシートを印刷するには、データ内のセルを選択することから始めます。 (列Cのセルが最適です。)データが連続していない場合は、すべてを手動で選択する必要がある場合があります。ただし、隣接している場合は、単一のセルを選択するだけで十分です。次に、次の手順に従います。
。リボンの[データ]タブを表示します。
。 [アウトライン]グループで、[小計]ツールをクリックします。 Excelに[小計]ダイアログボックスが表示されます。 (図1を参照)
。 At Each ChangeInドロップダウンリストがVendorに設定されていることを確認します。 (列Cの名前を使用します。)これは、Excelが小計を挿入する場所を示します。
。 [関数の使用]ドロップダウンリストを[カウント]に設定する必要があります。
。 [小計の追加先]ボックスのリストを使用して、[ベンダー(列C)]列を選択します。ここにカウントが追加されます。
。 [現在の小計を置き換える]チェックボックスがオンになっていることを確認します。
。 [グループ間の改ページ]チェックボックスがオンになっていることを確認します。
。 [データの下に要約]チェックボックスがオンになっていることを確認します。
。 [OK]をクリックします。
Excelは小計をワークシートに配置しますが、新しいベンダーごとに改ページを配置する必要もあります。 (これは上記の手順7によるものです。)改ページはすぐにはわからない場合がありますが、ワークシートを印刷すると改ページが機能します。
印刷すると、最終的には各ベンダーの印刷ページになります。各ページの最後の行のすぐ下にある小計は、その特定のベンダーに対して印刷された注文書の数を示します。
フィルタリングされたデータの使用
データのフィルタリングは非常に簡単です。これらのタイプのレポートを頻繁に印刷する必要がない場合は、これが適切なアプローチです。繰り返しますが、データが連続していない場合を除いて、データ内のセルを選択することから始めます。
(その場合、すべてのデータを手動で選択する必要があります。)次に、次の手順に従います。
。リボンの[データ]タブを表示します。
。 [並べ替えとフィルター]グループ内の[フィルター]ツールをクリックします。 Excelは、行1の各列ラベルの横に[オートフィルター]ドロップダウンインジケーターを表示する必要があります。
。仕入先列(列C)のドロップダウンインジケータを使用して、印刷する仕入先の名前を選択します。リストは自動的にフィルタリングされ、そのベンダーからの注文書のみが表示されます。
。通常どおりにページを印刷します。印刷されたレポートには、手順3で指定したベンダーの注文書のみが表示されます。
他のベンダーのレポートを印刷する場合は、フィルターを変更して(ステップ3)、再印刷する(ステップ4)だけです。完了したら、リボンの[データ]タブにある[フィルター]ツールをもう一度クリックして、フィルターを削除できます。
ピボットテーブルの使用
必要なレポートを作成するもう1つの高速な方法は、Excelのピボットテーブル機能を使用することです。 _ExcelTips_の他の問題で取り上げられているため、ここではピボットテーブルの作成方法については説明しません。ピボットテーブルはほぼ任意の方法で設定できますが、[ベンダー]フィールドが[ピボットテーブルフィールド]ペインの[フィルター]グループにあることを確認する必要があります。 (図2を参照)
図2.ピボットテーブルの設定。
次に、Excelのバージョンに応じて、リボンの[オプション]タブまたは[分析]タブを表示します。 (これらのタブは、ピボットテーブル内のセルを選択した場合にのみ表示されます。)リボンの左側にある[ピボットテーブル]グループで、[オプション]ドロップダウンリストをクリックし、[レポートフィルターページの表示]を選択します。 (このオプションは、前述のように、[ベンダー]フィールドが[フィルター]グループにあることを確認した場合にのみ使用できます。)Excelは、[レポートフィルターページの表示]ダイアログボックスを表示します。 (図3を参照)
図3. [レポートフィルターページの表示]ダイアログボックス。
[フィルター]グループに[ベンダー]フィールド以外を追加した場合を除き、ダイアログボックスには1つのフィールドのみが表示されます。リストされているフィールドが複数ある場合は、必ずベンダーフィールドをクリックしてください。 [OK]をクリックすると、Excelはデータテーブル内のベンダーごとに個別のピボットテーブルワークシートを作成します。ピボットテーブルに含めることを選択した情報に応じて、これらはベンダーに優れたレポートを作成できます。その後、ワークシートを印刷して、必要なレポートを取得できます。
マクロの使用
必要なデータを提供するためにマクロを設定する方法はたくさんあります。個人的には、データを調べてベンダーごとに新しいワークシートを作成するマクロが好きです。これが次のマクロの機能です。データからベンダーのリストをコンパイルし、ベンダーごとに名前が付けられたワークシートを作成します。次に、元のワークシートから新しく作成されたワークシートに情報をコピーします。
Sub CreateVendorSheets() ' To use this macro, select the first cell in ' the column that contains the vendor names. Dim sTemp As String Dim sVendors(99) As String Dim iVendorCounts(99) As Integer Dim iVendors As Integer Dim rVendorRange As Range Dim c As Range Dim J As Integer Dim bFound As Boolean ' Find last row in the worksheet Set rVendorRange = ActiveSheet.Range(Selection, _ ActiveSheet.Cells(Selection.SpecialCells(xlCellTypeLastCell).Row, _ Selection.Column)) ' Collecting all the vendor names in use iVendors = 0 For Each c In rVendorRange bFound = False sTemp = Trim(c) If sTemp > "" Then For J = 1 To iVendors If sTemp = sVendors(J) Then bFound = True Next J If Not bFound Then iVendors = iVendors + 1 sVendors(iVendors) = sTemp iVendorCounts(iVendors) = 0 End If End If Next c ' Create worksheets For J = 1 To iVendors Worksheets.Add After:=Worksheets(Worksheets.Count) ActiveSheet.Name = sVendors(J) Next J ' Start copying information Application.ScreenUpdating = False For Each c In rVendorRange sTemp = Trim(c) If sTemp > "" Then For J = 1 To iVendors If sTemp = sVendors(J) Then iVendorCounts(J) = iVendorCounts(J) + 1 c.EntireRow.Copy Sheets(sVendors(J)). _ Cells(iVendorCounts(J), 1) End If Next J End If Next c Application.ScreenUpdating = True End Sub
マクロの冒頭で述べたように、マクロを実行する前に、ベンダー列のデータの最初のセルを選択する必要があります。完了すると、ベンダーごとに1つのワークシートが作成され、必要に応じてフォーマットして印刷できます。 (作成された各ワークシートに列見出し情報やその他の情報を配置するコードを追加することで、マクロをさらに便利にすることができます。)完了したら、次にマクロを実行するときに、それらのベンダーのワークシートを削除する必要があります。問題が発生することはありません。
注:
このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
link:/ excelribbon-ExcelTipsMacros [ここをクリックして、新しいブラウザタブでその特別なページを開きます]
。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(13633)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice365のExcelに適用されます。