Hop til hovedindhold

Table.ReplaceValue

Erstatter én værdi med en anden i de angivne kolonner.

Syntax​

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

Remarks​

Erstatter en værdi med en ny værdi i de angivne kolonner i en tabel.

  • table: Den tabel, der skal søges i.
  • oldValue: Den værdi, der skal erstattes.
  • newValue: Erstatningsværdien.
  • replacer: Den erstatningsfunktion, der skal bruges. Funktionen kan være enten Replacer.ReplaceText for at erstatte den oprindelige tekst med ny tekst, Replacer.ReplaceValue for at erstatte den oprindelige værdi med en ny værdi, eller en brugerdefineret erstatningsfunktion.
  • columnsToSearch: En liste, der indeholder den eller de specifikke kolonner i tabellen hvor der skal søges efter den værdi, der skal erstattes.

Examples​

Example #1​

Erstat teksten "farvel" med "verden" i kolonne B, der kun matcher hele værdien.

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​

Erstat teksten "din" med "eller" i kolonne B, så den svarer til en hvilken som helst del af værdien.

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​

Anonymiser navnene på de amerikanske medarbejdere.

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​

Anonymiser alle kolonner med de amerikanske medarbejdere.

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