Del via


Table.ReplaceValue

Syntaks

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

Om

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 enten Replacer.ReplaceText være at erstatte den oprindelige tekst med ny tekst, Replacer.ReplaceValue at erstatte den oprindelige værdi med en ny værdi eller en brugerdefineret erstatning.
  • columnsToSearch: En liste, der indeholder den eller de specifikke kolonner i tabellen, hvor der skal søges efter den værdi, der skal erstattes.

Eksempel 1

Erstat teksten "goodbye" med "world" i kolonne B, så den kun matcher hele værdien.

Brug

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

Output

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

Eksempel 2

Erstat teksten "din" med "eller" i kolonne B, der svarer til en del af værdien.

Brug

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

Output

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

Eksempel 3

Anonymiser navnene på amerikanske medarbejdere.

Brug

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

Output

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

Eksempel 4

Anonymiser alle kolonner med amerikanske medarbejdere.

Brug

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

Output

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

Erstatningsfunktioner