Excel 2010 PowerPivot: как отобразить элементы без данных?


12

В стандартных сводных таблицах Excel есть опция для полей, которые позволяют принудительно отображать все элементы, даже если для текущего выбора нет результатов. Вот вариант:

Диалоговое окно «Параметры поля сводной таблицы»

Однако при использовании надстройки PowerPivot для Excel 2010 этот параметр неактивен. Есть ли обходной путь, чтобы я мог заставить все результаты появляться?

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

Есть идеи? Может быть, требуется выражение DAX?

РЕДАКТИРОВАТЬ : чтобы ответить на вопрос Harrymc, я создал эту сводную таблицу, выбрав сводную таблицу из этого меню в окне PowerPivot.

Меню вставки сводной таблицы PowerPivot


В наборе данных PowerPivot нельзя добавлять элементы без данных, поэтому естественно, что «Показать элементы без данных» отображается серым цветом. Используете ли вы сводную сводную таблицу, как описано здесь ?
harrymc

Спасибо за ответ harrymc, я не использую сводную сводную таблицу, я использовал стандартную сводную таблицу (см. Изображение выше).
Анди Мор

С вашей точки зрения, я не уверен, что правильно вас понял. Вы говорите, что не можете добавлять товары без данных, однако мой набор данных включает в себя августовские продажи яблок. Обычно это означает, что включение «Показать элементы без данных» показывает столбец августа. Вы хотите сказать, что сводные таблицы, извлекаемые из данных PowerPivot, ведут себя иначе, чем любой другой источник данных?
Andi Mohr

Ответы:


5

На самом деле это лучшее решение. Спасибо Альберто Феррари за это.

Вам необходимо создать таблицу месяцев (т. Е. Список названий месяцев, январь / февраль / март и т. Д. - связанная таблица будет работать нормально) и создать связь между новой таблицей месяцев и таблицей фактов.

Затем напишите меру, как этот:

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

РЕДАКТИРОВАТЬ : Когда вы добавляете новый столбец месяцев в сводную таблицу, вы можете обнаружить, что сортировка по умолчанию расстраивает алфавитно; Апр, август, декабрь, февраль ... Вот отличный урок, показывающий, как обойти это.


0

Обходной путь может быть возможным использовать выражение анализа данных (DAX) для замены пробелов нулями.

DAX может принудительно устанавливать ноль вместо пробела, если в таблице фактов нет данных, но вы хотите, чтобы строка отображалась в сводной таблице.

Для простого листа с Depts, Divisions и таблицей фактов Numbers и с одним столбцом «D», содержащим сумму для суммирования, напишите код DAX следующим образом:

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

Для получения дополнительной информации см .:
Как использовать DAX в выражениях анализа данных надстройки PowerPivot (DAX) в Excel
в PowerPivot.

Этот подход был первоначально предложен в теме Показать элементы без данных в строках .


Спасибо - просто смотрю на этот подход, чтобы посмотреть, смогу ли я заставить его работать. Первое, что я заметил, - это небольшая опечатка в формуле - вместо запятой вы ставите точку с запятой. (Как и оригинальная запись AlbertoFerrari по ссылке.)
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

это работает для меня:

= Если (сумма (каландр [Дата])> 0; если (ISBLANK (сумма (Sales_SalesOrderDetail [LineTotal])); 0; сумма (Sales_SalesOrderDetail [LineTotal])))


Откуда calendar[Date]пришел? Это не в моем примере сценария, так как вы добавили это и как эта таблица связана в PowerPivot?
Анди Мур
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.