Ir para conteúdo
  • 0

TOPN que varia de acordo com os anos.


pauloosimoes
Ir para solução Solucionado por Bruno Abdalla de Souza ,

Pergunta

  • Alunos

Boa noite pessoal.

Gostaria de uma ajuda de vocês, estou tentando fazer uma analise acerca das lojas que tiveram o pior faturamento, no grafico de colunas gostaria que aparecesse os últimos meses do contexo para cada loja, ou seja, se for selecionado o ano de 2021 e o mês de março, trazer no grafico o faturamento nos últimos 4 meses (Março, Fevereiro, Janeiro e Dezembro/2020) das 4 piores lojas.

Comecei criando uma tabela virtual para buscar os valores das 4 piores lojas, porém não estou conseguindo criar esses contextos de filtros.

Segue anexo o arquivo de exemplo em PBIX.

Desde já agradeeço.


image.png.efe20f60dfb2fe25554a478b2dd88147.png

arquivoExemplo.pbix

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução

Não estou conseguindo anexar o arquivo aqui, pois está me limitando ao tamanho de 1,45 MB. Mas criei uma dCalendario Auxiliar sem nehum relacionamento. Usei nas segmentações de ano e mês, ao invés de usar a dCalendario normal.
Então fiz a seguinte medida:

Top N Piores Lojas = 
VAR vNPioresLojas = [N Piores Lojas]
VAR VDataMax = MAX(dCalendario_Aux[Data])
VAR vDataMin = EOMONTH(VDataMax, -4) + 1
VAR v4UltimosMeses = 
    FILTER(
        ALL(dCalendario),
        dCalendario[Data] >= vDataMin && 
        dCalendario[Data] <= VDataMax
    )
VAR vPioresLojas = 
    TOPN(
       [N Piores Lojas],
        FILTER(
            ALL(dLojas),
            [Faturamento] > 0
        ),
        CALCULATE(
            [Faturamento],
            v4UltimosMeses
        ),
        ASC
    )
VAR vFaturamento = 
    CALCULATE(
        [Faturamento],
        vPioresLojas,
        v4UltimosMeses,
        VALUES(dLojas[Loja]),
        VALUES(dCalendario[AnoMesINT])
    )
RETURN
    vFaturamento

Se necessário, envie seu email no privado que te envio o arquivo.

  • Like 1
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
4 horas atrás, Edson Igari disse:

@pauloosimoes, tudo bem? Veja se atende. Caso sim, peço a gentileza de marcar minha resposta como solução.

arquivoExemplo.pbix 3.12 MB · 1 download

Opa @Edson Igari, tudo bem ótimo e contigo?

Primeiramente agradeço a atenção em tentar me ajudar.

Na verdade, a ideia é apresentar no grafico de barras os 4 meses quebrados (apresentando os meses de março, fevereiro, janeiro e dezembro) e não agrupar os valores para o mês de março.

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
13 horas atrás, Bruno Abdalla de Souza disse:

Não estou conseguindo anexar o arquivo aqui, pois está me limitando ao tamanho de 1,45 MB. Mas criei uma dCalendario Auxiliar sem nehum relacionamento. Usei nas segmentações de ano e mês, ao invés de usar a dCalendario normal.
Então fiz a seguinte medida:

Top N Piores Lojas = 
VAR vNPioresLojas = [N Piores Lojas]
VAR VDataMax = MAX(dCalendario_Aux[Data])
VAR vDataMin = EOMONTH(VDataMax, -4) + 1
VAR v4UltimosMeses = 
    FILTER(
        ALL(dCalendario),
        dCalendario[Data] >= vDataMin && 
        dCalendario[Data] <= VDataMax
    )
VAR vPioresLojas = 
    TOPN(
       [N Piores Lojas],
        FILTER(
            ALL(dLojas),
            [Faturamento] > 0
        ),
        CALCULATE(
            [Faturamento],
            v4UltimosMeses
        ),
        ASC
    )
VAR vFaturamento = 
    CALCULATE(
        [Faturamento],
        vPioresLojas,
        v4UltimosMeses,
        VALUES(dLojas[Loja]),
        VALUES(dCalendario[AnoMesINT])
    )
RETURN
    vFaturamento

Se necessário, envie seu email no privado que te envio o arquivo.

Bom dia @Bruno Abdalla de Souza, muito obrigado pela sua ajuda.

Era exatamente isso que estava precisando e não estava conseguindo fazer.

Fiz somente um ajuste na sua medida pq a minha necessidade era pegar o top 4 das lojas que tiveram o pior desempenho no mês do contexto e buscar os últimos 4 meses dela, então criei uma nova variável para buscar somente o último mês e filtrei no TOPN.

Mais uma vez agradeço pela ajuda.

Esse foi o resultado final:

Top N Piores Loja =
VAR vNPioresLojas = [N Piores Lojas]
VAR VDataMax = MAX(dCalendario_Aux[Data])
VAR vDataMin = EOMONTH(VDataMax, -4) + 1
VAR v4UltimosMeses =
    FILTER(
        ALL(dCalendario),
        dCalendario[Data] >= vDataMin &&
        dCalendario[Data] <= VDataMax
    )
 
VAR vDataMin2 = EOMONTH(VDataMax, -1) + 1
VAR vUltimoMes =
    FILTER(
        ALL(dCalendario),
        dCalendario[Data] >= vDataMin2 &&
        dCalendario[Data] <= VDataMax
    )
 
VAR vPioresLojas =
    TOPN(
       [N Piores Lojas],
        FILTER(
            ALL(dLojas),
            [Faturamento] > 0
        ),
            CALCULATE(
                [Faturamento],
                vUltimoMes
         ),
        ASC
    )
VAR vFaturamento =
    CALCULATE(
        [Faturamento],
        vPioresLojas,
        v4UltimosMeses,
        VALUES(dLojas[Loja]),
        VALUES(dCalendario[AnoMesINT])
    )
RETURN
    vFaturamento
Link para o comentário
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...