Instrucción DAX Calculate IF OR

Un usuario Pregunto ✅

BKnecht

Soy bastante nuevo en la escritura de DAX y estoy tratando de hacer algo que sería simple en Excel, pero parece que no puedo crearlo en Power BI.

Estoy intentando crear una medida personalizada que diga:

Calcule la suma de la columna X SI Columna A = «Renovación» O Columna B = «Necesita alineación».

Medida muy simple, pero parece que no puedo obtener la instrucción OR allí, y no puedo usar los filtros en la función Calcular porque una vez que coloco «Columna X =» Renovación «, filtra toda la» Columna B = «Necesita alineación».

¿Algunas ideas? Cualquier ayuda será muy apreciada.

KHorseman

CALCULAR(

SUM (Tabla[Column X]),

FILTRAR(

Tabla,

Tabla[Column A] = «Renovación» ||

Tabla[Column B] = «Necesita alineación»)

)

KHorseman

CALCULAR(

SUM (Tabla[Column X]),

FILTRAR(

Tabla,

Tabla[Column A] = «Renovación» ||

Tabla[Column B] = «Necesita alineación»)

)

Anónimo

En respuesta a KHorseman

Supongamos que los valores «renovación» y «asignación de necesidades» están en la columna A,
¿Hay alguna manera de mencionar ambos valores en el filtro (o en cualquier otro lugar) sin tener la tabla de mención? [column a] ¿dos veces?

entonces en lugar de:

Tabla[Column A] = «Renovación» ||

Tabla[Column A] = «Necesita alineación»

Algo como:

Tabla[Column A] = («Renovación» || «Necesita alineación»)

Intenté crear un VAR para volver a mi función lógica pero no lo hago bien de alguna manera

¿Algunas ideas? @Caballero

KHorseman

En respuesta a Anónimo

@ Tabla anónima[Column A] EN {«Renovación», «Necesita asignación»}

BKnecht

En respuesta a KHorseman

Eso fue mucho más fácil de lo que estaba tratando de hacerlo, ni siquiera sabía acerca de la función de Filtro, esto funcionó perfectamente, ¡Gracias!

KHorseman

En respuesta a BKnecht

CALCULAR( , FILTRO (

,[column] = condición>)) es probablemente el patrón más útil para aprender en DAX. La gran mayoría de las medidas que escribo siguen este patrón o contienen una parte que sigue este patrón.

dtartaglia

En respuesta a KHorseman

Hola KHorseman,

La sintaxis CALCULATE / FILTER que proporcionó realmente me ayudó con las declaraciones DAX en general.

Gracias,

Dan

Willborn

En respuesta a dtartaglia

Hola

Gracias por esta solución, me guió un paso más allá con un desafío de filtro Smiley feliz

Actualmente estoy luchando con agregar varios filtros:

POS	Attribut	Value
1	A	10
2	B	200
3	C	3000
4	D	40000
5	E	500000
6	A	10
7	B	200
8	C	3000
9	D	40000
10	E	500000

Resumí el total de todos los SAP[Value] dónde [Attribute] es un»:

Total_AB = CALCULATE(SUM(SAP[Value]);
	FILTER(
SAP;
SAP[Attribut] = "B")
)

Pero necesito sumar el total de todos los SAP[Value] dónde [Attribute] es «A», «B» y «E» – pero las funciones de filtro permiten solo 2 declaraciones. ¿Alguien tiene una idea de cómo resolver esto con DAX?

¡Gracias! Patricio

KHorseman

En respuesta a Willborn

@Nacido

Total_ABE = CALCULATE(
	SUM(SAP[Value]);
	FILTER(
		SAP;
		SAP[Attribut] =  "A" ||
		SAP[Attribut] = "B" ||
		SAP[Attribut] = "E"
	)
)

potap

En respuesta a KHorseman

¿Alguna idea de cómo hacer que esto funcione usando el ejemplo anterior?

(Atributo <> «E» Y estado <4) O (Atributo = "B" Y estado = 3)

POS	Attribut	Status		Value
1		A	1		10
2		B	3		200
3		C	1		3000
4		D	4		40000
5		E	2		500000
6		A	4		10
7		B	1		200
8		C	2		3000
9		D	1		40000
10		E	4		500000

KHorseman

En respuesta a potap

@potaptla sintaxis es la misma. Puede utilizar paréntesis. && es el operador AND, || es el operador OR.

CALCULATE(
	SUM(TableName[Value]),
	FILTER(
		TableName,
		(TableName[Attribut] <> "E" &&
		TableName[Status] < 4) ||
		(TableName[Attribut] = "B" &&
		TableName[Status] = 3)
	)
)

vyacheslavg

En respuesta a KHorseman

Fue muy útil.

Mencionaste que este es uno de tus patrones DAX favoritos. ¿Podría compartir su publicación o artículo con sus otros patrones DAX favoritos?

heytherejem

En respuesta a vyacheslavg

@vyacheslavg Tengo problemas con esto a menos que me esté volviendo loco. He creado una medida de DAX de cálculo muy simple con un filtro o y no funciona correctamente.

Sé que el resultado es:

1001 = 36

1002 = 13

ambos = 49

Mi medida es:

Members follow up or regular appointment = CALCULATE(DISTINCTCOUNT('Appointments'[Member]),
FILTER(
    'Appointments',
    'Appointments'[Type]="1001"||'Appointments'[Type]="1002"))

Y el resultado de la medida es 36.

¡AYUDA!

dtartaglia

En respuesta a heytherejem

Hola @vyacheslavg DISTINCTCOUNT espera devolver un único valor en una medida calculada. ¿Cuál es el resultado final / visual en el que necesita la información? Esto se puede hacer fácilmente en una tabla u otras imágenes sin DAX.

Gracias,

Dan

heytherejem

En respuesta a dtartaglia

@dtartaglia Hola, por lo que el recuento distintivo está contando instancias únicas de una identificación de miembro, donde el tipo de cita para la misma fila es 1001 o 1002.

Esto se debe a que hay cientos de citas para cada miembro y quiero contar miembros únicos que han tenido al menos una cita.

¡Gracias!

Jemma

dtartaglia

En respuesta a heytherejem

Hola @vyacheslavg,

Estoy usando una medida DAX muy similar en Desktop con una sintaxis ligeramente diferente. Parece que obtengo el número correcto (creado alrededor de 50 registros). Avísame si me falta algo:

Seguimiento de miembros o cita regular = CALCULAR (DISTINCTCOUNT (Citas[Members]), FILTRO (Citas, Citas[Type] = «1001» || Equipo[Type] = «1002»))

DAXIssue.PNG

heytherejem

En respuesta a dtartaglia

Hola @dtartaglia

No, no te estás perdiendo nada, yo sí. Claramente, tengo miembros con una cita con AMBOS códigos, por lo tanto, no agrega el 13 y el 36 exactamente. Esperaba 49 pero tu ejemplo me muestra lo que realmente está sucediendo aquí.

¡Muchas gracias, se lo agradezco mucho! 🙂

Jemma

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *