Power BI: Заполнить пробелы между двумя датами, исключить даты за пределами диапазона

#powerbi #ssas #dax #powerbi-desktop #power-bi-report-server

#powerbi #ssas #dax #powerbi-desktop #power-bi-report-server

Вопрос:

Итак, я хочу отобразить платежи от отдельных доноров за период времени между их первым пожертвованием и сегодняшней датой.

Чтобы заполнить пробелы в визуальном представлении пожертвований с течением времени, я использую таблицу календаря и выбираю ‘показывать элементы с отсутствующими данными’.

Моя проблема в том, что если донор впервые пожертвовал в 2005 году, тот факт, что таблица календаря начинается с 1980 года, означает, что график показывает диапазон дат по оси X, начинающийся с этого года. Таким образом, он показывает много времени, о котором мы знаем, что у него нет данных.

Как я могу по умолчанию использовать диапазон дат, начинающийся с даты первого внесения идентификатора пользователя, переданного в отчет?

Таблицы: Календарь, пожертвования

Комментарии:

1. Некоторые примеры данных с ожидаемым результатом помогут.

Ответ №1:

Один из способов добиться этого — создать меру, которая проверяет, есть ли пожертвования в текущем контексте фильтра. Для вашей диаграммы это будет для выбора date и donor категорий, хотя это сработало бы в любом другом контексте фильтра, который относится к пожертвованиям.

Это будет выглядеть примерно так:

 Has Donations =
  if(calculate(isempty(relatedtable(DonationsTable
                                   )
                      )
              )
    ,0
    ,1
    )
  

Затем вы можете добавить этот фильтр в Filters on this visual раздел панели фильтров и проверить, где находится значение 1 , однако убедитесь, что для вашей date оси установлено значение continuous . Это вернет все даты между самым старым и самым новым пожертвованием.

Комментарии:

1. Итак, я замечаю, что если я забуду таблицу календаря и перетащу поле даты в таблице «Пожертвования» на ось X и обеспечу непрерывность оси, Power BI заполнит все достаточно хорошо. Таким образом, даже если первое пожертвование было сделано в 2015 году, а последнее в 2018 году, между ними будет пробел, когда они появятся на оси. Но как я могу гарантировать, что шкала соответствует сегодняшней дате, а не только периоду между пожертвованиями?

2. Это значительно сложнее и будет намного больше зависеть от того, как настроена ваша модель.