Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Syndicate_Admin
Administrator
Administrator

Cómo distinguir la expresión con instrucciones if de par

Hola, estoy usando Direct Query. Tengo una medida con el par de declaraciones if y necesito distinguir el resultado.

Aquí hay un ejemplo de mi medida:

Medida = countrows(filter(Table1, IF(ISBLANK(Table1[CUSTID1] ) ,IF(LEN(Table1[CUSTID2])>0,Table1[CUSTID2] || Tabla1[RECORD_CODE]|| Tabla1[SOURCE_ID],0),0)))

Intenté usar distinct, pero devolvió el mismo resultado que en la medida anterior.

Medida = countrows(DISTINCT(filter(Table1, IF(ISBLANK(Table1[CUSTID1] ) ,IF(LEN(Table1[CUSTID2])>0,Table1[CUSTID2] || Tabla1[RECORD_CODE]|| Tabla1[SOURCE_ID],0),0))))

¡Cualquier ayuda es muy apreciada!

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

Hola Jayleny, finalmente conseguí que funcionara, dividiendo la medida en 2 partes y luego sumándolas, ¡gracias tus ideas ayudaron mucho!

View solution in original post

5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

Hola Jayleny, finalmente conseguí que funcionara, dividiendo la medida en 2 partes y luego sumándolas, ¡gracias tus ideas ayudaron mucho!

Syndicate_Admin
Administrator
Administrator

Hola @Elichka

Pruebe el siguiente DAX:

Paso 1: Crear una columna calculada
En primer lugar, cree una columna calculada en 'Tabla1' que maneje la concatenación en las condiciones especificadas. Esto simplifica la medida al eliminar la lógica de la misma.

Unique Identifier =
IF(
ISBLANK(Table1[CUSTID1]) && LEN(Table1[CUSTID2]) > 0,
Table1[CUSTID2] & Table1[RECORD_CODE] & Table1[SOURCE_ID],
BLANK()
)

Esta columna ahora contiene el identificador concatenado donde se cumplen sus condiciones, o BLANK() en caso contrario.

Paso 2: Definir la medida
Ahora, defina una medida que cuente los distintos valores de esta nueva columna. De este modo, se evita la complejidad de las instrucciones "IF" anidadas dentro de la función de agregación.

Distinct Count Measure =
COUNTROWS(
DISTINCT(
FILTER(
Table1,
NOT ISBLANK(Table1[Unique Identifier])
)
)
)

Saludos

Jayleny

Si esta publicación ayuda, considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Hola Jayleny, ¡gracias por la rápida respuesta!

Cuando se intentó implementar el identificador único, se recibió el mensaje "No se puede determinar un solo valor para la columna Table1[CUSTID2]. Esto puede suceder cuando una fórmula de medida hace referencia a una columna que contiene muchos valores sin especificar una agregación como min, max, count o sum para obtener un único resultado. ¿Alguna idea de cómo resolver eso? Acabo de empezar a aprender Power Bi hace unos meses, ¡gracias!

Hola @Elichka

El "identificador único" es una columna de cálculo, no una medida.

vjialongymsft_0-1714610096839.png

Saludos

Jayleny

Si esta publicación ayuda, considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Hola Jayleny, desafortunadamente, no puedo crear una columna calculada como sugeriste porque usamos DirectQuery... ¿Hay alguna otra sugerencia? ¡Gracias!

Helpful resources

Announcements
RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.