Hoy veremos un ejercicio sencillo pero muy práctico con Power Query: Aplicar sobre una columna un reemplazamiento condicionado a valores de terceras columnas.
En el ejemplo que propongo vamos a reemplazar los elementos de la columna 'Responsable' (cualquiera de ellos) que coincida con un país concreto ('ES') y un año en particular ('2020').
Así pues cargaremos nuestra tabla desde la ficha Datos > grupo Obtener y transformar > Desde Tabla o rango, y desde el editor de consultas de Power Query, seleccionamos nuestra tabla recien cargada y presionaremos Editor avanzado, donde implementaremos el siguiente código M:
Especialmente interesante el uso del 'each' que hemos aplicado, que permite recorrer fila por fila, aplicando, si cruza con las condiciones dadas, el reemplazamiento buscado...
En el ejemplo que propongo vamos a reemplazar los elementos de la columna 'Responsable' (cualquiera de ellos) que coincida con un país concreto ('ES') y un año en particular ('2020').
Así pues cargaremos nuestra tabla desde la ficha Datos > grupo Obtener y transformar > Desde Tabla o rango, y desde el editor de consultas de Power Query, seleccionamos nuestra tabla recien cargada y presionaremos Editor avanzado, donde implementaremos el siguiente código M:
let
Origen = Excel.CurrentWorkbook(){[Name="Tabla1"]}[Content],
//dejamos el tipo cambiado...
TipoCambiado = Table.TransformColumnTypes(Origen,{{"Fecha", type date}, {"Cliente", type text}, {"Producto", type text}, {"País", type text}, {"Responsable", type text}}),
//usamos la función Table.ReplaceValue
//Table.ReplaceValue(table as table, oldValue as any, newValue as any, replacer as function, columnsToSearch as list) as table
ReemplazoValorCondicionado=
Table.ReplaceValue(TipoCambiado, //table sobre la que trabajamos
each [Responsable], //valor viejo a cambiar
//y con la condición definimos el nuevo valor por el que sustituiremos.. condicionado
each if ([País]="ES" and Date.Year([Fecha])=2020 ) then "Ismael" else [Responsable],
Replacer.ReplaceValue, //tipo de reemplazamiento
{"Responsable"}) //columna donde buscar el valor a cambiar
in
ReemplazoValorCondicionadoEspecialmente interesante el uso del 'each' que hemos aplicado, que permite recorrer fila por fila, aplicando, si cruza con las condiciones dadas, el reemplazamiento buscado...

























