Table.ReplaceValue

Syntax

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

Om

Ersätter ett värde med ett nytt värde i de angivna kolumnerna i en tabell.

  • table: Tabellen som ska sökas.
  • oldValue: Det värde som ska ersättas.
  • newValue: Ersättningsvärdet.
  • replacer: Den ersättningsfunktion som ska användas. Funktionen kan antingen Replacer.ReplaceText ersätta den ursprungliga texten med ny text, Replacer.ReplaceValue för att ersätta det ursprungliga värdet med ett nytt värde eller en anpassad ersättning.
  • columnsToSearch: En lista som innehåller den specifika kolumnen eller kolumnerna i tabellen för att söka efter det värde som ska ersättas.

Exempel 1

Ersätt texten "goodbye" med "world" i kolumn B, som endast matchar hela värdet.

Användning

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

Exempel 2

Ersätt texten "ur" med "or" i kolumn B, där den matchar någon del av värdet.

Användning

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

Exempel 3

Anonymisera namnen på anställda i USA.

Användning

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

Exempel 4

Anonymisera alla kolumner med anställda i USA.

Användning

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

Ersättningsfunktioner