Ir para conteúdo
  • 0

AJUDA COM COUNTX


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

Pergunta

  • Members

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
  • Members
  • 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

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