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

  • Membros

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

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

  • 0
  • Membros
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
  • Membros
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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...