Ir para conteúdo

Rodrigo R1

Alunos
  • Total de itens

    420
  • Registro em

  • Última visita

Posts postados por Rodrigo R1

  1. Bom dia @jukawerner, tudo bem amigo?

    Segue minha sugestão para solução do seu case:

    O primeiro passo é encontrar a quantidade de dias úteis do seu modelo:

    Dias úteis = CALCULATE(COUNTROWS(dCalendario), dCalendario[Dia util] = "Sim")

    Obs.: na sua dcalendário será preciso ter uma coluna indicando se é dia útil ou não.

    Depois disso, teremos que encontrar a quantidade de dias úteis que já tivemos até a data do contexto avaliado - seria uma medida de acumulado:

    Acumulado dias úteis =

    var contexto = Max(dCalendario[Data])

    var ano = YEAR(contexto)

    var mes = MONTH(contexto)

    var acumulado = CALCULATE([Dias úteis],

                    dCalendario[Data] <= contexto &&

                    dCalendario[Ano] = ano &&

                    dCalendario[Mes] = mes)

     

    return

    acumulado

    Obs.: Perceba que precisamos considerar o ano e o mês do contexto para chegar no resultado desejado.

    Feito isso, iremos encontrar agora o percentual acumulado do contexto em relação ao total de dias do mês avaliado:

    % Acumulado dias úteis =

    var contexto = Max(dCalendario[Data])

    var ano = YEAR(contexto)

    var mes = MONTH(contexto)

    var acumulado = CALCULATE([Dias úteis],

                    dCalendario[Data] <= contexto &&

                    dCalendario[Ano] = ano &&

                    dCalendario[Mes] = mes)

     

    var totaldias = CALCULATE([Dias úteis], ALL(dCalendario), values(dCalendario[Meses]), values(dCalendario[Ano]))

    return

    DIVIDE(acumulado, totaldias)

    Obs.: Perceba novamente que a variável "totaldias", deve respeitar os contextos de ano e mês - por isso usamos a VALUES dessas colunas.

    Por fim eu criei apenas uma medida de meta para demonstrar na tabela abaixo o resultado final:

    Meta = 50000 * [% Acumulado dias úteis] - Aí é só você trocar sua medida de meta por esse valor "50000" que eu utilizei nesse exemplo.

    Pronto!!!

    image.png.288853fdc834783ef35bf55261403083.png

    Obs.: o meu modelo não está considerando os feriados. Por isso setembro teria 22 dias úteis, ok? 

    Espero que tenha conseguido ajudar.

    Sucesso aí, amigo.

    • Like 1
  2. Bom dia @floressdiego. Tudo bem amigo?

    Acredito que talvez seria melhor ajustar o seu modelo de dados pra fazer essas medidas.

    Sugiro assistir a MasterLive abaixo:

    [Live #57 Mestre Power BI] MasterLive Dashboard de People Analytics (RH) do ZERO - Business Case: People Analytics com Análises Avançadas (powerbiexperience.com)

    O Leo apresenta uma modelagem ideal para tratamento de dados de RH.

    Outra aula interessante também é a Live 2:

    WN2 - Live 2: Dashboard RH - Business Case: Recursos Humanos com Análise de Turnover (powerbiexperience.com)

    Espero que tenha conseguido ajudar.

    Sucesso aí, amigo.

  3. @Mário Martins bom dia.

    Conseguiu chegar no resultado desejado?

    A minha resposta te ajudou?

    Poderia marca-la como a solução do seu case?

    Obs.: Perguntas sem indicação de resposta por mais de 30 dias, o acesso ao fórum poderá ser suspenso. Cuidado pra não perder seu acesso, amigo.

    Sucesso aí....

  4. Boa noite, @rodrigocso. Tudo bem, Xará?

    Minha sugestão é voltar atrás e refazer seu modelo. Continuar assim, vai dar ruim... experiência própria amigo.

    Comece pela dcalendario. E pra isso, siga as orientações do Leo nessa Live aqui embaixo, onde ele disponibiliza um script em M para criar um dcalendario super completa. 

    https://play.powerbiexperience.com/curso/lives-sobre-etl-pilares-1-e-2/5098/26973

    Eu a utilizo sempre nos meus cases.

    Usando essa dcalendario, suas medidas ficarão bem mais simples e assertivas.

    Através dela vc conseguirá usar filtros na CALCULATE pra chegar nos seus resultados, comparando esses períodos de safra, por exemplo. 

    Espero que tenha consigo ajudar de alguma maneira.

    Sucesso aí...

    • Like 2
  5. Bom dia, @Diego Oliveira Morais. Tudo bem amigo?

    Ontem a noite eu ainda estava revisando sua dúvida e vi agora que você marcou como solucionada. Tinha até um complemento seu aqui que hoje não está visível mais. 

    Caso minha resposta tenha sido a mais indicada que você recebeu para a solução do seu case, peço gentilmente que então que a selecione como a melhor solução apresentada. Pois é a premissa aqui do fórum - até mesmo para que outros colegas possam localizar a resposta de forma fácil em dúvidas semelhantes a sua.

    Por outro lado, se vc encontrou outro caminho, tbm peço que compartilhe conosco aqui fórum a sua solução. Ficarei grato em poder aprender formas diferentes de se chegar no mesmo resultado. E assim vamos contribuindo com o crescimento mútuo, fortalecendo cada vez mais a nossa comunidade Power BI Experience. 

    Mas se ainda continuar a dúvida, conte comigo.

    Valeu...sucesso aí amigo....

     

    • Like 1
  6. Boa tarde Diego. É que sua base de exemplo veio muito enxuta. Apenas 3 clientes pra avaliar ao longo do tempo. 

    Sobre cessado e reinício dar o mesmo resultado é que um faz análise em relação ao ciclo anterior e o outro faz análise em relação ao ciclo atual.

    No ciclo 13 (anterior) o cliente A não realizou a compra. Até então ele estava ativo - do 8 ao 13.

    No ciclo 14 (atual) o mesmo cliente A comprou novamente. 

    Conforme meu entendimento sobre a sua regra, o cliente cessado é que deixou de comprar nos ciclos anteriores ao atual.

    E para o reinício, é o cliente que voltou a comprar.

    Portanto, ao analisar o ciclo atual - 14 - esse mesmo cliente A virou cessado para o clico anterior...mas virou ao mesmo tempo reinício para o ciclo - já que ele comprou novamente, entendeu?

    Por isso que dá a impressão de mesmo resultado.

    Mas como eu disse, foi o que eu havia entendido do seu case. 

    Se não é isso, gentileza detalhar mais que posso continuar tentando ajudar.

    Sucesso aí...

  7. Bom dia, @Anderson Oliveira. Tudo bem, amigo?

    Ontem eu respondi um post semelhante ao seu:

    O raciocínio lógico utilizado é a Teoria de Conjuntos da Matemática pra fazer essas medidas.

    Como eu disse na resposta do colega, pesquisa no curso por "clientes" que terá muitas aulas a respeito.

    E te convido a conhecer meu artigo no LinkedIn sobre esse assunto - link no post do colega.

    Espero que tenha conseguido ajudar.

    Sucesso aí amigo...

    • Like 1
    • Confused 1
  8. Boa noite, @Diego Oliveira Morais. Tudo bem, amigo?

    Segue em anexo o PBIX com as medidas para a solução do seu case.

    Para reforçar os conceitos, sugiro você pesquisar no curso pela palavra "cliente" que irá encontrar muitas aulas do Leo sobre esse assunto.

    Eu publiquei um artigo recentemente no LinkedIn que trata sobre essa mesma lógica. Apesar de ser direcionado para produtos, o raciocínio é o mesmo para clientes, vendedores, etc.

    Te convido a conhece-lo se quiser reforçar ainda mais os conceitos:
    https://www.linkedin.com/posts/rodrigo-r1_powerbi-gestaeto-vendas-activity-6959732932722720768-p1uK?utm_source=share&utm_medium=member_desktop

    Espero que tenha conseguido ajudar.

    Sucesso aí, amigo....

    HIst_Segmentacao_teste.pbix

    • Like 1
  9. Boa noite, @SCezarotto. Tudo bem amigo?

    Realmente o @Renato Rossato tem razão.

    Facilita muito pra gente você disponibilizar a base de dados e o PBIX, mesmo que fictício.

    Mas vou pedir a permissão para compartilhar contigo uma sugestão que você deverá ajustar ao seu modelo de dados.

    A medida é:

    Ultimo Valor =

    var maxdata = Max(fDados[Data])

    var valor = CALCULATE([Soma], dCalendario[Data] = maxdata)

    return

    valor

    No exemplo que você apresentou, você deve ter colocado para trazer o maior valor. Algo assim: CALCULATE(Max(fDados[Valor])) - veja que no dia 03/08 possui o maior valor entre os demais - por isso que no contexto de mês apresenta essa valor, entendeu?

    O que você precisa é encontrar o valor na maior data do período analisado. Então encontramos a maior data com Max da tabela fato, e depois usamos essa informação no filtro da Calculate.

    Espero que tenha conseguido ajudar de alguma maneira.

    Mas das próximas....manda aí com a base de dados e o PBIX, hein???? rsrsrsrs....

    Sucesso aí, amigo.....

    • Like 1
  10. Boa noite, @Katherin. Tudo bem?

    Bom...pra gente conseguir evoluir nessas medidas, precisaremos dar alguns passos pra trás para corrigir seu modelo de dados.

    image.png.492ab5480dfcf888fa105231327b7b2b.png

    Conforme imagem acima, acredito que precisam ser ajustadas desde a classificação das tabelas e até mesmo a criação de novas dimensões.

    A tabela dprojetos e dsprint me parecem mais tabelas fato do que dimensões, pois possuem registros de eventos ao longo do tempo.

    E elas ainda estão interligadas com outra tabela fato - "Creatd and  Closed" - o que não é uma prática recomendada.

    Inclusive chamo a atenção para os relacionamentos biderecionais e de muitos para muitos. Se você perceber eles são relacionamentos fracos - veja que tem uma sinalização que se parece mais ou menos assim < > entre cada tabela - o que poderá trazer problemas na criação da medidas e análises.

    Portanto, procure garantir sempre o modelo star schema, onde dimensão filtra fato e os relacionamentos sejam constituídos de 1 para muitos (1 : *) - tal como foi entre dcalendário e a "Created and Closed".

    Minha sugestão então seria a criação de dimensão para projetos e outra para a sprint, mantendo a dcalendario e mais 3 fatos: fprojetos, fcreatedandclosed, fsprint. Seu modelo ficaria então com 3 dimensões e 3 fatos.

    Você disse ainda que a tabela de sprint não estaria ligada na dimensão dcalendario. Acredito que você tenha tentado fazer essa relacionamento, mas ele deu erro, pois iria gerar um dependência circular. Isso ocorreu em função dos relacionamentos construídos acima. O que já é uma sinalização também do próprio PBI que não é uma boa ideia seguir como está....tanto que ele nem deixa construir esse relacionamento.

    Então é isso...chegamos num ponto que não iremos conseguir evoluir sem antes ajustar seu modelo de dados, entendeu?

    Vi que na indicação da solução você está usando o Excel - que nesses casos é mais simples construirmos o resultado desejado, pois usamos as células. Já no PBI o conceito é de colunas de dados (colunar), que somente será efetivo, se a modelo de dados estiver bem construído, dentro das boas práticas recomendadas.

    Assim que conseguir ajustar seu modelo, basta envia-lo novamente e me avisar aqui no fórum que terei maior prazer em continuar te ajudando.

    Te desejo muito sucesso....

  11. Boa noite @PabloOliveira. Tudo bem, amigo?

    Como te falei anteriormente, minha sugestão para a sua solução passa por criar uma tabela de segmentação, conforme o seu enunciado:

    image.png.2575b2ff40046c680e63e280f4e671b3.png

    Feito isso, vamos para as medidas, e depois usar as Faixas em outra tabela para segmentar os clientes, conforme tela abaixo:

    image.png.8a44fda47da3ef7c71f90ce951d3d871.png

    Segue a medida do percentual:

    % Faixas =

    var total = CALCULATE([Faturamento], ALLSELECTED())

    var faixas = [Fat Faixas]

    return

    DIVIDE(faixas, total)


    O PBIX está em anexo.

    Espero que tenha ajudado de alguma maneira.

    Sucesso aí, amigo....

    BaseFicticia.pbix

  12. Vou aproveitar e deixar a solução também, @Felipe Capitani:

    A medida abaixo vai chegar no resultado que você deseja, conforme tela:

    image.png.7ff82dcd7d04d57af2dba5d73638e146.png

    Eu acrescentei mais uma medida, caso queira exibir o nome das empresa em um cartão por exemplo:

    image.png.a4ce115ac7620b7ca27564774d6f8498.png

    Como te falei antes todo o raciocínio lógico por trás da construção dessa solução está no meu artigo do LinkedIn que te enviei anteriormente.

    Segue PBIX em anexo.

    Espero que tenha conseguido ajudar.

    Sucesso aí, amigo...

    2090288175_NovosClientesmesvigente.pbix

    • Like 1
  13. Boa noite, @Felipe Capitani. Tudo bem amigo.

    Deixa compartilhar contigo uma artigo que publiquei recentemente no LinkedIn que traz solução semelhante: eu fiz para produtos, mas é só vc adaptar a sua realidade e seguir o mesmo raciocínio lógico para construir a solução para clientes.

    https://www.linkedin.com/posts/rodrigo-r1_powerbi-gestaeto-vendas-activity-6959732932722720768-p1uK?utm_source=linkedin_share&utm_medium=android_app

    Espero que tenha conseguido ajudar.

    Sucesso aí...

    • Like 1
  14. Boa tarde @Alan Pacheco. Tudo bem amigo?

    Aproveitei agora a tarde para revisar a sua dúvida e postar uma solução definitiva para o seu case.

    Peguei o arquivo Excel que você enviou e criei o seguinte modelo:

    image.png.0e5178233429dc5edbc133ecf4eaeead.png

    Veja que é um modelo simples, star schema, com relacionamento de 1 : * onde dimensão filtra fato - seguindo as boas práticas.

    Aproveitei e usei um modelo de dcalendario que o Leo disponibilizou na Live 52 - ela é super completa - eu a utilizo sempre em meus modelos e recomendo utiliza-la.

    Perceba que a coluna de datas das 3 tabelas fato estão no formato data dd/mm/aaaa - isso para garantir a integridade dos relacionamento, visto que a granularidade da dcalendario é nesse mesmo formato de data também.

    Essa é uma etapa de extrema importante, pois se você deixar as tabelas fato no formato de semana e depois criar o relacionamento entre a dcalendario e as tabelas fatos, usando a coluna de semana, irá criar relacionamentos muitos para muitos (* : *) e isso poderá não trazer os resultados esperados.

    Após realizar todas as etapas acima, vamos para as medidas:
     

    Compras = sum(fCompra[Compra])

    Consumo = sum('fCons  Med'[Consumo Méd Ultimas 5 semanas])

    Estoque = Sum(fEstoque[Estoque])

    Resultado = [Estoque] + [Compras] - [Consumo]
     

    Estoque Final R1 =

    var vmaxcompra = MAX(fCompra[Data])

    var vmaxconsumo = Max('fCons  Med'[Data])

    var vmaiordata = Max(vmaxcompra, vmaxconsumo)

    var vdatamax = EOMONTH(vmaiordata,0)

     

    var vultimoregistroestoque = CALCULATE(max(fEstoque[Data]),

                            dCalendario[Data] <= vdatamax)

     

    var vresultado = CALCULATE([Resultado],

                                dCalendario[Data] = vultimoregistroestoque)

     

    var vacumulado = CALCULATE(

                        [Compras] - [Consumo],

                        dCalendario[Data] <= vdatamax &&

                        dCalendario[Data] > vultimoregistroestoque)

    return

    if([Estoque] = BLANK(), vresultado + vacumulado, vresultado)

    Jogando os dado em uma tabela, teremos seguinte resultado:

    image.png.fd582dd6d1b7a058d6dd5789401aa06a.png

    E veja que independente do formato de semana a ser apresentado, ou até mesmo demonstrar por mês, o resultado é o mesmo.

    Por fim, a minha sugestão é você revisar o modelo de dados, pois ele pode não estar seguindo as boas práticas e com isso a medida acima pode não apresentar o comportamento desejado.

    Segue o PBIX em anexo.

    Espero que tenha conseguido ajudar novamente e que você possa encontrar sua solução, pois sei que você está buscando isso há alguns dias.

    Sucesso aí, amigo....

    Solução Alan Forum.pbix

  15. Oi, @Katherin, boa tarde.

    Poderia me explicar melhor sua dúvida pra ver se consigo te auxiliar? 

    Quando vc disse no enunciado: "calcular a média dos 3 ultimas valores"...

    Qual a ordem utilizada para classificar esses "3 últimos" que não seja temporal? 

    Ate pq na sua tabela tem uma colunas de datas que traz essa ordem cronológica.

    Se não for essa a ordenação, precisaremos entender melhor essa classificação pra chegar no resultado que vc deseja.

    A medida TOPN vai trazer uma tabela, que tbm será ordenada por algum valor escalar: seja valor de vendas, quantidade, etc...Ex: Quais os 3 maiores produtos vendidos em valor de venda....ou em quantidade vendida...etc.

    Aguardo seu retorno para continuar lhe ajudando.

    Sucesso aí...

  16. Boa tarde @PabloOliveira. Tudo bem amigo?

    Sugiro você pesquisar no curso por "segmentação dinâmica". Tem muitas aulas sobre esse tema, que acredito ser o caminho pra encontrar a resposta desejada. 

    Veja essas Lives tbm:

    "[Live #27 Mestre Power BI] Análises Avançadas com DAX: Segmentação Dinâmica, Comparação Anual, etc.. - Lives sobre Linguagem DAX - Pilar 4" https://play.powerbiexperience.com/curso/lives-sobre-linguagem-dax-pilar-4/5102/26949

    "[Live #23 Mestre Power BI] Usando DAX para Segmentar Clientes por RFV: Recência, Frequência e Valor - Lives sobre Linguagem DAX - Pilar 4" https://play.powerbiexperience.com/curso/lives-sobre-linguagem-dax-pilar-4/5102/26945

    Acredito possa adaptar à sua necessidade.

    Espero que tenha ajudado.

    Sucesso aí...

  17. Você tem razão, @Tiago Craici, eu me equivoquei no entendimento da regra que o @barros_jvs passou no enunciado.

    Eu fiz o acumulado de TODO o período anterior ao contexto. Mas era para considerar apenas o anterior. Por isso que nas 2 primeiras as nossas soluções coincidiram o resultado...rsrs.

    Mas seguindo a minha solução apresentada anteriormente, bastaria ter acrescentado mais uma condição na Calculate para chegar no resultado desejado, veja:

    image.png.727acab0b565be7aa0217128fb8d1487.png

    O melhor de tudo é que aprendemos 2 maneiras de chegar ao mesmo resultado...rsrsrs

    Valeu, Tiagão....

  18. Boa noite @barros_jvs. Tudo bem amigo?

    Segue minha sugestão para a solução do seu case, usando medidas e não coluna calculada; visto que a boa prática é não fazer cálculos em colunas, ok?

    Foram construídas 3 medidas:

    Valor A = sum(Planilha1[Custo A])

    Valor B = sum(Planilha1[Custo B])

    Acumulado R1 =

    CALCULATE([Valor A] / [Valor B],

    Planilha1[Periodo] <= Max(Planilha1[Periodo]))

    Chegando no resultado abaixo, que acredito ser sua necessidade:

    image.png.449afa44f84164281c501e2a479e9731.png

    A ideia foi criar uma medida de acumulado e dentro da Calculate já faz a divisão que você precisa entre os valores acumulados individualmente - A e B.

    Usei o seu próprio modelo de dados fornecido como exemplo, mas a boa prática é ter uma tabela calendário até pra usar suas colunas no filtro da Calculate, ok?

    Apesar de dar certo, usei somente aqui...rsrsrs...não faça isso no seu modelo original....rsrsrs....use a dcalendário.

    Segue o PBIX em anexo.

    Espero que tenha conseguido ajudar. E se minha resposta foi a solução para a sua dúvida. Gentileza marca-la para fechar o tópico.

    Sucesso aí, amigo....

    1198924650_CustoPercentualAcumulado.pbix

×
×
  • Criar Novo...