12

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

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

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

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

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

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

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

4 ответа4

5

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

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

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

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

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

0

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

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

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

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

0

Обходной путь может быть возможным использовать выражение анализа данных (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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .