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


12

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

[ピボットテーブルフィールドの設定]ダイアログボックス

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

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

何か案は?たぶんDAX式が必要ですか?

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

PowerPivotピボットテーブルの挿入メニュー


PowerPivotデータセットでは、データのないアイテムをアドインすることはできません。したがって、「データのないアイテムを表示」がグレー表示されるのは当然です。ここで説明されているように、フラット化されたピボットテーブルを使用していますか?
ハリーマック

応答harrymcのおかげで、フラット化されたピボットテーブルを使用していません。標準のピボットテーブルを使用しました(上記の画像を参照)。
アンディモール

最初の点で、私はあなたを正しく理解したかどうかわかりません。データなしではアイテムを追加できないと言いますが、私のデータセットにはリンゴの8月の販売が含まれています。これは通常、「データのないアイテムを表示」を有効にすると8月の列が表示されることを意味します。PowerPivotデータから取得するピボットテーブルは、他のデータソースとは異なる動作をすると言っていますか?
アンディモール

回答:


5

実際、これはより良い解決策です。これについては、アルベルトフェラーリに感謝します。

Monthsテーブル(月名のリスト、Jan / Feb / Marなど- リンクテーブル)を作成する必要がありますは問題なく機能します)を構築し、新しいMonthsテーブルとファクトテーブルの間にリレーションシップを作成する必要があります。

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

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

編集:ピボットテーブルに新しい月の列を追加すると、デフォルトの並べ替えがイライラするほどアルファベット順になっていることがあります。4月、8月、12月、2月... これを回避する方法を示す素晴らしいチュートリアルです。


0

データ分析式(DAX)を使用して、ブランクをゼロに置き換える回避策が考えられます。

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

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

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

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

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


感謝します-このアプローチを見て、私がそれを機能させることができるかどうかを確認してください。最初に気づいたのは、式の小さなタイプミスです。コンマの代わりにセミコロンがあります。(リンク上のAlbertoFerrariによる元の投稿も同様です。)
Andi Mohr

悲しいことに、これはトリックを実行していないようです。次のように数式を調整しましたUnits_2:=IF (COUNTROWS('FruitSales') > 0,IF(ISBLANK (SUM (FruitSales[Units])), 0, SUM (FruitSales[Units])))。ピボットテーブルは、7月と9月に販売されたユニットを表示するだけです。
アンディモール

他のソリューションが見つからない場合、残っているのは、ピボットテーブルをローカルスプレッドシートにフラット化することです。記事私がリンクされなければならないかもしれませんヘルプの前に。
harrymc

0

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

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

0

これは私のために働く:

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


どこcalendar[Date]から来たの?これは私のシナリオ例ではないので、これをどのように追加し、PowerPivotでこのテーブルをどのようにリンクしますか?
アンディモール14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.