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

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started

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
Europe Fabric Conference

Europe’s largest Microsoft Fabric Community Conference

Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.

Power BI Carousel June 2024

Power BI Monthly Update - June 2024

Check out the June 2024 Power BI update to learn about new features.

PBI_Carousel_NL_June

Fabric Community Update - June 2024

Get the latest Fabric updates from Build 2024, key Skills Challenge voucher deadlines, top blogs, forum posts, and product ideas.

Top Solution Authors
Top Kudoed Authors