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

Power BI is turning 10! Let’s celebrate together with dataviz contests, interactive sessions, and giveaways. Register now.

Reply
Syndicate_Admin
Administrator
Administrator

Reemplazar valor si se cumple la condición de id.

Tengo un escritorio de Power BI que actualmente se conecta a un archivo CSV. Este archivo es para un informe que debe actualizarse mensualmente o adhoc según sea necesario. El archivo contiene cientos de registros que tiene el formato siguiente. Netdays es una calcuation dentro de Power Bi.

IDENTIFICACIÓNFecha de creaciónFecha de resoluciónNetDays
ID.12342021-01-012021-07-23203
ID.12352021-02-052021-02-072

El problema que he encontrado es que alrededor de 30 registros individuales tiene una fecha de resolución incorrecta. Mi solución inicial fue actualizar las fechas de esos registros en el propio sistema, pero el administrador del sistema dijo que no pueden hacer la actualización e intentó todo lo que pudo. Así que la única opción que tengo es reemplazar la fecha de esos registros manualmente y tendrá que hacerse de forma rutinaria.

He fusionado otro archivo de Excel y lo adjunto al final de la tabla actual con los 30 registros y las fechas correctas.

IDENTIFICACIÓNFecha de creaciónFecha de resoluciónNetDaysFecha de fusión
ID.12342021-01-012021-07-232032021-01-05
ID.12352021-02-052021-02-072nulo

Reemplazar la fecha de resolución directamente sería óptimo para mí porque mi columna NetDays está calculando actualmente la diferencia entre la fecha resuelta y la fecha de creación, que también quita los fines de semana.

¿Cómo puedo hacer que Power BI compruebe los valores de Fecha combinada si existe un valor para reemplazar el de la Fecha de resolución?

1 ACCEPTED SOLUTION

No @dnExplorer71,

Usando los siguientes códigos M, reemplazará fácilmente los valores de la columna "Fecha resuelta" con valores en "Fecha combinada" si no son nulos:

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45W8nQxNDI2UdJRMtQ31DcyMDIEMs31jYxhbCMDY7CkKUQgVgeqxRQkBxMFMc3hTCDOK83JUYqNBQA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [ID = _t, #"Created Date" = _t, #"Resolved Date" = _t, NetDays = _t, #"Merged Date" = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"ID", type text}, {"Created Date", type date}, {"Resolved Date", type date}, {"NetDays", Int64.Type}, {"Merged Date", type date}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each if [Merged Date]=null then [Resolved Date] else [Merged Date]),
    #"Replaced Value" = Table.ReplaceValue(#"Added Custom",each [Resolved Date],each [Custom],Replacer.ReplaceValue,{"Resolved Date"}),
    #"Removed Columns" = Table.RemoveColumns(#"Replaced Value",{"Custom"})
in
    #"Removed Columns"

Y verás:(Después de reemplazar)

vkellymsft_0-1629427693530.png

Para el archivo .pbix relacionado, pls ver adjunto.

Saludos
Kelly

¿Respondí a su pregunta? Marque mi respuesta como una solución!

View solution in original post

7 REPLIES 7
Syndicate_Admin
Administrator
Administrator

@dnExplorer71 si agrega otra columna como he descrito, no se le pedirá que realice ningún cambio, fin de los datos, PQ va a devolver el mismo nombre de columna "Fecha resuelta" que ya se utiliza "Datos combinados" datos y no se le pedirá que realice ningún cambio. No estoy seguro de si siguió los 3 pasos que describí en mi respuesta anterior.

Síguenos en LinkedIn

Consulta mi última entrada de blog La potencia del uso de grupos de cálculo con relaciones inactivas (Parte 1) (perytus.com) Me gustaría Elogios si mi solución ayudó. 👉 Si puede pasar tiempo publicando la pregunta, también puede hacer esfuerzos para dar Felicitaciones a quien ayudó a resolver su problema. ¡Es una muestra de agradecimiento!

Visítenos en https://perytus.com, su ventanilla única para proyectos, formación y consultoría relacionados con Power BI.

Syndicate_Admin
Administrator
Administrator

Uno de mis desafíos es que ya he creado un panel en la tabla existente. Si una de las soluciones que tengo que agregar requiere que agregue otra columna, creo que tengo que reelaborar un par de medidas calculadas y algunas visualizaciones. Espero no tener que hacer esto, pero tal vez es la única manera?

No @dnExplorer71,

Usando los siguientes códigos M, reemplazará fácilmente los valores de la columna "Fecha resuelta" con valores en "Fecha combinada" si no son nulos:

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45W8nQxNDI2UdJRMtQ31DcyMDIEMs31jYxhbCMDY7CkKUQgVgeqxRQkBxMFMc3hTCDOK83JUYqNBQA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [ID = _t, #"Created Date" = _t, #"Resolved Date" = _t, NetDays = _t, #"Merged Date" = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"ID", type text}, {"Created Date", type date}, {"Resolved Date", type date}, {"NetDays", Int64.Type}, {"Merged Date", type date}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each if [Merged Date]=null then [Resolved Date] else [Merged Date]),
    #"Replaced Value" = Table.ReplaceValue(#"Added Custom",each [Resolved Date],each [Custom],Replacer.ReplaceValue,{"Resolved Date"}),
    #"Removed Columns" = Table.RemoveColumns(#"Replaced Value",{"Custom"})
in
    #"Removed Columns"

Y verás:(Después de reemplazar)

vkellymsft_0-1629427693530.png

Para el archivo .pbix relacionado, pls ver adjunto.

Saludos
Kelly

¿Respondí a su pregunta? Marque mi respuesta como una solución!

Syndicate_Admin
Administrator
Administrator

@dnExplorer71 otra forma es utilizar los pasos siguientes:

Paso 1 - agregue otra columna personalizada en PQ, llamémosla Nueva fecha y el código M es si [Fecha combinada] = null luego [Fecha de resolución] else [Fecha combinada]

Paso 2: quitar las columnas Fecha combinada y Fecha resuelta

Paso 3 - Cambiar el nombre de la columna Nueva fecha a Fecha resuelta

En este momento, la columna Fecha resuelta se sobrescribe con Fecha combinada donde Fecha combinada está disponible.

si el cálculo de días netos se realiza en PQ, agregue estos pasos antes del cálculo de días netos, si se realiza a través de DAX, no se requiere ningún cambio en el DAX

Síguenos en LinkedIn

Consulta mi última entrada de blog La potencia del uso de grupos de cálculo con relaciones inactivas (Parte 1) (perytus.com) Me gustaría Elogios si mi solución ayudó. 👉 Si puede pasar tiempo publicando la pregunta, también puede hacer esfuerzos para dar Felicitaciones a quien ayudó a resolver su problema. ¡Es una muestra de agradecimiento!

Visítenos en https://perytus.com, su ventanilla única para proyectos, formación y consultoría relacionados con Power BI.

Syndicate_Admin
Administrator
Administrator

@dnExplorer71 está calculando los días netos en PQ o con DAX?

La calcuación de NetDays se realiza invocando el código DAX que he usado de otra fuente en línea. Espero que esto le ayude a entender lo que se ha construido hasta ahora.

Syndicate_Admin
Administrator
Administrator

@dnExplorer71 Puedo cosa de un par de enfoques a este. Una sería agregar una columna adicional con un 1 en ella para los 30 registros. Ordene la tabla, use Table.Buffer y, a continuación, Quite duplicados en la columna ID. Las filas 1 deben filtrarse hasta la parte superior y, por lo tanto, esto eliminará las filas de id. duplicadas con la fecha de resolución incorrecta.

Otro enfoque sería usar una consulta y una tabla independientes (no anexar) y escribir una función para realizar el reemplazo.

Helpful resources

Announcements
June 2025 Power BI Update Carousel

Power BI Monthly Update - June 2025

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

June 2025 community update carousel

Fabric Community Update - June 2025

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

Top Solution Authors