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

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

Диалоговое окно

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

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

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

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

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

4 ответа

Решение

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

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

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

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

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

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

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

Метод грубой силы должен был бы создать меру для каждого месяца. Пока один из столбцов месяца содержит некоторые данные, будут отображаться все столбцы месяца. Создание всех этих отдельных мер очень утомительно, но не идеально.

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

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

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

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

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

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

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

Другие вопросы по тегам