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

Be one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now

Reply
Anonymous
Not applicable

Cómo convertir la siguiente fila de una base de datos a null en función de la condición

Tengo los siguientes datos en Excel:

Pict1.PNG

Si lo leo en Power Bi, me gustaría conseguir algo como:

Pict2.PNG

Basado en condiciones como:

Si Hum. > 80 y Temp. <- 2 ---> La siguiente fila lo llena con valores NULL

¿Es posible aplicar condiciones al cargar datos? ¿Debo cargar los datos de origen y, después de eso, aplicar condiciones a toda la tabla? ¿Es posible apaciguar las condiciones de toda la tabla a la vez en lugar de columna por columna?

1 ACCEPTED SOLUTION
v-easonf-msft
Community Support
Community Support

Hola , @McMur

Pruebe los pasos como se indica a continuación:

Introduzca la interfaz de "editar consultas"/"transformar datos"

1.Crear columna de índice

70.png

2. haga clic con el botón derecho en "Insertar paso después" para insertar el paso "filtro"

= Table.SelectRows(#"Added Index",each if [Index]=1 then true else  not(#"Added Index"{[Index]-2}[#"Hum."]>=80 and #"Added Index"{[Index]-2}[#"Temp."]<=2))

Se mostrará como se muestra a continuación:

71.png

3. Añadir paso "AddNullrow" :

= List.Generate( () =>
        [RowNumber = Table.RowCount(#"Added Index"), TableResult = FilterTable, Counter = 1],
        each [Counter] <= [RowNumber]+1,
        each [
            TableResult = if let c = [Counter] in Table.RowCount(Table.SelectRows(FilterTable, each [Index] = c)) = 0
                            then Table.InsertRows([TableResult],[Counter]-1, {[#"Hum." = null, #"Temp." = null, #"Vel." = null, Index = [Counter]]})
                            else [TableResult],
            Counter = [Counter] + 1,
            RowNumber = [RowNumber]
        ],
        each [TableResult]
    ){Table.RowCount(#"Added Index")}

Se mostrará como se muestra a continuación:
72.png

Aquí hay una demostración.

PS. Reemplazar con null consumirá mucho rendimiento, y si su fuente de datos es excel, el método no acortará el tiempo de actualización

Saludos
Equipo de Apoyo Comunitario _ Eason
Si este post ayuda,entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

View solution in original post

4 REPLIES 4
v-easonf-msft
Community Support
Community Support

Hola , @McMur

Pruebe los pasos como se indica a continuación:

Introduzca la interfaz de "editar consultas"/"transformar datos"

1.Crear columna de índice

70.png

2. haga clic con el botón derecho en "Insertar paso después" para insertar el paso "filtro"

= Table.SelectRows(#"Added Index",each if [Index]=1 then true else  not(#"Added Index"{[Index]-2}[#"Hum."]>=80 and #"Added Index"{[Index]-2}[#"Temp."]<=2))

Se mostrará como se muestra a continuación:

71.png

3. Añadir paso "AddNullrow" :

= List.Generate( () =>
        [RowNumber = Table.RowCount(#"Added Index"), TableResult = FilterTable, Counter = 1],
        each [Counter] <= [RowNumber]+1,
        each [
            TableResult = if let c = [Counter] in Table.RowCount(Table.SelectRows(FilterTable, each [Index] = c)) = 0
                            then Table.InsertRows([TableResult],[Counter]-1, {[#"Hum." = null, #"Temp." = null, #"Vel." = null, Index = [Counter]]})
                            else [TableResult],
            Counter = [Counter] + 1,
            RowNumber = [RowNumber]
        ],
        each [TableResult]
    ){Table.RowCount(#"Added Index")}

Se mostrará como se muestra a continuación:
72.png

Aquí hay una demostración.

PS. Reemplazar con null consumirá mucho rendimiento, y si su fuente de datos es excel, el método no acortará el tiempo de actualización

Saludos
Equipo de Apoyo Comunitario _ Eason
Si este post ayuda,entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Anonymous
Not applicable

Hola @v-easonf-msft,

Gracias por su respuesta. Sin embargo, soy bastante novato en el lenguaje de programación DAX y estaría agradecido si pudiera sortee algunos comentarios en el paso 3 cuando se agrega el "AddNullrow".

Al mismo tiempo, cuando dices que este enfoque va a consumir mucho rendimiento, ¿es porque quiero convertir esa fila a, específicamente, valores null? ¿Sería el mismo consumo si esa fila se convierte en 0, por ejemplo?

amitchandak
Super User
Super User

Consulte, si estos pueden ayudar

https://community.powerbi.com/t5/Desktop/Filter-row-with-Power-query-m/td-p/571779

https://docs.microsoft.com/en-us/powerquery-m/table-selectrows

Join us as experts from around the world come together to shape the future of data and AI!
At the Microsoft Analytics Community Conference, global leaders and influential voices are stepping up to share their knowledge and help you master the latest in Microsoft Fabric, Copilot, and Purview.
️ November 12th-14th, 2024
 Online Event
Register Here
Anonymous
Not applicable

@amitchandak Gracias por los enlaces. No obstante, quiero convertir a null siguiente fila en función de la condición marcada en la anterior.

He visto que es posible filtrar filas pero en función de sus propios valores. ¿Cómo se puede aplicar el mismo enfoque pero utilizando valores de la fila anterior? ¿Es posible?

Pict3.PNG

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

ArunFabCon

Microsoft Fabric Community Conference 2025

Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.

December 2024

A Year in Review - December 2024

Find out what content was popular in the Fabric community during 2024.

Top Solution Authors
Top Kudoed Authors