Ir para conteúdo
  • 0

AJUDA COM COUNTX


lucas.gama
Ir para solução Solucionado por lucas.gama ,

Pergunta

  • Alunos

Olá!!! Preciso de ajuda pra solucionar um caso!!!

Possuo uma tabela fAcessos que registra os acessos em uma platorma com as colunas código do usuário [cd_usuario] e data [data].

Preciso construir um indicador chamado QTD de USUARIOS FIEIS:  quantidade de usuarios que acessaram ao menos em 2 meses dos últimos 3 meses, independente do número de acessos daquele usuário. Assim, construo um gráfico de barras com análise temporal: Clientes fieis ao longo do tempo

Exemplo:
Se eu seleciono o mês abril, analisamos o período que compreende fev, mar e abril. Temos 5 usuários que acessaram no período, porém apenas 3 clientes fiéis: um deles acessou ao menos uma vez em fev, mar e abril; o outro acessou ao menos uma vez em fev e abril; o outro ao menos uma vez em fev e março. Até aí ok?!!! 

Preciso que seja em forma de medida (dinâmico)!!!

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Comecei construindo uma tabela (estatica) para um período de data determinado, assim posso enxergar se o resultado foi dando certo. Quando der certo eu transformo tudo em medida.

Pra isso, eu pensei criar a tabela 'TABELA AUXILIAR'

TABELA AUXILIAR =
// transformar as datas para mes/ano e fazer o distinct
VAR tabela1 = DISTINCT(
                SELECTCOLUMNS(
                    CALCULATETABLE(fAcessos,DATESINPERIOD(fAcessos[data],DATE(2022,12,01),-2,MONTH)), "CD_USUARIO",fAcessos[cd_usuario],"MES/ANO",STARTOFMONTH(fAcessos[data])
                )
)
// contar quantas vezes MES/ANO se repete pro mesmo usuário, criando coluna QTD (espera-se os valores 1,2 ou 3)
VAR tabela2 =
ADDCOLUMNS(
SUMMARIZE(tabela1,[CD_USUARIO]) ,"QTD", COUNTX(tabela1,[CD_USUARIO])
)
RETURN
tabela2 

E após, a medida:

USUARIOS FIEIS =
//Contar usuários, tal que QTD>=2
CALCULATE(
                       COUNTA('TABELA AUXILIAR'[CD_USUARIO]), 'TABELA AUXILIAR'[QTD] = 2
 
)

O problema é que fiquei travado ao criar VAR tabela2, pois quando pois a coluna "Qtd" me retorna a contagem de todas as linhas e não por usuário! Eu achei que agregava por usuário... Tentei usar em conjunto com ALLSELECT  mas também não consegui 😢 Se alguém souber outra maneira de fazer isso tudo eu agradeceria muito.

178750965_UsuariosFieis.pbix

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução

Consegui!
Li em um fórum que devemos utilizar a função GROUPBY() e CURRENTGROUP() se quisermos sumarizar colunas de uma tabela virtual. Minha medida final ficou assim:
Is it possible to summarize the columns of a virtual table in DAX? - DAX Calculations - Enterprise DNA Forum

Usuarios Fieis =
VAR tabela1 = DISTINCT(
    SELECTCOLUMNS(
    CALCULATETABLE(fAcessos,DATESINPERIOD(dCalendar[Data],MAX(dCalendar[Data]),-3,MONTH)), "CD_USUARIO",fAcessos[cd_usuario],"MES/ANO",STARTOFMONTH(fAcessos[data])
)
)
VAR tabela2 =
FILTER(
             
GROUPBY(tabela1,[CD_USUARIO] ,"QTD",COUNTAX(CURRENTGROUP(),[MES/ANO])),
             
[QTD]>=2
)
RETURN
COUNTROWS(tabela2)
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...