web-dev-qa-db-ja.com

Excel 2010 PowerPivot:データのないアイテムを表示するにはどうすればよいですか?

標準のExcelピボットテーブルには、現在の選択に結果がない場合でも、すべてのアイテムを強制的に表示できるフィールドのオプションがあります。オプションは次のとおりです。

Pivot Table Field Settings Dialog box

ただし、Excel 2010のPowerPivotアドインを使用すると、このオプションはグレー表示されます。すべての結果を強制的に表示させるための回避策はありますか?

シナリオ例-月別の販売バナナの数。 8月にバナナを一切販売しない場合、powerpivotテーブルには8月の列がまったく表示されず、7月から9月にスキップされます。バナナの数が空白かゼロの8月が登場する必要があります。

何か案は?多分DAX式が必要ですか?

[〜#〜] edit [〜#〜]:harrymcの質問に答えるために、PowerPivotウィンドウのこのメニューからピボットテーブルを選択して、このピボットテーブルを作成しました。

PowerPivot PivotTable insert menu

12
Andi Mohr

実際、これはより良い解決策です。 Alberto Ferrari に感謝します。

Monthsテーブル(つまり、月の名前のリスト、Jan/Feb/Marなど- のリンクされたテーブル は問題なく動作します)を作成し、新しい月テーブルとファクトテーブル。

次に、次のようなメジャーを記述します。

NeverBlankUnits:=IF( ISBLANK( SUM(FruitSales[Units]) )
                      , 0
                      , SUM(FruitSales[Units]) 
                   )

[〜#〜] edit [〜#〜]:ピボットテーブルに新しい月列を追加すると、デフォルトのソートがイライラすることがありますアルファベット順; 4月、8月、12月、2月...これを回避する方法を示す 素晴らしいチュートリアル を次に示します。

5
Andi Mohr

総当たりの方法は、各月のメジャーを作成することです。月の列の1つにデータがある限り、すべての月の列が表示されます。これらすべての個別のメジャーを作成することは非常に面倒ですが、理想的ではありません。

=CALCULATE(
   SUM([Units])
   ,Filter('FruitSales',[Month Name]="August")
   )
0
Andi Mohr

これは私にとってはうまくいきます:

= if(sum(calender [Date])> 0; if(isblank(sum(Sales_SalesOrderDetail [LineTotal])); 0; sum(Sales_SalesOrderDetail [LineTotal]))))

0
Jens

回避策として、データ分析式(DAX)を使用して空白をゼロに置き換えることができます。

DAXは、ファクトテーブルにデータが存在せず、ピボットテーブルに行を表示させたい場合は常に、空白ではなくゼロを強制できます。

Depts、Divisions、およびNumbersというファクトテーブルを含み、合計する数値を含む単一の列 "D"を持つ単純なワークシートの場合、DAXコードを次のように記述します。

=IF (
    COUNTROWS (Divisions) > 0; 
    IF (ISBLANK (SUM (Numbers[D])), 0, SUM (Numbers[D]))
)

詳細については、次を参照してください。
ExcelのPowerPivotアドインでDAXを使用する方法
PowerPivotのデータ分析式(DAX)

このアプローチは、元々スレッド 行にデータのないアイテムを表示 で提案されていました。

0
harrymc