Saltar al contenido principal

Table.ReplaceValue

Reemplaza un valor con otro en las columnas especificadas.

Syntax

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

Remarks

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

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

Examples

Example #1

Reemplace el texto "adiós" por "mundo" en la columna B, para coincidir solo con el valor completo.

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

Result:

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

Example #2

Reemplace el texto "su" con "o" en la columna B, para coincidir con cualquier parte del valor.

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

Result:

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

Example #3

Anonimizar los nombres de los empleados de EE. UU.

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"}
)

Result:

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

Example #4

Anonimizar todas las columnas de empleados de EE. UU.

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"}
)

Result:

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

Category

Table.Transformation