Excel 2010 PowerPivot: Як відображати елементи без даних?


12

У стандартних зведених таблицях Excel є опція для полів, які дозволяють змусити відображати всі елементи, навіть якщо немає результатів для поточного вибору. Ось варіант:

Діалогове вікно налаштувань поля зведеної таблиці

Однак, використовуючи надбудову PowerPivot для Excel 2010, ця опція затьмарена. Чи є рішення, щоб змусити всі результати з’являтися?

Приклад сценарію - кількість проданих бананів за місяць. Якщо я не продаю жодних бананів у серпні, таблиця powerpivot взагалі не відображає стовпчик за серпень, він просто пропускає з липня по вересень. Мені потрібен серпень, щоб з’явитися чи порожня кількість бананів, або нуль.

Будь-які ідеї? Можливо, потрібний вираз DAX?

EDIT : щоб відповісти на запитання harrymc, я створив цю PivotTable, вибравши PivotTable з цього меню у вікні PowerPivot.

Меню вставки PowerPivot PivotTable


У наборі даних PowerPivot ви не можете додавати елементи без даних, тому цілком природно, що "Показати елементи без даних" є сірим. Чи використовуєте Ви згладжений зведений таблицю, як описано тут ?
harrymc

Дякую за відповідь harrymc, я не використовую Flatished PivotTable, я використовував стандартний PivotTable (див. Зображення вище).
Andi Mohr

По твій перший пункт, я не впевнений, що я тебе правильно зрозумів. Ви кажете, що не можете додавати елементи без даних, однак мій набір даних включає продажів яблук у серпні. Це, як правило, означає, що "Показувати елементи без даних" відображається стовпець серпня. Ви хочете сказати, що PivotTables, що відтягує дані PowerPivot, веде себе інакше, ніж будь-яке інше джерело даних?
Andi Mohr

Відповіді:


5

Насправді це краще рішення. Завдяки Альберто Феррарі за це.

Вам потрібно створити таблицю "Місяці" (тобто список назв місяців, січня / лютого / березня тощо - пов'язана таблиця буде спрацьовувати чудово) та створити взаємозв'язок між вашою новою таблицею місяців і вашою таблицею фактів.

Потім напишіть такий захід:

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

РЕДАКТУВАННЯ : Коли ви додаєте свій стовпець нових місяців у свою зведену таблицю, ви можете виявити, що сортування за замовчуванням розчаровує алфавітно; Квітень, серпень, грудень, лютий ... Ось чудовий підручник, який показує, як обійти це.


0

Для вирішення можливого вирішення можливо використовувати вираз аналізу даних (DAX) для заміни пробілів нулями.

DAX може примусити нуль замість порожнього, коли немає даних у таблиці фактів, але ви хочете, щоб рядок відображався у зведеній таблиці.

Для простого робочого аркуша з Depts, Division і таблицею фактів під назвою Numbers, і в одному стовпчику "D", що містить число для підсумовування, напишіть код DAX таким чином:

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

Для отримання додаткової інформації дивіться:
Як використовувати DAX в виразах аналізу даних надбудови PowerPivot Excel
(DAX) в PowerPivot

Цей підхід був спочатку запропонований у потоці Показувати елементи без даних про рядки .


Дякую - просто переглянувши цей підхід, щоб побачити, чи зможу я змусити його працювати. Перше, що я помітив, - це невеликий друкарський формул у формулі - у вас півколій замість коми. (Як і оригінальний пост АльбертоФерарі за посиланням.)
Andi Mohr

На жаль, це, здається, не робить цього. Я пристосував формулу наступним чином : Units_2:=IF (COUNTROWS('FruitSales') > 0,IF(ISBLANK (SUM (FruitSales[Units])), 0, SUM (FruitSales[Units]))). Зведена таблиця показує одиниці, продані в липні та вересні.
Andi Mohr

Якщо іншого рішення не знайти, залишається зрівняти зведену таблицю в локальну електронну таблицю. Стаття я зв'язкові раніше можуть допомогти.
harrymc

0

Методом грубої сили було б створити міру на кожен місяць. Поки в одному зі стовпців місяця є деякі дані, усі місячні стовпці з'являться. Створення всіх цих індивідуальних заходів дуже втомлює - не ідеально.

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

0

це працює для мене:

= if (сума (календар (дата))> 0; якщо (isblank (сума (Sales_SalesOrderDetail [LineTotal])); 0; сума (Sales_SalesOrderDetail [LineTotal])))


Звідки calendar[Date]взявся? Це не в моєму прикладі сценарію, так як ви додали це і як ця таблиця пов'язана в PowerPivot?
Andi Mohr
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.