События
Присоединяйтесь к нам в FabCon Vegas
31 мар., 23 - 2 апр., 23
Конечное событие Microsoft Fabric, Power BI, SQL и ai community. 31 марта по 2 апреля 2025 г.
Зарегистрироваться сегодняЭтот браузер больше не поддерживается.
Выполните обновление до Microsoft Edge, чтобы воспользоваться новейшими функциями, обновлениями для системы безопасности и технической поддержкой.
применяется:вычисляемый столбецвычисляемой таблицыизмерениевизуального вычисления
Возвращает текущее значение указанного столбца во внешнем проходе оценки указанного столбца.
РАНЕЕ полезно для вложенных вычислений, где необходимо использовать определенное значение в качестве входных данных и производить вычисления на основе этого входного значения. В Microsoft Excel такие вычисления можно выполнять только в контексте текущей строки; однако в DAX можно сохранить значение входных данных, а затем выполнить вычисление с помощью данных из всей таблицы.
РАНЕЕ в основном используется в контексте вычисляемых столбцов.
EARLIER(<column>, <number>)
Срок | Определение |
---|---|
column |
Столбец или выражение, разрешающееся столбцу. |
num |
(Необязательно) Положительное число для прохождения внешней оценки. Следующий уровень оценки представлен 1; два уровня представлены 2 и т. д. Если опущено значение по умолчанию равно 1. |
Текущее значение строки из column
по number
прохождения внешней оценки.
Описание ошибок
EARLIER
успешно выполняется, если есть контекст строки до начала проверки таблицы. В противном случае возвращается ошибка.
Производительность EARLIER
может быть медленной, так как теоретически может потребоваться выполнить ряд операций, близких к общему количеству строк (в столбце), то же число (в зависимости от синтаксиса выражения). Например, если в столбце есть 10 строк, может потребоваться примерно 100 операций; Если у вас есть 100 строк, может быть выполнено около 10 000 операций.
Эта функция не поддерживается для использования в режиме DirectQuery при использовании в вычисляемых столбцах или правилах безопасности на уровне строк (RLS).
Примечание
На практике подсистема аналитики VertiPaq в памяти выполняет оптимизацию для уменьшения фактического количества вычислений, но при создании формул, связанных с рекурсией, следует соблюдать осторожность.
Чтобы проиллюстрировать использование более ранних версий, необходимо создать сценарий, вычисляющий значение ранга, а затем использовать это значение ранжирования в других вычислениях.
Следующий пример основан на этой простой таблице, ProductSubcategory
, которая показывает общее количество продаж для каждого ProductSubcategory.
Последняя таблица, включая столбец ранжирования, показана здесь.
ProductSubcategoryKey | EnglishProductSubcategoryName | TotalSubcategorySales | ПодкатегорияRanking |
---|---|---|---|
18 | Bib-Shorts | $156,167,88 | 18 |
26 | Велосипедные стойки | $220,720,70 | 14 |
27 | Стенды велосипедов | $35,628.69 | 30 |
28 | Бутылки и клетки | $59,342,43 | 24 |
5 | Нижние скобки | $48,643,47 | 27 |
6 | Тормоза | $62,113.16 | 23 |
19 | Прописные буквы | $47,934,54 | 28 |
7 | Путы | $ 8,847.08 | 35 |
29 | Химчистка | $16,882.62 | 32 |
8 | Cranksets | $191,522.09 | 15 |
9 | Derailleurs | $64,965.33 | 22 |
30 | Крылья | $41,974.10 | 29 |
10 | Вилки | $74,727,66 | 21 |
20 | Перчатки | $228,353,58 | 12 |
4 | Руле | $163,257.06 | 17 |
11 | Гарнитуры | $57,659,99 | 25 |
31 | Шлемы | $451,192.31 | 9 |
32 | Пакеты гидратации | $96,893,78 | 20 |
21 | Трикотажные изделия | $699,429,78 | 7 |
33 | Светофор | 36 | |
34 | Замки | $15,059,47 | 33 |
1 | Горные велосипеды | $34,305,864,29 | 2 |
12 | Горные кадры | $4511,170,68 | 4 |
35 | Корзины | 36 | |
13 | Педали | $140,422.20 | 19 |
36 | Лакированные бальные туфли | $12,695.18 | 34 |
2 | Дорожные велосипеды | $40,551,696,34 | 1 |
14 | Дорожные кадры | $3,636,398,71 | 5 |
15 | Седла | $52,526,47 | 26 |
22 | Шорты | $385,707,80 | 10 |
23 | Носки | $28,337,85 | 31 |
24 | Трико | $189,179,37 | 16 |
37 | Шины и трубы | $224,832,81 | 13 |
3 | Экскурсии велосипедов | $ 13,334,864.18 | 3 |
16 | Обзор кадров | $1,545,344.02 | 6 |
25 | Жилеты | $240,990,04 | 11 |
17 | Колеса | $648,240,04 | 8 |
Одним из способов получения значения ранжирования для заданного значения в строке является подсчет количества строк в той же таблице, которая имеет значение больше (или меньше), чем сравниваемое. Этот метод возвращает пустое или нулевое значение для наибольшего значения в таблице, в то время как равные значения будут иметь то же значение ранжирования и следующее значение (после равных значений) будет иметь непоследовательных ранговых значений. См. приведенный ниже пример.
Новый вычисляемый столбец SubCategorySalesRankingсоздается с помощью следующей формулы.
= COUNTROWS(FILTER(ProductSubcategory, EARLIER(ProductSubcategory[TotalSubcategorySales])<ProductSubcategory[TotalSubcategorySales]))+1
Ниже описан метод вычисления более подробно.
Функция EARLIER
получает значение TotalSubcategorySales для текущей строки в таблице. В этом случае, так как процесс запускается, это первая строка в таблице
EARLIER([TotalSubcategorySales])
оценивается как $156,167,88, текущая строка во внешнем цикле.
Функция FILTER
теперь возвращает таблицу, в которой все строки имеют значение TotalSubcategorySales больше $ 156,167,88 (которое является текущим значением для EARLIER
).
Функция COUNTROWS
подсчитывает строки отфильтрованной таблицы и назначает это значение новому вычисляемого столбцу в текущей строке плюс 1. Добавление 1 необходимо, чтобы не допустить, чтобы значение верхнего ранжирования стало пустым.
Формула вычисляемого столбца перемещается к следующей строке и повторяет шаги 1–4. Эти шаги повторяются до тех пор, пока не будет достигнут конец таблицы.
Функция EARLIER
всегда получает значение столбца до текущей операции таблицы. Если перед этим необходимо получить значение из цикла, задайте второй аргумент 2.
События
Присоединяйтесь к нам в FabCon Vegas
31 мар., 23 - 2 апр., 23
Конечное событие Microsoft Fabric, Power BI, SQL и ai community. 31 марта по 2 апреля 2025 г.
Зарегистрироваться сегодня