Ir para conteúdo

Rodrigo R1

Alunos
  • Total de itens

    420
  • Registro em

  • Última visita

Posts postados por Rodrigo R1

  1. Boa noite @João Henrique. Tudo bem amigo?

    Deixa te passar alguns detalhes sobre o seu case.

    image.png.545a2f906453e1a3bba314a237eef5df.png

    Quando eu abri o seu PBIX, verifiquei que essa coluna de vendedor, você usou a coluna da tabela fato de vendas.

    Essa não é a melhor prática. Devemos usar os dados das tabelas dimensão para isso, ok?

    Tanto que eu estava fazendo medidas de contagem de devolução - que são dados da tabela fato devolução - e estava dando o mesmo resultado para todos os vendedores.

    Quando eu troquei pela coluna da tabela dimensão, o resultado foi o esperado, conforme acima.

    E as medidas foram as contagens distintas de documento das duas tabelas fatos e depois a diferença entre elas - acredito que seria o objetivo que você esperava.

    Percebi ainda que você estava usando as colunas de valores das tabelas fatos na matriz acima e fazendo aqueles cálculos que o próprio PBI faz - medidas implícitas.

    Mais uma boa prática é fazer as medidas explícitas - você mesmo cria as medidas como eu fiz. Não tem certo ou errado...rsrsrs...apenas boa prática, ok?

    Vi tbm que vc usou como relacionamento entre as tabelas dimensão vendedores e a fato o nome dos vendedores, apesar de ter no seu modelo os códigos de vendedores nas duas tabelas envolvidas. Mais uma boa prática é usar os códigos para relacionamento, ok?

    E por fim, nas tabelas fatos, vc não precisa deixar todas as colunas de descrição. Deixamos apenas data, valores e os id's que são as colunas para se criar os relacionamentos entre as dimensões, ok?

    Tudo que for característica fica na dimensão. Ex: o nome dos vendedor não precisa estar na fato - apenas na dimensão. Na fato fica apenas o Id's dos vendedores, como já falei antes.

    Segue abaixo o PBIX com as correções que eu fiz, conforme comentários acima.

    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....

    1943927025_GiovanaLima.pbix

  2. Boa noite @jefersonmacedo2005. Tudo bem amigo?

    Eu ainda não consegui entender a sua resposta esperada...rsrsrs....

    Abri o Excel que você enviou, e vi que tenha uma aba de resposta e nela possui uma data em vermelho logo na primeira coluna:

    image.png.802a6f5997a7f200adda0ab8148406da.png

    E me chamou atenção que essa coluna de data não possui na tabela base, com os dados a serem analisados.

    Então eu não consegui fazer essa conexão de como chegar na resposta esperada.

    Além disso, alguns itens se repetem em vários dias dessa tabela de resposta, conforme selecionados acima.

    Outra coisa que me chama a atenção é que se a gente filtra a tabela base, ela só apresenta 21 IDs no estágio cotação:

    image.png.597a05773fe387929e0c9c1448ae9d2a.png

    E na sua resposta, teriam bem mais que esses 21 da base de dados.

    Me desculpe mas eu não consegui entender mesmo a regra do negócio aplicada para chegar na resposta desejada.

    Se puder demonstrar os cálculos aplicados, qual a razão dessa tabela de data em vermelho, detalhar melhor qual é o ramo de negócios....isso poderia me ajudar a chegar na sua resposta, amigo.

    Aguardo seu retorno. Vamos juntos encontrar a sua solução. Conte comigo.

    Sucesso aí....

     

  3. Boa noite, @FrancoAndre. Tudo bem amigo.

    Como eu já suspeitava, seu problema é de modelagem - existem falhas na integridade dos dados.

    Veja as tabelinhas abaixo, com a coluna que vc usou para relacionamento entre as tabelas:

    image.png.cf22c5ce9805c579884995669505af7e.png

    Só aí já dá pra identificar uma falha - Nota de Leitura numa tabela e Nota Leitura nas outras duas.

    Além de existir realmente linhas em branco da Tabela Fato - FotogLeiTac - isso precisa ser investigado pra entender a razão disso.

     

    image.png.bb2ffd84f2fffe6f639856dfdc6bc420.png

    image.png.962f509c71270b1689be3a6ec955ae13.png

    Veja agora as duas imagens acima.

    A primeira é da dimensão e a segunda da fato Fotog.

    A contagem de caracteres é divergente de uma para a outra. Existe um espaço no item da tabela fato. Isso faz com que os itens seja divergentes.
    E você havia dito que tinha feito essa conferência, hein!?!?!?...rsrsrs....

    Então... como eu havia mencionado nas respostas anteriores, precisa rever o modelo.

    E isso amigo, é o que mais fazemos...rever o modelo a todo tempo...até chegar no modelo ideal - pra garantir a integridade dos dados.

    Mais uma vez eu sugiro você fazer uso de chaves primárias/secundárias (Id's) para relacionamento entre as tabelas - exatamente para evitar ou minimizar falhas como essas acima - além de ser a boa prática em BI.

    Se for dividir o tempo dedicado para a criação do relatório, acredito que uns 60% do tempo seria voltado para extração de dados, modelagem - ETL.

    Talvez seja essa a mais importante etapa desse processo.

    Então é isso amigo....revisar o tempo todo....não deu certo...volta no modelo....não deu certo de novo....volta no modelo outra vez...10 vezes....rsrsrs....

    Experiência própria...rsrsrsrs....

    Enfim....espero que tenha conseguido ajudar. E se minha resposta tenha sido a solução para a sua dúvida, gentileza marca-la para fechar o tópico.

    Sucesso aí, amigo.

     

  4. Alan, estou lendo as suas considerações e juro que não estou conseguindo entender a sua necessidade. Ainda mais que você descreveu seu problema, como é o seu modelo de dados qual a sua necessidade e o resultado esperado.

    Utilizei a base de dados que vc disponilizou e encontrei exatamente o resultado que vc apontou acima, destacado em amarelo e verde.

    O fato de usar dia, semana ou mês num faz diferença pra lógica a ser aplicada em Dax.

    Se vc perceber tanto na imagem e no PBIX que eu mandei, só existe estoque até o mês 06 - que poderia ser a semana 6 ou a 33, tanto faz.

    Para os demais itens de compra e consumo, existem dados com datas posterior ao estoque.

    Aí vc disse que queria uma projeção do estoque com base nos demais itens.

    E veja que fiz exatamente isso, seguindo as regras do negócio, conforme vc informou.

    Como no exemplo que eu enviei, o estoque só vai até o mês 06, ele foi projetado até dezembro, que é o último mês do modelo. E do mês 06 ao 12, a medida seguiu a regra do negócio - tanto que apresentou exatamente o resultado espero pelo seu arquivo Excel.

    Enfim...sua dúvida é muito boa pra praticar conceitos de Dax e eu acreditei que tinha chegado no resultado que vc esperava - já que o comportamento da medida cumpriu esse objetivo.

    Apesar de que, mesmo sendo base fictícia semelhante ao modelo original, não é a mesma coisa ao usar a base oficial. Mas como são dados sensíveis, tbm é compreensível que não podem ser compartilhados. 

    Desejo fortemente que vc encontre a solução o quanto antes, amigo.

    Sucesso aí....

    • Like 2
  5. Alan....

    dá pra resolver isso tbm sem a necessidade de mexer no seu modelo.

    Fiz o teste aqui e aproveitei para ajustar a medida com variáveis pra ficar mais elegante...rsrsrs

    Estoque Final R1 =

    var maiordata = max(dcalendario[Date])

     

    var ultimolancamento = CALCULATE(Max(Estoque[Semana]),

                           dcalendario[Date] < maiordata,

                            Estoque[Estoque] <> BLANK())

     

    var ultimoestoque = CALCULATE([Resultado R1],

    dcalendario[Date] = ultimolancamento)

     

    var acumulado = CALCULATE([Compra R1] - [Cons Medio R1],

    dcalendario[Date] <= MAX(dcalendario[Date]) &&

    dcalendario[Date] > ultimolancamento)

    return

     

    if([Estoque Inicial R1] = BLANK(),

    ultimoestoque + acumulado, [Resultado R1])

    Basta você colocar a condição de estoque diferente de blank na variavel ultimolancamento.

    Agora num vai dar essa diferença mais, amigo....rsrsrs

    Sucesso aí...

  6. Alan,

    baixei o outro excel que vc enviou e vi que vc fez alguns ajustes acrescentando alguns dados.

    image.png.2ab40d78c3b29d15c0110460718d5faa.png

    Por essa imagem eu entendi que na sua tabela de estoque do seu modelo existem semanas com o valor em blank??? É isso mesmo?

    Se for isso mesmo, não existe a necessidade de ter uma linha numa tabela fato onde não houveram registros, seja compra ou venda, etc.

    Por que se isso ocorrer, a medida que foi criada, ela irá considerar a última linha com dados e irá fazer as medidas a partir dela.

    Lembrando que mesmo blank, ele é considerado como valor para a medida buscar a máxima data do contexto.

    Nesse exemplo aí, a máxima data do contexto é a semana 11 e o seu valor será zero - blank.

    Por isso a medida que te passei está dando a impressão de estar fazendo apenas a conta de compras - consumo. Mas na verdade ela está fazendo a primeira parte, só que o resultado é: zero(blank) + compras - consumo.

    Portanto, a minha sugestão é que você retira as linhas em branco da sua tabela fato de estoque, pois não são necessárias.

    Gentileza realizar mais esse teste que deve resolver.

  7. Boa noite, @Alan Pacheco.

     

    Se a sua granularidade de dados é por semana, basta você trocar na variável "maiordata" para maior semana usando como valor a maxima semana da sua dcalendário.

    Então a nova variável ficaria assim:

    maiorsemana = max(dcalendario[contadorsemana])

    E onde for dcalendario[date] você troca por dcalendario[contadorsemana])

    O restante fica igual....pois a lógica é considerar períodos anteriores ao contexto - seja ele dia, semana, mês ou ano.

    Só seguir esse raciocínio que vai dar certo, amigo.

    Faz um teste aí e manda o resultado aqui pra gente conferir.

  8. Boa tarde, @joaopaulocorreia. Tudo bem?

    Tenho percebido você criando outros posts aqui no fórum e esse aqui ficou pra trás, ainda sem indicação da solução.

    Continua alguma dúvida sobre ele? Ou vc ja conseguiu solucionar de outra maneira?

    Minhas respostas te ajudaram?

    Alguma delas pode ser considerada a solução do post?

    Sucesso aí...

  9. Bom dia, @FrancoAndre.

    Faça o seguinte:

    Crie uma medida de COUNTROWS da tabela fato Fotog.

    Coloque num visual de tabela a coluna de frentes da dimensão e essa medida acima - de contagem de linhas.

    Desse jeito iremos confirmar a integridade dos dados entre as tabelas. Acredito que haverá resultado a ser apresentado.

    Outro situação que vc precisa analisar, é o que representa essa medida Tentativas Execução (Visitas). Pois pode ser que realmente não exista correspondência na tabela fato para aquelas 2 frentes em branco.

    Caso ainda não seja isso, coloque em outra tabela as colunas correspondentes do relacionamento entre a dimensão frentes e a tabela fato Fotog - pra verificar se existem colunas em branco.

    Colunas em branco na dimensão não tem problema. O que não pode é coluna em branco na fato.

    Mais um detalhe: se o relacionamento estiver entre colunas de texto, essas colunas precisam estar exatamente idênticas. Se tiver um espaço a mais em algum, ele será considerado como outro elemento, entendeu?

    O ideal é que vc use Id's, tanto na dimensão, quanto na fato, para identificar as frentes - chaves primárias.

    Enfim...faça toda essa verificação acima, amigo, e depois dá um retorno.

  10. Bom dia, @Alan Pacheco. Tudo bem amigo.

    Segue minha sugestão para a solução do seu case.

    Primeiro foram criadas as medidas de estoque, compras e consumo médio - que nada mais são do que a soma das colunas respectivas:

    Compra R1 = sum(Compra[Compra])

    Estoque Inicial R1 = Sum(Estoque[Estoque])

    Cons Medio R1 = sum('Cons  Med'[Consumo Méd Ultimas 5 semanas])

     

    Depois eu criei uma resultado - que é a regra do seu negócio:

    Resultado R1 = [Estoque Inicial R1] + [Compra R1] - [Cons Medio R1]

     

    E por fim a medida de estoque final:

    Estoque Final R1 =

    var maiordata = max(dcalendario[Date])

    var ultimolancamento = CALCULATE(Max(Estoque[Semana]),

                           dcalendario[Date] < maiordata)
     

    return

    if([Estoque Inicial R1] = BLANK(),

    CALCULATE([Resultado R1],

    dcalendario[Date] = ultimolancamento) +

    CALCULATE([Compra R1] - [Cons Medio R1],

    dcalendario[Date] <= MAX(dcalendario[Date]) &&

    dcalendario[Date] > ultimolancamento), [Resultado R1])

    Nessa medida se o estoque é blank, ela vai pegar o último valor da medida resultado (ultimo saldo estoque) com base na última data da tabela estoque, que existia dados.
    Depois irá somar com o acumulado da diferença entre compra e consumo médio, posterior a essa mesma última data da tabela de estoque que existia dados.

    Aí teremos o seguinte resultado:

    image.png.89300d555aaefca493a6d2a97d7da1b6.png

    Segue PBIX com a solução.

    Espero que tenha conseguido ajudar e se minha resposta foi a solução para o seu case, gentileza marca-la para fechar o tópico.

    Sucesso aí, amigo....

    Dúvida forum Alan Pacheco.pbix

    • Like 2
  11. Boa noite @Mário Martins. Tudo bem, amigo?

    Segue minha sugestão para o seu case.

    O primeiro passo foi encontrar o % Produção:

    % Produção R1 =

    var total = CALCULATE([total producao], ALL(fProducao), VALUES(dCALENCARIO[Date]))

    var valor = [total producao]

    return

    DIVIDE(valor, total)

     

    Depois disso foi usar esse percentual para ratear o valor da Exaustão entre as regionais:

    Rateio Exaustão R1 = [vlr exaustao] * [% Produção R1]

     

    E por fim, dividir esse valor pelo total produzido para encontrar o custo unitário regional:

    Custo Regional R1 = DIVIDE( [Rateio Exaustão R1], [total producao])

    Segue a tabela resultante:

    image.png.14a331d09bca1508c182ca04dc69a9b3.png

    Em anexo o arquivo com as medidas.

    Espero que tenha conseguido ajudar e caso minha sugestão for a solução para o seu case, gentileza marca-la para fechar esse tópico.

    Sucesso ai, amigo...

     

    Exemplo_Caso_proposto.pbix

    • Like 2
  12. Boa noite @Katherin. Tudo bem?

    Deixa te passar minha sugestão sobre médias móveis:

    Média Móvel =

    AVERAGEX(

    DATESINPERIOD(dCalendario[Data], MAX(dCalendario[Data]), -3, DAY),

    CALCULATE(sum(fDados[Valor])))

     

    image.png.acd3ccb0302b2b3650dcb7619d376685.png

     

    No caso acima ele vai considerar a média dos 3 últimos valores. Pelo que entendi sua dúvida seria essa.

    Vou aproveitar e sugerir também aula do Leo que ele apresenta essa solução:

    Totais e Médias Móveis - Curso de DAX Avançado e Hands-On (powerbiexperience.com)

    Se preferir aprofundar nesse assunto, só pesquisar pela palavra "média" no curso que vai encontrar muitos vídeos a respeito.

    Espero que tenha conseguido ajudar e se minha resposta foi a solução para o seu case, gentileza marca-la para fechar o tópico.

    Sucesso aí....

     

  13. Boa noite @Thiago Anizio. Tudo bem, amigo?

    Essa sua dúvida sobre selecionar um ciclo e mostrar alguns ciclos anteriores, a partir dessa seleção de data, o Leo explica logo no início da 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 (powerbiexperience.com)

    Dá uma olhadinha lá que irá conseguir resolver.

    Passa por criar um tabela calendário auxiliar, usar funções como DATESINPERIOD, USERELATIONSHIP, KEEPFILTERES, etc...rsrsrs

    Conceitos mais avançados que estão muito bem explicados na Live pelo Mestre.

    Então...nada melhor do que ir "direto à fonte" (rsrsrs) para solucionar o que precisa.

    Espero que tenha conseguido ajudar, amigo.

    Sucesso aí...

     

  14. Boa tarde, @FlavioG.

    Mas a minha sugestão foi pra vc compreender a lógica do problema resolvido pelo Leo, para depois adaptar ao seu modelo.

    Pelo que eu entendi, vc precisa separar os seus clientes em 2 grupos: 

    1- aqueles que compraram

    2 - aqueles que compraram em todos os anos, ou seja, clientes recorrentes.

    Na aula, o Leo mostra uma medida para pegar os clientes do mês anterior. Mas no seu caso, será ajustada apenas essa medida, pra buscar todos os clientes, entendeu? De todo o histórico.

    Mas a lógica principal é a mesma.

    Inclusive eu publiquei um artigo sobre essa solução, mas voltada a produtos - o que segue o mesmo raciocínio lógico.

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

    Se você não conseguir solucionar, peço que envie por aqui sua base de dados, com PBIX pra poder te ajudar com a solução.

    Se os dados forem sensíveis, crie uma base fictícia que representa sua realidade e qual o resultado esperado.

    Aguardo seu retorno.

     

    Sucesso aí amigo...

  15. Boa tarde, @FrancoAndre. Tudo bem amigo?

    Você precisa corrigir suas tabelas relacionadas.

    Inclusive metas é uma tabela fato e não dimensão.

    Na tabela meta vc precisar ter um coluna de data, com o dia 01 de cada mês:

    01/01/2022

    01/02/2022...etc...

    Aí vc vai usar essa coluna para relacionar com a coluna de data na DCalendario.

    Importante que a dimensão sempre filtre a tabela fato, e de preferência que o relacionamento seja de 1 para muitos: 1:*

    Depois de tentar relacionar, pode ser que dê algum problema. Aí você clica no relacionando criado para edita-lo, e deixa-lo como falei acima - de 1 para muitos, direção dimensão para fato, ok.

    Fazendo isso irá resolver seu problema.

    Espero que tenha conseguido ajudar.

    Sucesso aí, amigo.

    • Like 1
  16. Bom dia @neogrand. Tudo bem amigo?

    Minha sugestão é vc assistir a Live 72 Eixos Dinâmicos.

    Leo apresenta exatamente essa solução que você precisa.

    Outra sugestão seria utilizar a funcionalidade de parâmetros de campos. Que o usuário final poderá escolher qual categoria quer visualizar no eixo do gráfico.

    Espero que tenha conseguido ajudar, amigo.

    Sucesso aí....

  17. Boa noite @Diego Araujo. Tudo bem amigo?

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

    Solução R1 =

    var tb1 =

    SUMMARIZE(

    Planilha1,

    Planilha1[Fornecdor],

    Planilha1[Prazo de Pagamento])

     

    return

    CONCATENATEX(

    tb1, Planilha1[Prazo de Pagamento], "/", Planilha1[Prazo de Pagamento], asc)

    image.png.0edda725906154afab9e7c21743b450b.png

    Espero que tenha ajudado, e se minha resposta foi a solução esperada, gentileza marca-la para fechar o tópico.

    Sucesso aí, amigo....

    Dúvida Diego Fórum.pbix

    • Like 1
×
×
  • Criar Novo...