Compartir a través de


Table.ReplaceValue

Sintaxis

Table.ReplaceValue(
    table as table,
    oldValue as any,
    newValue as any,
    replacer as function,
    columnsToSearch as list
) as table

Acerca de

Reemplaza un valor por un nuevo valor en las columnas especificadas de una tabla.

  • table: la tabla que se va a buscar.
  • oldValue: valor que se va a reemplazar.
  • newValue: valor de reemplazo.
  • replacer: La función de reemplazo a utilizar. La función puede ser Replacer.ReplaceText para reemplazar el texto original por texto nuevo, Replacer.ReplaceValue para reemplazar el valor original por un nuevo valor o un reemplazador personalizado.
  • columnsToSearch: lista que contiene la columna o columnas específicas de la tabla para buscar el valor que se va a reemplazar.

Ejemplo 1

Reemplace el texto "goodbye" por "world" en la columna B, para que haya una coincidencia solo con el valor completo.

Uso

Table.ReplaceValue(
    Table.FromRecords({
        [A = 1, B = "hello"],
        [A = 2, B = "goodbye"],
        [A = 3, B = "goodbyes"]
    }),
    "goodbye",
    "world",
    Replacer.ReplaceValue,
    {"B"}
)

Salida

Table.FromRecords({
    [A = 1, B = "hello"],
    [A = 2, B = "world"],
    [A = 3, B = "goodbyes"]
})

Ejemplo 2

Reemplace el texto "ur" por "or" en la columna B, para que haya una coincidencia con cualquier parte del valor.

Uso

Table.ReplaceValue(
    Table.FromRecords({
        [A = 1, B = "hello"],
        [A = 2, B = "wurld"]
    }),
    "ur",
    "or",
    Replacer.ReplaceText,
    {"B"}
)

Salida

Table.FromRecords({
    [A = 1, B = "hello"],
    [A = 2, B = "world"]
})

Ejemplo 3

Anonimizar los nombres de los empleados de EE. UU.

Uso

Table.ReplaceValue(
    Table.FromRecords({
        [Name = "Cindy", Country = "US"],
        [Name = "Bob", Country = "CA"]
    }),
    each if [Country] = "US" then [Name] else false,
    each Text.Repeat("*", Text.Length([Name])),
    Replacer.ReplaceValue,
    {"Name"}
)

Salida

Table.FromRecords({
    [Name = "*****", Country = "US"],
    [Name = "Bob", Country = "CA"]
})

Ejemplo 4

Anonimizar todas las columnas de empleados de EE. UU.

Uso

Table.ReplaceValue(
    Table.FromRecords({
        [Name = "Cindy", Country = "US"],
        [Name = "Bob", Country = "CA"]
    }),
    each [Country] = "US",
    "?",
    (currentValue, isUS, replacementValue) =>
        if isUS then
            Text.Repeat(replacementValue, Text.Length(currentValue))
        else
            currentValue,
    {"Name", "Country"}
)

Salida

Table.FromRecords({
    [Name = "?????", Country = "??"],
    [Name = "Bob", Country = "CA"]
})

Funciones de sustituto