Ir para conteúdo
  • 0

calcular distinct count


Ana Leticia Sampaio
Ir para solução Solucionado por Bruno Abdalla de Souza ,

Pergunta

  • Alunos

Olá pessoal,

 

Eu preciso fazer um distinct count com algumas condições:

1) Se a account_location é x OU y

OU

2) Se a account_location é z E o account phase group = blank

 

Eu estava tentando colocar tudo numa fórmula só, mas não consegui.

Então separei em duas, mas não sei juntar:

1) primeira condição

CALCULATE(DISTINCTCOUNT('Dim Account'[Account Id]),'Dim Account'[Account_Location]= "JURI" || 'Dim Account'[Account_Location]= "FIDIJURI")

2) segunda condição

(DISTINCTCOUNT('Dim Account'[Account Id]),'Dim Account'[Account_Location] = "EIM" && 'Dim Account Phase'[Account Phase Code Group] = " ")

 

Alguém consegue me ajudar?

Link para o comentário
Compartilhar em outros sites

20 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução

Tenta isso.

unknown status count = 
VAR vPhaseIds = 
	CALCULATETABLE(
		VALUES('Dim Account Phase'[Account Phase Id]),
		'Dim Account Phase'[Account Phase Code Group] = "NULL"
	)
VAR vIds = 
    CALCULATETABLE(
        VALUES('Fact Account Phases'[Account Id]),
        vPhaseIds
    )
VAR vResult = 
CALCULATE(
 	DISTINCTCOUNT('Dim Account'[Account Id]),
	'Dim Account'[Account_Location] IN {"JURI", "FIDIJURI"} ||
    ('Dim Account'[Account_Location] = "EIM" &&
	'Dim Account'[Account Id] IN vIds)
)
RETURN
vResult

 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
Medida = 
VAR vPhaseIds = 
	CALCULATETABLE(
		VALUES('Dim Account Phase'[Account Phase Id],
		'Dim Account Phase'[Account Phase Code Group] = " "
	)
VAR vResultado = 
CALCULATE(
 	DISTINCTCOUNT('Dim Account'[Account Id]),
	'Dim Account'[Account_Location] IN {"JURI", "FIDIJURI"} ||
	('Dim Account'[Account_Location] = "EIM" &&
	'Fact Account Phases'[Account Phase Id] = vPhaseIds)
)
RETURN
vResultado

Tenta isso

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
Medida = 
VAR vPhaseIds = 
	CALCULATETABLE(
		VALUES('Dim Account Phase'[Account Phase Id],
		'Dim Account Phase'[Account Phase Code Group] = " "
	)
VAR vResultado = 
CALCULATE(
 	DISTINCTCOUNT('Fact Account Phases'[Account Id]),
	'Dim Account'[Account_Location] IN {"JURI", "FIDIJURI"} ||
	('Dim Account'[Account_Location] = "EIM" &&
	'Fact Account Phases'[Account Phase Id] = vPhaseIds)
)
RETURN
vResultado

Veja se assim vai. Se não for, anexa o pbix.

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Tente isso.

unknown status count = 
VAR vPhaseIds = 
	CALCULATETABLE(
		VALUES('Dim Account Phase'[Account Phase Id]),
		'Dim Account Phase'[Account Phase Code Group] = " "
	)
VAR vIds = 
    CALCULATETABLE(
        VALUES('Fact Account Phases'[Account Id]),
        vPhaseIds
    )
VAR vResult = 
CALCULATE(
 	DISTINCTCOUNT('Fact Account Phases'[Account Id]),
	'Dim Account'[Account_Location] IN {"JURI", "FIDIJURI"} ||
    ('Dim Account'[Account_Location] = "EIM" &&
	'Dim Account'[Account Id] = vIds)
)
RETURN
vResult

Porém, nos dados que vc enviou, não tem nenhuma linha que satisfaça a seguinte condição: 

Dim Account Phase'[Account Phase Code Group] = " "

Veja se nos dados reais faz sentido. Se não fizer, aí terá que mandar dados onde esta condição seja verdadeira para poder testar.

20240424_demo_medidadax.pbix

Editado por Bruno Abdalla de Souza
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Agora que vi que está NULL, mas escrito como texto. Tente assim então.

unknown status count = 
VAR vPhaseIds = 
	CALCULATETABLE(
		VALUES('Dim Account Phase'[Account Phase Id]),
		'Dim Account Phase'[Account Phase Code Group] = "NULL"
	)
VAR vIds = 
    CALCULATETABLE(
        VALUES('Fact Account Phases'[Account Id]),
        vPhaseIds
    )
VAR vResult = 
CALCULATE(
 	DISTINCTCOUNT('Fact Account Phases'[Account Id]),
	'Dim Account'[Account_Location] IN {"JURI", "FIDIJURI"} ||
    ('Dim Account'[Account_Location] = "EIM" &&
	'Dim Account'[Account Id] IN vIds)
)
RETURN
vResult

 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

a fórmula dessa vez funciona, mas eu fiz um teste e ela não leva em consideração a segunda condição:

('Dim Account'[Account_Location] = "EIM" &&
	'Dim Account'[Account Id] IN vIds)

 

O distinctcount só funciona até aqui:

CALCULATE(
 	DISTINCTCOUNT('Fact Account Phases'[Account Id]),
	'Dim Account'[Account_Location] IN {"JURI", "FIDIJURI"} 

 

Talvez porque a sintaxe com o null esteja errada, não sei. Eu tava pensando em ao invés de fazer 

'Dim Account Phase'[Account Phase Code Group] = "NULL"

fazer Account Phase Code Group = a,b,c, etc (todas as categorias que não sejam null)

e depois na segunda condição, colocar EIM && NOT as categorias todas. (a lógica inversa).

Funcionaria?

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