2

次のようなExcelシートのデータがあります。

ここに画像の説明を入力

説明のために、いくつかの列を非表示にしました (無視してください)。上記のビューをピボットすると、その出力は次のようになります。

ここに画像の説明を入力

ただし、L1 と L1C (同じものを表す) が 1 つのエンティティとして表示される (1 つの列自体から来たかのように) 次のような出力が期待されます。

ここに画像の説明を入力

Excel のピボット機能は、この効果に何かを提供しますか?

追伸: 私が使用したデータにアクセスしたい場合は、Google doc ファイルにアクセスしてください:ここをクリック

アップデート:

目的の結果を達成するために行ったことは、Excel の数式を使用して目的の列を生成することでした。(したがって、上で共有したスプレッドシートの名前フィールドの後に列があることに気付くでしょう)。これは、ピボット中に Excel でこの問題にアプローチできる唯一の方法ですか?

4

1 に答える 1

1

最初の 2 つのスクリーンショットのようにデータとピボットを設定したら、ピボット テーブルでセルを選択し、次のコードを実行して最後のスクリーンショットを取得できます。

Sub UpdatePivot()
With ActiveCell.PivotTable
    AddPivotLabels .PivotFields("l1"), .PivotFields("l1c")
    AddPivotLabels .PivotFields("l2"), .PivotFields("l2c")
    AddPivotLabels .PivotFields("l3"), .PivotFields("l3c")
End With
End Sub

Sub AddPivotLabels(pName1 As PivotField, pName2 As PivotField)
Dim i As Long
For i = 1 To pName1.PivotItems.Count
    pName1.PivotItems(i).Value = pName1.PivotItems(i).SourceName & _
                            " (" & pName2.PivotItems(i).SourceName & ")"
Next i
End Sub

: これは、関係が 1 対 1 であることを前提としています。おそらく、より大きなデータセットで実行する前に、これを確認する必要があります。

于 2012-08-29T19:44:36.070 に答える