События
Присоединяйтесь к нам в FabCon Vegas
31 мар., 23 - 2 апр., 23
Конечное событие Microsoft Fabric, Power BI, SQL и ai community. 31 марта по 2 апреля 2025 г.
Зарегистрироваться сегодняЭтот браузер больше не поддерживается.
Выполните обновление до Microsoft Edge, чтобы воспользоваться новейшими функциями, обновлениями для системы безопасности и технической поддержкой.
применяется:вычисляемый столбецвычисляемой таблицыизмерениевизуального вычисления
Возвращает одну строку, расположенную либо до, либо после текущей строки в той же таблице, с помощью заданного смещения. Если текущая строка не может быть выведена в одну строку, может быть возвращено несколько строк.
OFFSET ( <delta>[, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Срок | Определение |
---|---|
delta |
Число строк до (отрицательное значение) или после (положительное значение) текущей строки, из которой необходимо получить данные. Это может быть любое выражение DAX, возвращающее скалярное значение. |
relation |
(Необязательно) Табличное выражение, из которого возвращается выходная строка.
Если указано, все столбцы в partitionBy должны поступать из нее или связанной таблицы.
Если опущено: - orderBy необходимо явно указать.. Все выражения orderBy и partitionBy должны быть полными именами столбцов и поступать из одной таблицы.
— по умолчанию используется ALLSELECTED() всех столбцов в orderBy и partitionBy . |
axis |
(Необязательно) Ось в визуальной форме. Доступно только в визуальных вычислениях и заменяет relation . |
orderBy |
(Необязательно) Предложение ORDERBY(), содержащее выражения, определяющие порядок сортировки каждой секции.
Если опущено: - relation необходимо явно указать.
— по умолчанию упорядочивается по каждому столбцу в relation , который еще не указан в partitionBy . |
blanks |
(Необязательно) Перечисление, определяющее, как обрабатывать пустые значения при сортировке.
этот параметр зарезервирован для дальнейшего использования. В настоящее время единственным поддерживаемым значением является DEFAULT, где поведение числовых значений является пустым, упорядочено от нуля до отрицательных значений. Поведение строк является пустым значением, упорядоченным перед всеми строками, включая пустые строки. |
partitionBy |
(Необязательно) Предложение PARTITIONBY(), содержащее столбцы, определяющие секционирование relation .
Если опущено, relation рассматривается как одна секция. |
matchBy |
(Необязательно) Предложение MATCHBY(), содержащее столбцы, определяющие сопоставление данных и определение текущей строки. |
reset |
(Необязательно) Доступно только в визуальных вычислениях. Указывает, сбрасывается ли вычисление и на каком уровне иерархии столбцов визуальной фигуры. Допустимые значения: NONE, LOWESTPARENT, HIGHESTPARENT или целое число. Поведение зависит от целочисленного знака: — если нулевая или опущенная, вычисление не сбрасывается. Эквивалент NONE. — если положительный, целое число определяет столбец, начиная с самого высокого, независимо от зерна. САМЫЙ ВЫСОКИЙ УРОВЕНЬ ЭКВИВАЛЕНТЕН 1. — если отрицательно, целое число определяет столбец, начиная с самого низкого, относительно текущего зерна. САМЫЙ НИЗКИЙPARENT эквивалентен -1. |
Одна или несколько строк из relation
.
За исключением столбцов, добавленных функциями таблицы DAX, каждый столбец в relation
, если matchBy
отсутствует, или каждый столбец в matchBy
и partitionBy
, если matchBy
присутствует, должен иметь соответствующее внешнее значение, чтобы помочь определить текущую строку, на которой следует работать, с помощью следующего поведения:
Если все столбцы relation
были добавлены функциями таблицы DAX, возвращается ошибка.
Если matchBy
присутствует, OFFSET попытается использовать matchBy
и partitionBy
столбцы для идентификации строки.
Если matchBy
отсутствует, и столбцы, указанные в orderBy
и partitionBy
, не могут однозначно идентифицировать каждую строку в relation
, а затем:
orderBy
, и каждая секция сортируется с помощью этого нового набора столбцов OrderBy.Если возвращается пустая таблица:
relation
.delta
приводит к переходу к строке, которая не существует в разделе.Если offset используется в вычисляемом столбце, определенном в той же таблице, что и relation
, и orderBy
опущен, возвращается ошибка.
reset
можно использовать только в визуальных вычислениях и не может использоваться в сочетании с orderBy
или partitionBy
. Если reset
присутствует, axis
можно указать, но relation
невозможно.
Следующий запрос DAX:
DEFINE
VAR vRelation = SUMMARIZECOLUMNS (
DimProductCategory[EnglishProductCategoryName],
DimDate[CalendarYear],
"CurrentYearSales", SUM(FactInternetSales[SalesAmount])
)
EVALUATE
ADDCOLUMNS (
vRelation,
"PreviousYearSales",
SELECTCOLUMNS(
OFFSET (
-1,
vRelation,
ORDERBY([CalendarYear]),
PARTITIONBY([EnglishProductCategoryName])
),
[CurrentYearSales]
)
)
Возвращает таблицу, которая суммирует общий объем продаж для каждой категории продукта и календарного года, а также общий объем продаж для этой категории в предыдущем году.
Следующий запрос DAX:
DEFINE
MEASURE DimProduct[CurrentYearSales] = SUM(FactInternetSales[SalesAmount])
MEASURE DimProduct[PreviousYearSales] = CALCULATE(SUM(FactInternetSales[SalesAmount]), OFFSET(-1, , ORDERBY(DimDate[CalendarYear])))
EVALUATE
SUMMARIZECOLUMNS (
DimDate[CalendarYear],
"CurrentYearSales", DimProduct[CurrentYearSales],
"PreviousYearSales", DimProduct[PreviousYearSales]
)
Использует OFFSET() в мере для возврата таблицы, которая суммирует общий объем продаж за каждый календарный год и общий объем продаж за предыдущий год.
Следующий запрос DAX:
EVALUATE
ADDCOLUMNS (
FactInternetSales,
"Previous Sales Amount",
SELECTCOLUMNS (
OFFSET (
-1,
FactInternetSales,
ORDERBY ( FactInternetSales[SalesAmount], DESC ),
PARTITIONBY ( FactInternetSales[ProductKey] ),
MATCHBY( FactInternetSales[SalesOrderNumber], FactInternetSales[SalesOrderLineNumber] )
),
FactInternetSales[SalesAmount]
)
)
Возвращает таблицу FactInternetSales с добавлением столбца, указывающего, для каждой продажи, суммы предыдущей продажи одного и того же продукта в порядке убывания объема продаж, при этом текущая продажа определяется его SalesOrderNumber и SalesOrderLineNumber. Без MATCHBY запрос вернет ошибку, так как в таблице FactInternetSales отсутствуют ключевые столбцы.
Следующий запрос DAX визуального вычисления:
SalesRelativeToPreviousMonth = [SalesAmount] - CALCULATE(SUM([SalesAmount]), OFFSET(-1, ROWS, HIGHESTPARENT))
Возвращает разницу в общем объеме продаж между каждым месяцем и предыдущим в течение одного года.
Снимок экрана ниже: визуальная матрица и выражение визуального вычисления:
INDEX
ORDERBY
PARTITIONBY
MATCHBY
WINDOW
РАНЖИРОВАНИе
ROWNUMBER
События
Присоединяйтесь к нам в FabCon Vegas
31 мар., 23 - 2 апр., 23
Конечное событие Microsoft Fabric, Power BI, SQL и ai community. 31 марта по 2 апреля 2025 г.
Зарегистрироваться сегодня