Olá amantes de visuais de tabela e matriz no Power BI, tudo
bem?
Hoje vamos falar de um caso que vejo bastante nos grupos do
Power BI.
“O calculo na linha está batendo mas no total não e agora?”
Mas antes de iniciarmos, que tal deixar aquela sua inscrição
marota no meu canal no youtube que está recheado de vídeos legais, vai lá seu
pão duro de like youtube.com/rafaelmendonca
Agora que você já aliviou sua pão-durice você merece
conteúdo .... kkkkkkkk
Vamos lá, temos então a seguinte tabela gerada no meu
conjunto de dados
Essa tabela possui uma lista de vendas realizadas por dois
vendedores com o numero da ordem da venda, um valor unitário e uma quantidade
de itens em cada venda.
O que queremos é bem simples meu jovem, calcular o valor total de cada venda e ter um total de todas as vendas...
O que queremos é bem simples meu jovem, calcular o valor total de cada venda e ter um total de todas as vendas...
Aí você muito garotão usa a seguinte expressão DAX:
E depois joga isso numa tabela.
Lindo neh???
Mas o totalizador trouxe um valor que não tem nada a ver com
o totalizador real que deveria.
E de onde ele tirou esse valor?
Bem isso veio simplesmente da multiplicação dos totais de cada linha.
Isso ocorre porque quando usamos uma função não iterante, estamos criando cálculos que usam contexto de Filtro.
Rafael mas não tem nenhum filtro aplicado aí...
Bem isso veio simplesmente da multiplicação dos totais de cada linha.
Isso ocorre porque quando usamos uma função não iterante, estamos criando cálculos que usam contexto de Filtro.
Rafael mas não tem nenhum filtro aplicado aí...
Ow animal... Claro que têm...
O próprio nome do vendedor e a Ordem de Venda cria um Filtro
implícito que afeta nosso cálculo.
Traduzindo o que estamos fazendo linha a linha é filtrando o
Vendedor X na Ordem de Venda Y, e multiplicando a soma da quantidade pela soma
do valor de vendas.
E ele faz essa analise a cada filtro implícito no nosso
visual de tabela em cada linha.
O problema que quando ele chega na linha totalizador, SIM o
TOTALIZADOR É UMA LINHA DO NOSSO VISUAL, ele procura os filtros e não havendo
filtros para vendedor e nem Ordem de venda, então ele simplesmente Soma toda a
coluna de Quantidade e Multiplica pela Soma de toda a Coluna Valor e nos dá um
resultado bizarro.
Temos então a velho logica que a soma dos produtos não é
igual ao produto das somas.
E como corrigir isso?
Em DAX temos as chamadas funções iterantes, que diferente
das demais não trabalham em contexto de Filtro mas em contexto de Linha.
O que isso quer dizer?
Quer dizer que essas funções tem a peculiaridade de poder
analisar o meu cálculo LINHA A LINHA da minha tabela Fonte, e não somente com
base no filtro implícito no meu visual de tabela.
Vamos demonstrar usando a função iterante que substituiria a
nossa expressão anterior.
Como queremos uma SOMA dos totais iremos utilizar a função
iterante para soma chamada SUMX.
E agora sim, tanto linha a linha quanto no total está
correto o nosso valor.
E é isso pessoal, é importante conhecer a teoria para entender o que na prática está ocorrendo com nossos cálculos.
E se quiser conhecer mais sobre funções dax, temos o nosso guia dax em www.guiadax.com.br onde você pode consultar videos que existem em português da maioria das funções DAX.
E se quiser conhecer mais sobre funções dax, temos o nosso guia dax em www.guiadax.com.br onde você pode consultar videos que existem em português da maioria das funções DAX.
Grande abraço e até a próxima
Perfect, ótimo material e didática. Abs
ResponderExcluirExcelente dica! E quando temos o valor de tabela(index 100), o desconto e o acrescimo aplicado? Qual seria a forma mais correta de fazer a conta? utilizar a CURRENCY no valor de tabela e no valor final? Um abs!
ResponderExcluir"Ow animal... Claro que têm" kkkkkk, ótimo material Rafael, aguardo os próximos.
ResponderExcluirabs
Boa tarde. poderia fazer uma explicação de como realizar o totalizador sintético conforme esse vídeo fantástico da analisador horizontal e vertical ... gostaria de saber como vc consegue fazer esse totalizar de contas analíticas e depois o totalizador.
ResponderExcluirBom dia,
ResponderExcluirestou com um caso onde isso não funcionou,
por exemplo:
total forecast está em uma tabela, e o peso líquido está em outra tabela
Criei uma medida onde multiplico Forecast * peso líquido.
funcionou , e os valores batem
mas o totalizador da tabela, não faz a soma de jeito nenhum.
aí nesse caso qual seria a solução?
Estou com esse mesmo problema William, encontrou alguma solução?
Excluirolá, também estou com esse problema.. conseguirma?
ExcluirTambém estou com esse problema.
ExcluirTambém estou com esse problema, conseguiu resolver?
ExcluirPessoal, estou com o mesmo problema, vcs conseguiram alguma solução?
ExcluirBom dia pessoal 2022 e agora sou eu que estou com esse problema rs
Excluiralguem conseguiu?
2023 também estou passando por isso
ExcluirAgora eu em 2024 enfrento o mesmo problema
ExcluirPara o totalizador bater, vocês tem que usar o Sumx com Summarize Exemplo: Sumx(Summarize(Calendario, Ano/mes), calculate(forecast * Peso liquid))
ExcluirValeu Rafa!!! A solução estava no DAX básico, e eu aqui fazendo medidas mirabolantes hahaha. Preciso dar uma revisada aqui nos estudos 😅
ResponderExcluirObrigado pelo post!