語法
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]
})