Power BI — это мощный инструмент бизнес-аналитики, который позволяет пользователям анализировать данные и получать ценную информацию. Одним из распространенных требований при анализе данных является вычисление периода между «сегодня» и «30 дней назад». В этой статье блога мы рассмотрим пять различных методов расчета «сегодня — 30 дней» в Power BI с использованием DAX (выражения анализа данных). Каждый метод будет сопровождаться примером кода, который поможет вам реализовать его в ваших собственных проектах Power BI.
Метод 1: использование функции DATESBETWEEN
TodayMinus30Days = CALCULATE(SUM(Table[Value]), DATESBETWEEN(Table[Date], TODAY() - 30, TODAY()))
Объяснение: Этот метод использует функцию DATESBETWEEN для вычисления суммы определенного столбца в диапазоне дат. Мы указываем диапазон от «TODAY() – 30» до «TODAY()», чтобы получить желаемый результат.
Метод 2: использование функции DATEADD
TodayMinus30Days = CALCULATE(SUM(Table[Value]), FILTER(Table, Table[Date] >= DATEADD(TODAY(), -30, DAY) && Table[Date] <= TODAY()))
Объяснение: Функция DATEADD позволяет нам добавлять или вычитать указанное количество интервалов (в данном случае дней) из заданной даты. Мы используем эту функцию в сочетании с функцией ФИЛЬТР для вычисления суммы в желаемом диапазоне дат.
Метод 3: использование функции PREVIOUSMONTH
TodayMinus30Days = CALCULATE(SUM(Table[Value]), PREVIOUSMONTH(TODAY()) && TODAY() - 30)
Объяснение: Функция PREVIOUSMONTH возвращает дату предыдущего месяца на основе указанной даты. Объединив его с функцией TODAY() и вычитая 30 дней, мы получаем желаемый диапазон дат.
Метод 4. Использование функции SAMEPERIODLASTYEAR
TodayMinus30Days = CALCULATE(SUM(Table[Value]), SAMEPERIODLASTYEAR(TODAY()) && TODAY() - 365 - 30)
Объяснение: Функция SAMEPERIODLASTYEAR позволяет нам получить тот же период из предыдущего года. Вычитая необходимое количество дней (365+30) от текущей даты, получаем нужный диапазон дат.
Метод 5. Использование переменных
TodayMinus30Days =
VAR TodayDate = TODAY()
VAR ThirtyDaysAgo = TodayDate - 30
RETURN CALCULATE(SUM(Table[Value]), FILTER(Table, Table[Date] >= ThirtyDaysAgo && Table[Date] <= TodayDate))
Объяснение: Этот метод использует переменные для хранения текущей даты и даты 30-дневной давности. Затем мы используем эти переменные в функции ФИЛЬТР для вычисления суммы в желаемом диапазоне дат.
В этой статье мы рассмотрели пять различных методов расчета «сегодня — 30 дней» в Power BI с использованием DAX. В зависимости от вашего конкретного варианта использования и структуры данных вы можете выбрать метод, который лучше всего соответствует вашим потребностям. Используя эти методы, вы можете выполнять расширенные вычисления дат и получать более глубокое понимание ваших данных.