-
Total de itens
420 -
Registro em
-
Última visita
Tipo de Conteúdo
Perfis
Fóruns
Desafios
Calendário
Downloads
Galeria
Posts postados por Rodrigo R1
-
-
Bom dia @FlavioG. Tudo bem, amigo.
Acredito que a aula abaixo irá ter ajudar a compreender o raciocínio necessário pra chegar no resultado que vc deseja.
"Ex. 2: Listando clientes recorrentes (compraram em dois meses seguidos) - [TC] 5A. Exercícios e Desafios com DAX" https://play.powerbiexperience.com/curso/tc-5a-exercicios-e-desafios-com-dax/5183/24946
Nesse módulo tem mais algumas aulas pra assistir que poderão complementar o aprendizado e o raciocínio lógico aplicado em casos semelhantes ao seu.
Espero que tenha conseguido ajudar.
Sucesso aí, amigo.
-
Bom dia, @douglasgodinho.
Mesmo com problema de integridade de dados do seu modelo, eu criei uma nova dcalendario para poder fazer as medidas e não te deixar sem resposta.
De toda forma, será preciso você revisar toda sua modelagem antes de continuar - para evitar problemas futuros e gerar análises não confiáveis.
As medidas "Clientes Novos R1", "Perdidos 3 meses R1 dt", "Perdidos 3 meses R1 filter", "Clientes Perdidos R1", foram feitas seguindo os princípios da Teoria dos Conjuntos da Matemática.
A "Perdidos 3 meses R1 dt" foi feita usando a função Dateinsperiod.
Já a "Perdidos 3 meses R1 filter" foi criada de outra forma, usando a função FILTER; sendo que as 2 apresentam o mesmo resultado, como pode ver acima. Aí você decide qual utilizar...rsrsrs....
"Clientes ACC R1" representa o acumulado de clientes ao longo do tempo. Essa medida foi usada para considerar a quantidade de clientes que até o contexto atual.
Eu usei essa medida para fazer o comparativo de clientes perdidos em 90 dias. Acredito que o resultado possa ser mais assertivo - apesar disso ser uma regra do negócio para se apurar o Churn. Então não tem certo ou errado - depende mesmo do que pretende visualizar. Já vi inclusive alguns vídeos apurando o Churn a partir do total de clientes - que no seu caso seriam 8.035. Mas essa quantidade só foi atingida em Agosto/2022 - por isso não achei justo usar esse valor para todos os meses anteriores, entendeu? Reforço que não tem certo ou errado - depende da regra do negócio, ok? Aí, mais uma vez, você decide...rsrsrs....seguindo as suas regras de negócios.
Vou deixar o PBIX com as medidas para sua análise.
Caso essa tenha sido a melhor resposta para o seu case, peço a gentileza de marca-la para fechar o post.
Espero que tenha conseguido ajudar.
Sucesso aí, amigo....
-
Prezado @douglasgodinho. Tudo bem, amigo?
Estou analisando seu modelo de dados e ele está com um erro grave de integridade em sua tabela dcalendário.
Veja abaixo que existem dias que pertencem a 2021 e foram informados como 2022 e 1 dia de 2023 que ficou como 2022.
As duas situações ocorreram no mês de Janeiro, o que tem prejudicado as análises de inteligência de tempo para chegar no resultado que você deseja.
Veja acima o valor acumulado da medida que eu criei, que ela está trazendo para Janeiro de 2022 o resultado que seria para dezembro de 2022.
O mesmo acontecendo para em Janeiro de 2021 que está com o resultado de Janeiro de 2022.
Estou há um bom tempo tentando entender o motivo de erros apresentados nas medidas que eu criei e eu não encontrava a razão disso.
Daí fui analisar sua base de dados e descobri o motivo.
Sendo assim, gentileza ajustar e disponibilizar uma base com a integridade de dados garantida, para que possamos conseguir te ajudar.
Aguardo seu retorno.
-
Bom dia @Filippe Reis. Tudo bem amigo?
Segue minha sugestão para solução do seu case:
Solução R1 =
var contexto = Min(dCalendario[Data])
var datamax = CALCULATE(MAX(Concluidas[DATA_FIM]),
all(dCalendario))
var acc1 = CALCULATE(
[Concluidas Simulador],
DATESYTD(dCalendario[Data])
)
var accmeta = CALCULATE([Meta],
filter(all(dCalendario),
dCalendario[Data] <= MAX(dCalendario[Data]) &&
dCalendario[Data] > EOMONTH(datamax, 0)))
return
if( contexto > EOMONTH(datamax, 0), accmeta + acc1, acc1)
Espero que tenha conseguido ajudar.
Sucesso aí, amigo....
- 2
-
Bom dia @Karollyne Layane. Tudo bem?
A lógica para a solução do seu case foi apresentada pelo Leo na Live 67 abaixo. Avance o vídeo até 01:21hs que ele apresenta uma dúvida aqui do fórum com problema semelhante. Aí seria só vc adaptar à sua realidade.
"[Extra] Live #67 Mestre Power BI - 4. Linguagem DAX" https://play.powerbiexperience.com/curso/4-linguagem-dax/1857/10510
Espero que tenha conseguido ajudar.
Sucesso aí...
- 1
-
@Divair Zarpelon, boa tarde amigo.
Você precisa indicar a solução que lhe atendeu para fechar esse tópico, conforme regras da comunidade.
Fico feliz que tenha conseguido lhe ajudar.
-
Ah sim, @Carlos Silvaentendi....
Vi que seus dados estão em Excel, né?
Talvez seja melhor leva-los para o PBI e lá construir as medidas necessárias, usando a função Rankx.
Mas para desempatar o ranking, sugiro criar um segunda regra a ser analisada em conjunto.
Pense no campeonato brasileiro de futebol onde temos 2 times empatados com a mesma quantidade de pontos.
A segunda regra a ser seguida é a quantidade de vitórias, depois saldo de gols (salvo engano...rsrsrs) e por aí vai...
Portanto, é usual utilizar uma segunda regra para esse desempate - ou até mais se necessário for.
No ranking de vendas, para o desempate, você poderia usar a quantidade de produtos vendidos. 2 vendedores tiveram o mesmo valor vendido, mas 1 teve 10 produtos e outro 20 produtos.
Aí a segunda regra poderia ser pela quantidade vendida para desempatar - aí nesse caso, quem vendeu 20 produtos seria o primeiro.
Ou talvez pelo ticket médio das vendas. Aí a lógica anterior se inverte: quem vendeu menos produtos, teve maior ticket médio de vendas e por isso seria o primeiro colocado em seu ranking.
Então o desempate passa ser uma nova regra que também tenha um significado importante para o negócio da empresa, entendeu?
A função Rankx do Dax até tem argumentos para ordenar esses empates.
Ela pode ser assim:
1
2
3
3
5
6ou assim:
1
2
3
3
4
5Para ser assim:
1
2
3
4
5
6você precisa criar realmente mais de uma regra para tentar fugir dos empates. Procura no curso por ranking que salvo engano o Leo também explica sobre esse critério de desempate.
Espero que tenha conseguido ajudar novamente.
Sucesso aí, amigo.
- 1
-
Boa noite @Divair Zarpelon. Tudo bem, amigo.
Segue a medida para a solução do seu case:
% A VENCER COM RANKING =
IF (
[ranking] <= SELECTEDVALUE ('Numero Fornecedores'[Numero Fornecedores]),
[% sobre total],
IF (
SELECTEDVALUE ( FORNECEDOR[Nome Fornecedor] ) = "Outros",
Divide(
CALCULATE (
_Medidas[A vencer],
FILTER (
ALL ( FORNECEDOR[Nome Fornecedor] ),
[ranking] > SELECTEDVALUE ('Numero Fornecedores'[Numero Fornecedores])
)
), [total a vencer])
)
)
Espero que tenha ajudado, amigo.
Sucesso aí....
-
Boa noite @Carlos Silva. Tudo bem amigo?
Eu já havia ajudado outro colega com essa mesma dúvida.
Vou deixar aqui a mesma resposta e acredito que irá lhe ajudar a criar a medida.
Sucesso aí, amigo.
-
Boa noite @douglasgodinho. Tudo bem amigo?
Deixa complementar a minha resposta depois de analisar o seu modelo de dados.
Segue na imagem acima, a medida que eu criei para considerar apenas os clientes que estão presentes na tabela fato depósito.
Fiz uma medida que os antigos são aqueles que anteriores ao contexto e os atuais aqueles que estão no contexto vigente.
A exceção dessas duas tabelas, traz os clientes que são os novos, ou seja, que ainda não tiveram presente na tabela fato - aí é só fazer uma contagem de linhas dessa tabela resultante.
Veja abaixo que quando o filtro está aplicado em janeiro, na tabela ao lado teremos os ids do clientes presentes naquele mês.
E como era de se esperar, a medida irá trazer o mesmo valor, pois todos são clientes novos, pois não temos data anterior a esse contexto - Janeiro/2021:
Perceba que o cliente 288144 - da primeira linha. Veja que ele é um cliente do contexto atual - portanto considerado na medida R1.
Agora quando fazemos o filtro em novembro, esse mesmo cliente não é mais considerado na medida R1, pois já apareceu anteriormente a esse contexto. Veja:
O que valida a medida R1 que foi criada.
Outro importante detalhe para você ajustar o seu modelo é que não existe uma integridade entre a tabela fato deposito e a tabela dimensão clientes, conforme imagem abaixo:
Veja que existe ids de clientes que estão na tabela fato e não estão na tabela dimensão. Isso pode trazer alguns problemas em suas análises.
O ideal é rever a modelagem para garantir que todos os clientes estejam presentes na tabela dimensão.
Espero que tenha conseguido ajudar de alguma maneira.
Sucesso aí, amigo.
- 2
-
Boa noite @Willian Nogueira. Tudo bem amigo?
Olha se seria isso que você precisa?
Espero que tenha ajudado, amigo.
Sucesso aí....
- 2
-
Que TOP amigo...
Fico feliz demais que minhas sugestões te ajudaram em seu case.
Conte comigo sempre que precisar.
Grande abraço, @Mario R e sucesso amigo....
-
Boa tarde, @douglasgodinho. Tudo bem amigo?
Deixa compartilhar contigo meu artigo do LinkedIn sobre esse assunto.
Eu fiz sobre a dimensão produto do meu modelo, mas o raciocínio lógico é o mesmo para clientes, vendedores, etc.
Espero que possa ajudar de alguma maneira.
Sucesso aí, amigo...
-
Boa tarde, @joaopaulocorreia.
O percentual é a divisão entre dois fatores.
na sua medida Divide so tem 1.
Pra conseguir fazer isso, vc precisa encontrar primeiro o valor total - que é feito usando a função ALL:
Total: CALCULATE[suamedida], ALL(tabeladimensaodocontextoavaliado)
Depois disso vc faz o DIVIDE:
% = DIVIDE( [suamedida], [total])
Espero que tenha conseguido ajudar.
Sucesso aí...
- 1
-
Boa tarde @pedrohmfortunato. Tudo bem amigo?
Você precisa acrescentar mais uma CACULATE na sua medida, acrescentando o filtro de inteligência de tempo SAMEPERIODLASTYEAR, assim:
ACUMULADO YTD RAIZ ALLSELECTED =CALCULATE(CALCULATE([Total Vendido],SAMEPERIODLASTYEAR(dCalendario[Data])),CALCULATETABLE(FILTER(ALLSELECTED(dCalendario),dCalendario[Data] <= MAX(dCalendario[Data])),dCalendario[Check Data Venda] = TRUE()),VALUES(dCalendario[Ano]) //POR FORA DA CALCUALTE TABLE)Caso contrário, pode criar essa medida também e depois usa-la no lugar da medida [Total Vendido].
ACUMULADO YTD RAIZ ALLSELECTED 2 =CALCULATE([SPLY Total Vendido],CALCULATETABLE(FILTER(ALLSELECTED(dCalendario),dCalendario[Data] <= MAX(dCalendario[Data])),dCalendario[Check Data Venda] = TRUE()),VALUES(dCalendario[Ano])) //POR FORA DA CALCUALTE TABLEEspero que tenha ajudado, amigo.
Sucesso aí....
- 1
-
Boa tarde, @jefersonmacedo2005. Tudo bem amigo?
Veja se esse seria o resultado que você precisa:
Eu usei as seguintes medidas para chegar nos valores acima:
Estágio Atual = CALCULATE(MAX(BASE[ESTÁGIO]), BASE[SEQ_HIST] = MAX(BASE[SEQ_HIST]))
HORA ATUAL = CALCULATE(MAX(BASE[DATA/HORA]), BASE[SEQ_HIST] = MAX(BASE[SEQ_HIST]))
SEQ ATUAL = MAX(BASE[SEQ_HIST])
Espero que tenha conseguido ajudar, amigo.
Sucesso aí....
-
Bom dia, @Mario R. Tudo bem amigo?
Sobre a sua dúvida 1, a forma de fazer com que o visual desconsidere o filtro de data aplicado a ele, talvez seria usar o raciocínio que o Leo explica na Live 72 - Eixos Dinâmicos.
"[Live #72 Mestre Power BI] Tornando os Eixos Dinâmicos em visuais com DAX Avançado - Lives sobre Linguagem DAX - Pilar 4" https://play.powerbiexperience.com/curso/lives-sobre-linguagem-dax-pilar-4/5102/26995
Talvez poderia desabilitar a interação entre o segmentador de datas e o visual. Mas teria que avaliar se seria a uma boa alternativa para seu case.
Agora para a sua segunda dúvida, acredito que a melhor alternativa seria seguir a postagem do Leo no YouTube, que até foi uma dúvida minha...rsrsrs...
Pq será preciso ajustar o modelo de dados, ou fazer em Dax, de forma que retorne todos os dias entre seu range de datas início e término.
Todas as 2 soluções são avançadas, mas foi o que acredito ser o raciocínio lógico pra encontrar o resultado desejado.
Espero que tenha ajudado...
Sucesso aí, amigo...
-
A multiplicação fica por fora de todos os parênteses...rsrs
Desse jeito ele está dentro da CALCULATE agora...rsrsrs
-
Então continuemos...rsrsrs
Vc colocou o *4 dentro da DATEADD. Ele é por fora...rsdsrsrs...veja a variável anterior...
-
E na DATEAAD troca o primeiro argumento por DCalendario[data].
A lógica utilizada é para voltar no tempo.
A função DATEAAD é capaz de fazer isso, então estamos voltando um mês anterior ao contexto. E na outra voltando 2 meses.
O difícil pra mim é que estou no celular. Aí num consigo testar o resultado.
Se não der certo o que vc deseja, disponibiliza a base de dados, com PBIX, se possível, que quando eu tiver no meu PC, eu faço os testes certinho antes de te enviar a solução.
-
Tá faltando um parêntese na última variável - Var Anterior2.
E na DATEAAD troca o primeiro argumento por DCalendario[data].
-
O problema está na DATEADD...rsrsrs
Eu coloquei uma argumento a mais que não precisava...retira essa variável de mês atual...rsrsrs
Como te falei que estou respondendo do celular...ai não tinha como testar a medida...rsrs
Veja se agora dá certo, por favor
-
Boa tarde, @Wilton.
Segue uma solução que passei para outro colega aqui da comunidade com caso semelhante ao seu.
Espero que tenha ajudado, amigo.
Sucesso aí...
- 1
-
Boa tarde, @schmeisck.
Acredito que seja assim:
Solução R1=
VAr Mêsatual = Max(dcalendario[data])
Var Atual = Sum(tabelafato[qtd]) * 6
Var anterior = CALCULATE (Sum(tabelafato[qtd]), DATEAAD(dcalendario, Mêsatual, -1, Month)) * 5
VAR anterior2 = CALCULATE Sum(tabelafato[qtd]), DATEAAD(dcalendario, Mêsatual, -2, Month) * 4
Return
Atual + anterior + anterior2
Espero que seja isso.
Talvez tenha que fazer algum ajuste nas medidas, pq estou respondendo do celular..rsrs...mas a lógica seria essa.
Espero que tenha ajudado.
Sucesso aí, amigo.
Calcular quantidade de itens que tiveram aumento no período
em Linguagem DAX
Postado
Boa noite, @Karollyne Layane. Tudo bem?
Criei uma sugestão para a solução do seu case, usando como base dados que você apresentou em sua última pergunta aqui no fórum.
Para validar a criação das medidas eu acrescentei mais algumas linhas na tabela fato, acrescentando mais 2 produtos diferentes.
Muito provavelmente você terá que adaptar ao seu modelo, mas o raciocínio será o mesmo para replicar as medidas.
Como o @Tiago Craici disse acima, o ideal é que você disponibilize os dados, mesmo que fictícios, mas que contextualize a sua realidade e qual o resultado esperado. Dessa forma, a gente consegue te ajudar de forma tempestiva e você não fica aguardando muito tempo por respostas. Enfim....deixa te apresentar minha sugestão:
Primeiro eu criei as seguintes medidas:
Atual = sum(Fato[Valor])
Anterior =
var maxdata = Max(Fato[Data])
var ultimadata = CALCULATE(Max(Fato[Data]),
dCalendario[Date] < maxdata)
var valor = CALCULATE([Atual], dCalendario[Date] = ultimadata)
return
valor
▲ = DIVIDE([Atual] - [Anterior], [Anterior])
A medida "Atual" é o valor atual do produto. A "Anterior", como o nome já diz, é o valor anterior. E a "▲" é a Variação entre elas - para identificar se houve ou não variação ao longo do tempo.
Para encontrar a quantidade de produtos que teve variação de seu valor, foi preciso criar uma tabela virtual, com base na tabela fato, adicionando a coluna de produtos, de data, e por fim a coluna de variação do valor dos produtos. Após isso eu fiz um filtro nessa tabela para considerar apenas as variações diferentes de zero (<>0). Perceba que essa condição traz resultado True ou False - sendo assim, o filtro foi aplicado quando essa condição for True. Por fim, fiz a contagem de linhas resultantes, após aplicadas todas essas condições. Obs.: Leia a medida de dentro pra fora (da SUMMARIZE para a COUNTROWS) que irá entender o raciocínio aplicado, seguindo a descrição acima.
Segue a medida:
▲ Valor =
COUNTROWS(
FILTER(
ADDCOLUMNS(
SUMMARIZE(Fato,
Fato[Produto],
dCalendario[Date]),
"Variação", [▲] <> 0), [Variação] = True))
A medida acima é um pouco mais avançada, mas nada que impeça a sua compreensão em entender os conceitos de DAX aplicados.
Após isso, chegamos no seguinte resultado:
Veja que o produto Café, teve 3 variações de valor ao longo do tempo. O suco apenas 1 vez. E o leite nenhuma alteração.
Por essa razão, a quantidade de variações de valor foram 4, considerando todo o período analisado.
Mas quando analisamos por mês, teremos que em Fevereiro apenas café teve variação; em abril 2 produtos (café e suco) e em julho, o café novamente.
Segue PBIX para melhor ajudar a compreensão das medidas criadas.
Espero que tenha conseguido ajudar de alguma maneira.
Te desejo muito sucesso....até mais....
Dúvida Karollyne Fórum.pbix