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

Asignar valor en función de la condición

Hola a todos

Estoy tratando de lograr un escenario para asignar la misma bandera en función de la condición.

Supongamos que la compañía A tiene 3 ID diferentes y si la bandera es Y para cualquier ID, entonces asignamos Y a todas las ID de la compañía A

Si Flag es N, asigne N para todos los id de esa compañía Ex--B.

Solo una nota Company proviene de una tabla y EL ID y flag provienen de otra tabla en el modelo de datos

CompañíaIDENTIFICACIÓNBandera
A1Y
A2N
A3N
A4
B5N
B6N
B7N
C8

O/P deseado:

CompañíaIDENTIFICACIÓNBanderaMedir
A1YY
A2NY
A3NY
A4 Y
B5NN
B6NN
B7NN
C8
Medida probada = SI(contar(«Tabla»[ID]) >=1 && MÁXIMO('Tabla'[Bandera]) = "Y","Y","N")
¿Puede alguien por favor sugerir?
Gracias

5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

@praveenpasila ,

Puede crear una columna como esta:

Column =
VAR flag_count =
    COUNTROWS (
        FILTER (
            'Table (2)',
            'Table (2)'[Company] = EARLIER ( 'Table (2)'[Company] )
                && 'Table (2)'[Flag] <> BLANK ()
        )
    ) + 0
VAR result =
    COUNTROWS (
        FILTER (
            'Table (2)',
            'Table (2)'[Company] = EARLIER ( 'Table (2)'[Company] )
                && 'Table (2)'[Flag] = "Y"
        )
    )
RETURN
    IF ( flag_count = 0, BLANK (), IF ( result > 0, "Y", "N" ) )

Salida:-

Samarth_18_0-1653056551000.png

BR

Samarth

Hola Samarth,

Gracias por su rápida respuesta.

El resultado es el esperado, pero como mencioné en mi publicación anterior, las columnas provienen de diferentes tablas en el modelo de datos. Al intentar agregar la columna de la bandera, no me lo permite.

El modelo de datos se parece a lo siguiente

praveenpasila_0-1653224191380.png

Probado debajo de la columna

Columna =
DÓNDE flag_count =
CUENTAS (
FILTRO (
'Tabla',
«Tabla» [Empresa] = ANTERIOR ( 'Tabla'[Empresa] )
&& «Cuadro (3)»[Bandera] <> ESPACIO EN BLANCO ()
)
) + 0
DÓNDE resultado =
CUENTAS (
FILTRO (
'Tabla',
«Tabla» [Empresa] = ANTERIOR ( 'Tabla'[Empresa] )
&& «Cuadro (3)»[Bandera] = "Y"
)
)
DEVOLUCIÓN
SI ( flag_count = 0, ESPACIO EN BLANCO (), SI ( resultado > 0, "Y", "N" ) )

Datos de muestra:

CompañíaID-A
A123
B456
C789

ID-SID-A
1123
2123
3123
4123
4456
5456
6456
8789

ID-Sbandera
1Y
2N
3N
4
4N
5N
6N
8

Por favor, sugiera si podemos hacer algún cambio

Gracias

@praveenpasila,

¿Puede compartir un pbix o algunos datos ficticios que mantengan la estructura de datos sin procesar con los resultados esperados? Podemos probar la fórmula de codificación en ella y crear una fórmula de muestra para compartir.

Cómo obtener respuestas a su pregunta rápidamente

Saludos

Xiaoxin Sheng

@v-shex-msft ,

No pude publicar el archivo pbix y he proporcionado datos de muestra en la publicación anterior.

Datos de muestra:

CompañíaID-A
A123
B456
C789

ID-SID-A
1123
2123
3123
4123
4456
5456
6456
8789

ID-Sbandera
1Y
2N
3N
4
4N
5N
6N
8

Probé la búsqueda y las funciones relacionadas, pero no funciona cuando quiero la nueva columna en la Tabla 1

praveenpasila_0-1653913582597.png

El modelo de datos es el anterior y la razón por la que quiero el indicador en la tabla1 es que es una tabla de dimensiones y la tabla 2 es una tabla de hechos en un escenario en tiempo real.

Pude crear Flag en la Tabla2 con las siguientes fórmulas

Nuevo Comapany = RELACIONADO(«Tabla» [Empresa])
Nuevo Bandera = Dónde joincol = «Cuadro (2)»[ID-s]
Dónde Newcol = CALCULAR(MÁXIMO(«Cuadro (3)»[bandera]),«Cuadro (3)»[ID-s] = joincol)
devolución Newcol
Bandera Col =
DÓNDE flag_count =
CUENTAS (
FILTRO (
«Cuadro (2)»,
«Tabla (2)»[Comapany] = ANTERIOR ( «Tabla (2)»[Comapany])
&& «Cuadro (2)»[Bandera] <> ESPACIO EN BLANCO ()
)
) + 0
DÓNDE resultado =
CUENTAS (
FILTRO (
«Cuadro (2)»,
«Tabla (2)»[Comapany] = ANTERIOR ( «Tabla (2)»[Comapany] )
&& «Cuadro (2)»[Bandera] = "Y"
)
)
DEVOLUCIÓN
SI ( flag_count = 0, ESPACIO EN BLANCO (), SI ( resultado > 0, "Y", "N" ) )

O/P

praveenpasila_1-1653913770491.png

Por favor, sugiera si me falta algo para que funcione.

@PRAVEENPASILA,

Parece que la expresión no puede mapear correctamente en función de las relaciones de 'Muchos a muchos'.
Me gustaría sugerirle que cree una nueva tabla como un puente para vincular dos tablas, luego puede agregar una columna calculada en la segunda tabla para mostrar las banderas:

Bridge =
DISTINCT ( UNION ( ALL ( Mapping[ID-S] ), ALL ( Flag[ID-S] ) ) )

2.png

Tag =
VAR result =
    COUNTROWS (
        FILTER ( Flag, [ID-S] = EARLIER ( Mapping[ID-S] ) && Flag[flag] <> BLANK () )
    )
VAR result2 =
    COUNTROWS (
        FILTER ( Flag, [ID-S] = EARLIER ( Mapping[ID-S] ) && Flag[flag] = "Y" )
    )
RETURN
    IF ( result > 0, IF ( result2 > 0, "Y", "N" ) )

1.png
Saludos

Xiaoxin Sheng

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.

AugPowerBI_Carousel

Power BI Monthly Update - August 2024

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

August Carousel

Fabric Community Update - August 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors
Top Kudoed Authors