Ir para conteúdo
  • 0

Contagem de clientes com a média mensal dos últimos três meses


Malu
Ir para solução Solucionado por Alison Pezzott ,

Pergunta

  • Alunos

Olá, boa tarde!

 

Tenho uma tabela com a seguinte estrutura:

 

Esse MonthRef esta conectado com a minha dCalendario. 

image.png.5518c6444326446819f1e761666483f2.png

Fiz uma métrica pra calcular a média mensal dos últimos 3 meses dessa coluna CoreMetric_Consume. A metrica é:

 

Average MAUS 3M =
VAR NumOfMonths = 3
VAR LastSelectedDate =
    CALCULATE(
           MAX ( dCalendario[Data] ),
           DATEADD(dCalendario[Data],-1,MONTH)
    )
VAR Period =
    DATESINPERIOD ( dCalendario[Data], LastSelectedDate, - NumOfMonths, MONTH )
VAR Result =
    CALCULATE (
        AVERAGEX (
            VALUES ( dCalendario[Mes-Ano] ),
            AVERAGE(Tabela[CoreMetric_Consume])
        ),
        Period
    )
RETURN
    Result

O resultado fica correto. Quando coloco cada deal em uma tabela ele me retorna a média dos ultimos 3 meses (retirando o mes selecionado). O problema é quando quero contar quantos clientes tiveram uma média maior do que determinado valor a métrica vem em branco: 

 

# Teste =
CALCULATE(
    DISTINCTCOUNT(Tabel[deal_id]),
    FILTER(
        Tabela,
        [Average MAUS 3M] >= 100
    )
)

Alguém consegue me ajudar a entender porque esse filter não funciona?

 

 

 

Editado por Malu
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 1
  • Alunos
  • Solução

Olá Malu, tudo bem como vai?

Fiz alguns ajustes nas medidas.

Average Contracted 3M = 
VAR _NumOfMonths = 3
RETURN
    CALCULATE (
        AVERAGEX (
            VALUES ( dCalendario[Ano-mês] ),
            CALCULATE ( AVERAGE(fTabela[total_contracted] ) )
        ),
        DATEADD (
            DATESINPERIOD (
                dCalendario[Data],
                LASTDATE( dCalendario[Data] ),
                -3,
                MONTH
            ),
            -1, --Se quiser que o mês atual fique dentro da média dos 3M basta colocar 0 no lugar do -1
            MONTH
        )
    )

 

Average MAUS 3M = 
VAR _NumOfMonths = 3
RETURN
    CALCULATE (
        AVERAGEX (
            VALUES ( dCalendario[Ano-mês] ),
            CALCULATE ( AVERAGE( fTabela[CoreMetric_Consume] ) )
        ),
        DATEADD (
            DATESINPERIOD (
                dCalendario[Data],
                LASTDATE( dCalendario[Data] ),
                -3,
                MONTH
            ),
            -1, --Se quiser que o mês atual fique dentro da média dos 3M basta colocar 0 no lugar do -1
            MONTH
        )
    )

 

MAUS/Contracted = DIVIDE ( [Average MAUS 3M] , [Average Contracted 3M] )

 

# Solução Alison = 
VAR _Tb = 
    FILTER (
        ADDCOLUMNS ( 
            VALUES ( fTabela[deal_id] ),
            "@MAUS/Contracted", [MAUS/Contracted]
        ),
        [@MAUS/Contracted] <= 0.1
    )
RETURN
    COUNTROWS ( _Tb )

 

Gostaria de destacar a necessidade de inserir a CALCULATE dentro da AVERAGEX por tratar-se de transição de contexto de linha para filtro. Se vc tivesse feito uma medida anterior somente com a média aí não precisaria desta CALCULATE, porque lembra que toda medida tem uma CALCULATE bem escondidinha lá dentro.

Espero que tenha dado certo e se deu certo favor marcar como solução. Segue o pbix anexo também para adiantar sua conferência.

Sds

 

 

Teste PBI por Alison.pbix

  • Like 1
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...