DAX в заметках
Пример использования функции EARLIER
Синтаксис
EARLIER(column, [number])
Параметры
Параметр | Обязательный | Описание |
---|---|---|
column |
Да | Столбец или выражение, результатом которого служит столбец. |
number |
Нет | Следующий внешний этап вычисления. По умолчанию 1. |
Возвращаемое значение
Текущее значение строки из столбца column
на расстоянии в number
внешних этапов вычисления.
Пример
=
COUNTROWS (
FILTER (
ProductSubcategory;
EARLIER ( ProductSubcategory[TotalSubcategorySales] )
< ProductSubcategory[TotalSubcategorySales]
)
)
+ 1
- Функция
EARLIER
получает значение TotalSubcategorySales для текущей строки в таблице. В данном случае, поскольку процесс только начинается, это первая строка в таблице. EARLIER([TotalSubcategorySales])
дает результат $ 156 176.88 — текущая строка во внешнем цикле.- Теперь функция
FILTER
возвращает таблицу, где все строки имеют значение TotalSubcategorySales, превышающее $ 156 176.88 (текущее значениеEARLIER
). - Функция
COUNTROWS
подсчитывает строки отфильтрованной таблицы и присваивает новому вычисляемому столбцу в текущей строке полученное значение и прибавляет единицу 1. - Формула вычисляемого столбца переходит к следующей строке, и шаги с 1 по 4 повторяются. Эти шаги повторяются до конца таблицы.
- Функция
EARLIER
всегда получает значение столбца перед выполнением текущей операции в таблице. Чтобы получить значение на более раннем этапе цикла, установите второй аргумент в значение 2.
Как в DAX отобразить положительные числа со знаком плюс?
Ответ: Используйте пользовательские числовые форматы для функции FORMAT
Пример
- В качестве примера возьмем таблицу
Entry
с положительными и отрицательными значениями:
Value |
---|
- 10 |
0 |
10 |
- Для простоты примера сделаем вспомогательную, среднее значение:
AvgValue =
AVERAGE( Entry[Value] )
- Напишем формулу:
FormatValue =
IF( [AvgValue] = 0;
"0";
FORMAT( [AvgValue]; "+#,##0;-#,##0" )
)
- В результате получим таблицу вида:
Value | FormatValue |
---|---|
- 10 | - 10 |
0 | 0 |
10 | + 10 |
Комментарии
-
Подробное описание функции FROMAT см. в статье пользовательские числовые форматы для функции FORMAT
-
Так как для второго параметра нет форматирование нуля использовал функцию IF. Если не использовать функцию IF для обработки нулевого значения получиться 0 с плюсом. Что может быть не приемлемо для бизнес правил.
-
Обратите внимание, что правила форматирования чисел очень похожи на правила форматирование чисел в Excel.
-
Прибавлять единицу необходимо, чтобы предотвратить появление пустого значения в качестве значения с верхним рангом. ↩︎