生のテーブルをデータソースとして使用しているExcelのピボットテーブルがあります。このピボットテーブルは、行のグループ化と合計を行っています。
この新しいピボットテーブルの結果を、このピボットテーブルのデータソースとして使用して、このデータをさらに変更します。
これはExcelで可能ですか?あなたはそれを「ネストされたピボットテーブル」と呼ぶことができると思います
新しいシート(新しいピボットテーブルを作成する場所)で、キーの組み合わせ(Alt + D + P)を押します。データソースオプションのリストで、「Microsoft Excelデータベースのリスト」を選択します。 [次へ]をクリックし、ソースとして使用するピボットテーブルを選択します(フィールドの実際のヘッダーから選択します)。この範囲はかなり静的であり、ソースピボットを更新してサイズが変更された場合、範囲もサイズ変更する必要があります。お役に立てれば。
最初のピボットテーブルを作成します。
左上の最初のセルを選択します。
オフセットを使用して範囲名を作成します。
OFFSET(Sheet1!$A$3,0,0,COUNTA(Sheet1!$A:$A)-1,COUNTA(Sheet1!$3:$3))
F3を使用して、データのソースとして範囲名で2番目のピボットを作成します。
最初のピボットから行または列の数を変更すると、ピボットを更新した後、2番目のピボットが更新されます
GFGDT
最終的な目標は、元のピボットテーブル内に個別の(一意の)値を表示することだと思います。
たとえば、OrderNumber、OrderDate、OrderItem、orderQtyでデータセットを設定できます
最初のピボットテーブルには、OrderDateとOrderQtyの合計が表示されますおそらく、同じピボット内の一意の注文の数を確認する必要があります。標準のピボットテーブル内でこれを行うことはできません
それを行うには、Office 2016が必要になります(または、ピボットPivotが機能する場合もあります)。 Office 2016で、データ>挿入>ピボットテーブル> 「このデータをデータモデルに追加する」を選択を選択します
その後、グループ化方法をDistinct(Count)として選択できます。
個人的には、これを少し異なる方法で回避しました-SQLサーバーソースをクエリするピボットテーブルがあり、タイムラインスライサーを使用して結果を日付範囲に制限していました-その後、ピボット結果を別のテーブルにまとめたいと思いました。
「ソース」ピボットテーブルを選択し、「SourcePivotData」という名前の範囲を作成しました。
名前付き範囲をソースとして使用して、サマリーピボットテーブルを作成します。
ソースピボットテーブルのワークシートイベントに、次のコードを挿入します。
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
'Update the address of the named range
ThisWorkbook.Names("SourcePivotData").RefersTo = "='" & Target.TableRange1.Worksheet.Name & "'!" & Target.TableRange1.AddressLocal
'Refresh any pivot tables that use this as a source
Dim pt As PivotTable
Application.DisplayAlerts = False
For Each pt In Sheet2.PivotTables
pt.PivotCache.Refresh
Next pt
Application.DisplayAlerts = True
End Sub
私にとってはうまくいきます! :)
提案どおり、ピボットテーブルの内容を変更し、値として貼り付けることができます。しかし、値を動的に変更する場合、私が見つけた最も簡単な方法はGo To Insert->create pivot table
入力データフィールドのダイアログボックスで、以前のピボットテーブルのセルを選択します。
それを行う前に、まずピボットを値に変換する必要があります。
これは私が前にこれをやった方法です。
@nutschが示すように、Excelは必要なことを直接実行しないため、最初にピボットテーブルから他の場所にデータをコピーする必要があります。ただし、値をコピーして貼り付けるのではなく、多くの目的に適した方法は、単純な式を使用して値をコピーする非表示列または非表示シート全体を作成することです。元のピボットテーブルが更新される場合、コピーと貼り付けのアプローチはあまり役に立ちません。
たとえば、Sheet1に元のピボットテーブルが含まれている場合、次のようになります。
=Sheet1!A1
_をSheet2!A1に入れます=IF(Sheet1!A1="","",Sheet1!A1)
を使用することでそれを回避できます。