共用方式為


Table.FuzzyGroup

語法

Table.FuzzyGroup(
    table as table,
    key as any,
    aggregatedColumns as list,
    optional options as nullable record
) as table

關於

根據指定資料行 table中的資料列進行分組,透過在各資料列的 key 中進行模糊匹配。 每個群組會各建構一筆記錄,其中包含索引鍵資料行(及其值),以及任何由 aggregatedColumns 指定的彙總資料行。 這個函式無法保證傳回固定順序的資料列。

可以選擇加入一組 options 來指定如何比較關鍵欄位。 這些選項包括:

  • Culture:允許根據文化特性特定規則來將記錄分組。 可以是任何有效的文化名稱。 例如,文化特性 (Culture) 選項 'ja-JP',會依據日文文化特性來將記錄分組。 預設值為 "",這會根據不變的英文文化特性進行分組。
  • IgnoreCase:允許不區分大小寫金鑰分組的邏輯 (true/false) 值。 例如,當為 true 時,"Grapes" 會與 "grapes" 分組在一起。 預設值為 True。
  • IgnoreSpace:允許結合文字部分以尋找群組的邏輯 (true/false) 值。 例如,當為 true 時,"Gra pes" 會與 "Grapes" 分組在一起。 預設值為 True。
  • SimilarityColumnName:資料行的名稱,這個資料行會顯示輸入值與該輸入代表值之間的相似性。 預設值為 Null,在這種情況下,將不會新增相似的新資料行。
  • Threshold:介於 0.00 和 1.00 之間的數字,指定兩個值分組在一起的相似性分數。 例如,只有在此選項設為 0.90 以下時,"Grapes" 和 "Graes" (缺少 "p") 才會分組在一起。 閾值 1.00 只允許完全相符。 (請注意,模糊的「完全相符」可能會忽略大小寫、文字順序和標點符號等差異。)預設值為 0.80。
  • TransformationTable:資料表,允許根據自訂值對應來將記錄分組。 應該包含 "From" 和 "To" 欄。 例如,若轉換資料表中提供包含 "Grapes" 的 "From" 資料行及包含 "Raisins" 的 "To" 資料行,則 "Grapes" 會與 "Raisins" 分組在一起。 請注意,轉換會套用至轉換資料表中所有出現的文字。 使用上述的轉換資料表,"Grapes are sweet" 也會與 "Raisins are sweet" 分組在一起。

範例 1

將資料表分組,並新增一個彙總欄位 [計數],其中包含每個位置的員工數量 (each Table.RowCount(_))。

使用方式

Table.FuzzyGroup(
    Table.FromRecords(
        {
            [EmployeeID = 1, Location = "Seattle"],
            [EmployeeID = 2, Location = "seattl"],
            [EmployeeID = 3, Location = "Vancouver"],
            [EmployeeID = 4, Location = "Seatle"],
            [EmployeeID = 5, Location = "vancover"],
            [EmployeeID = 6, Location = "Seattle"],
            [EmployeeID = 7, Location = "Vancouver"]
        },
        type table [EmployeeID = nullable number, Location = nullable text]
    ),
    "Location",
    {"Count", each Table.RowCount(_)},
    [IgnoreCase = true, IgnoreSpace = true]
)

輸出

Table.FromRecords({
    [Location = "Seattle", Count = 4],
    [Location = "Vancouver", Count = 3]
})