evento
Junte-se a nós na FabCon Vegas
31/03, 23 - 2/04, 23
O melhor evento liderado pela comunidade Microsoft Fabric, Power BI, SQL e AI. 31 de março a 2 de abril de 2025.
Registe-se hoje mesmoEste browser já não é suportado.
Atualize para o Microsoft Edge para tirar partido das mais recentes funcionalidades, atualizações de segurança e de suporte técnico.
Aplica-se a:Coluna calculadaTabela calculadaMedidaCálculo visual
Retorna uma única linha posicionada antes ou depois da linha atual dentro da mesma tabela, por um determinado deslocamento. Se a linha atual não puder ser deduzida para uma única linha, várias linhas poderão ser retornadas.
OFFSET ( <delta>[, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Vigência | Definição |
---|---|
delta |
O número de linhas antes (valor negativo) ou depois (valor positivo) da linha atual a partir da qual obter os dados. Pode ser qualquer expressão DAX que retorna um valor escalar. |
relation |
(Opcional) Uma expressão de tabela da qual a linha de saída é retornada.
Se especificado, todas as colunas em partitionBy devem vir dele ou de uma tabela relacionada.
Se omitido: - orderBy deve ser explicitamente especificado.- Todas as expressões orderBy e partitionBy devem ser nomes de colunas totalmente qualificados e provenientes de uma única tabela.
- O padrão é ALLSELECTED() de todas as colunas em orderBy e partitionBy . |
axis |
(Opcional) Um eixo na forma visual. Disponível apenas em cálculos visuais e substitui relation . |
orderBy |
(Opcional) Uma cláusula ORDERBY() contendo as expressões que definem como cada partição é classificada.
Se omitido: - relation deve ser explicitamente especificado.
- O padrão é ordenar por cada coluna em relation que ainda não esteja especificado em partitionBy . |
blanks |
(Opcional) Uma enumeração que define como manipular valores em branco ao classificar.
Este parâmetro está reservado para uso futuro. Atualmente, o único valor suportado é DEFAULT, onde o comportamento para valores numéricos é valores em branco são ordenados entre valores zero e negativos. O comportamento para cadeias de caracteres é valores em branco são ordenados antes de todas as cadeias de caracteres, incluindo cadeias vazias. |
partitionBy |
(Opcional) Uma cláusula PARTITIONBY() que contém as colunas que definem como relation é particionada.
Se omitido, relation é tratado como uma única partição. |
matchBy |
(Opcional) Uma cláusula MATCHBY() que contém as colunas que definem como fazer a correspondência de dados e identificar a linha atual. |
reset |
(Opcional) Disponível apenas em cálculos visuais. Indica se o cálculo é redefinido e em que nível da hierarquia de colunas da forma visual. Os valores aceitos são: NONE, LOWESTPARENT, HIGHESTPARENT ou um inteiro. O comportamento depende do sinal inteiro: - Se zero ou omitido, o cálculo não é reiniciado. Equivalente a NENHUM. - Se positivo, o inteiro identifica a coluna a partir do mais alto, independente do grão. HIGHESTPARENT é equivalente a 1. - Se negativo, o inteiro identifica a coluna a partir do mais baixo, em relação ao grão atual. LOWESTPARENT é equivalente a -1. |
Uma ou mais linhas de relation
.
Exceto para colunas adicionadas por funções de tabela DAX, cada coluna em relation
, quando matchBy
não está presente, ou cada coluna em matchBy
e partitionBy
, quando matchBy
está presente, deve ter um valor externo correspondente para ajudar a definir a linha atual na qual operar, com o seguinte comportamento:
Se todas as colunas do relation
foram adicionadas pelas funções da tabela DAX, um erro será retornado.
Se matchBy
estiver presente, OFFSET tentará usar matchBy
e partitionBy
colunas para identificar a linha.
Se matchBy
não estiver presente e as colunas especificadas em orderBy
e partitionBy
não puderem identificar exclusivamente todas as linhas relation
, então:
orderBy
, e cada partição será classificada usando esse novo conjunto de colunas OrderBy.Uma tabela vazia é retornada se:
relation
.delta
causa uma mudança para uma linha que não existe dentro da partição.Se OFFSET for usado dentro de uma coluna calculada definida na mesma tabela que relation
e orderBy
for omitido, um erro será retornado.
reset
pode ser usado apenas em cálculos visuais e não pode ser usado em combinação com orderBy
ou partitionBy
. Se reset
estiver presente, axis
pode ser especificado, mas relation
não pode.
A seguinte consulta 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]
)
)
Devolve uma tabela que resume o total de vendas para cada categoria de produto e ano civil, bem como o total de vendas para essa categoria no ano anterior.
A seguinte consulta 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]
)
Usa OFFSET() em uma medida para retornar uma tabela que resume o total de vendas para cada ano civil e o total de vendas para o ano anterior.
A seguinte consulta 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]
)
)
Retorna a tabela FactInternetSales com a adição de uma coluna, que indica, para cada venda, o valor da venda anterior, do mesmo produto, em ordem decrescente do valor das vendas, com a venda atual sendo identificada por seu SalesOrderNumber e SalesOrderLineNumber. Sem MATCHBY, a consulta retornaria um erro, pois não há colunas de chave na tabela FactInternetSales.
A seguinte consulta DAX de cálculo visual:
SalesRelativeToPreviousMonth = [SalesAmount] - CALCULATE(SUM([SalesAmount]), OFFSET(-1, ROWS, HIGHESTPARENT))
Devolve a diferença no total de vendas entre cada mês e o anterior no mesmo ano.
A captura de tela abaixo mostra a matriz visual e a expressão de cálculo visual:
de cálculo visual DAX
ÍNDICE
ORDERBY
PARTITIONBY
MATCHBY
JANELA
CLASSIFICAÇÃO
NÚMERO DE LINHA
evento
Junte-se a nós na FabCon Vegas
31/03, 23 - 2/04, 23
O melhor evento liderado pela comunidade Microsoft Fabric, Power BI, SQL e AI. 31 de março a 2 de abril de 2025.
Registe-se hoje mesmo