Eventos
Junte-se a nós na FabCon Vegas
31 de mar., 23 - 2 de abr., 23
O melhor evento liderado pela comunidade Microsoft Fabric, Power BI, SQL e AI. 31 de março a 2 de abril de 2025.
Registre-se hoje mesmoNão há mais suporte para esse navegador.
Atualize o Microsoft Edge para aproveitar os recursos, o suporte técnico e as atualizações de segurança mais recentes.
aplica-se a:coluna calculadatabela calculadaMeasurecálculo visual
Modifica como os filters são aplicados ao avaliar uma função CALCULATEorCALCULATETABLE.
KEEPFILTERS(<expression>)
Prazo | Definição |
---|---|
expression |
Qualquer expressão. |
Uma tabela de values.
Você usa KEEPFILTERS dentro do contexto CALCULATEandCALCULATETABLE funções, para substituir o comportamento padrão dessas funções.
Por padrão, filter argumentos em funções como CALCULATE são usados como o contexto para avaliar a expressão, and como filter argumentos para CALCULATEreplaceallfilters existentes nas mesmas colunas. O novo contexto efetuado pelo argumento filter para CALCULATE afeta apenas filters existentes em colunas mencionadas como parte do argumento filter. Filters em colunas diferentes daquelas mencionadas nos argumentos de CALCULATEor outras funções related permanecem em effectand sem controle.
A função KEEPFILTERS permite modificar esse comportamento. Quando você usa KEEPFILTERS, qualquer filters existente no contexto atual é comparada com as colunas nos argumentos filter, and a interseção desses argumentos é usada como o contexto para avaliar a expressão. A rede effect sobre qualquer coluna é que ambos os conjuntos de argumentos se aplicam: ambos os argumentos filter usados em CALCULATEand o filters nos argumentos da função KEEPFILTER. Em outras palavras, enquanto CALCULATEfiltersreplace o contexto atual, KEEPFILTERS adiciona filters ao contexto atual.
Essa função not tem suporte para uso no modo DirectQuery quando usada em colunas calculadas or regras de RLS (segurança em nível de linha).
O exemplo a seguir leva você a alguns cenários comuns que demonstram o uso da função KEEPFILTERS como parte de uma fórmula CALCULATEorCALCULATETABLE.
As três expressões first obtêm dados simples a serem usados para comparações:
Vendas pela Internet para o estado de Washington.
Vendas pela Internet para os estados de Washington and Oregon (ambos os estados combinados).
Vendas pela Internet para o estado de Washington and província da Colúmbia Britânica (ambas as regiões combinadas).
A quarta expressão calcula as vendas pela Internet para Washington and Oregon, enquanto a filter para Washington and Colúmbia Britânica é aplicada.
A expressão next calcula as vendas pela Internet para Washington and Oregon, mas usa KEEPFILTERS; o filter de Washington and Colúmbia Britânica faz parte do contexto anterior.
EVALUATE ROW(
"$$ in WA"
, CALCULATE('Internet Sales'[Internet Total Sales]
, 'Geography'[State Province Code]="WA"
)
, "$$ in WA and OR"
, CALCULATE('Internet Sales'[Internet Total Sales]
, 'Geography'[State Province Code]="WA"
|| 'Geography'[State Province Code]="OR"
)
, "$$ in WA and BC"
, CALCULATE('Internet Sales'[Internet Total Sales]
, 'Geography'[State Province Code]="WA"
|| 'Geography'[State Province Code]="BC"
)
, "$$ in WA and OR ??"
, CALCULATE(
CALCULATE('Internet Sales'[Internet Total Sales]
,'Geography'[State Province Code]="WA"
|| 'Geography'[State Province Code]="OR"
)
, 'Geography'[State Province Code]="WA"
|| 'Geography'[State Province Code]="BC"
)
, "$$ in WA !!"
, CALCULATE(
CALCULATE('Internet Sales'[Internet Total Sales]
, KEEPFILTERS('Geography'[State Province Code]="WA"
|| 'Geography'[State Province Code]="OR"
)
)
, 'Geography'[State Province Code]="WA"
|| 'Geography'[State Province Code]="BC"
)
)
Quando essa expressão é avaliada em relação ao banco de dados sample AdventureWorks DW, os resultados a seguir são obtidos.
Coluna | Value |
---|---|
[$$ in WA] |
R$ 2.467.248,34 |
[$$ in WA and OR] |
R$ 3.638.239,88 |
[$$ in WA and BC] |
R$ 4.422.588,44 |
[$$ in WA and OR ??] |
R$ 3.638.239,88 |
[$$ in WA !!] |
R$ 2.467.248,34 |
Observação
Os resultados acima foram formatados para uma tabela, em vez de uma única linha, para fins educacionais.
First, examine a expressão [$$ in WA and OR ??]
. Você pode se perguntar como essa fórmula poderia retornar o value de vendas em Washington and Oregon, já que a expressão de CALCULATE externa inclui um filter para Washington and Colúmbia Britânica. A resposta é que o comportamento padrão de CALCULATE substitui a filters externa em 'Geography'[Código da Província de Estado] and substitui seus próprios argumentos filter, pois o filters se aplica à mesma coluna.
Next, examine a expressão [$$ in WA !!]
. Você pode se perguntar como essa fórmula poderia retornar o value de vendas em Washington and nada mais, já que o argumento filter inclui Oregon and a expressão de CALCULATE externa inclui um filter em Washington and Colúmbia Britânica. A resposta é que KEEPFILTERS modifica o comportamento padrão de CALCULATEand adiciona um filteradicional. Como a interseção de filters é usada, now a filter'Geography'[State Province Code]="WA" || 'Geography'[State Province Code]="BC")
externa é adicionada ao argumento filter'Geography'[State Province Code]="WA" || 'Geography'[State Province Code]="OR"
,. Como ambos filters se aplicam à mesma coluna, o filter'Geography'[State Province Code]="WA"
resultante é o filter aplicado ao avaliar a expressão.
Filter funções
de função
Eventos
Junte-se a nós na FabCon Vegas
31 de mar., 23 - 2 de abr., 23
O melhor evento liderado pela comunidade Microsoft Fabric, Power BI, SQL e AI. 31 de março a 2 de abril de 2025.
Registre-se hoje mesmo