Syntax
Table.FuzzyGroup(
table as table,
key as any,
aggregatedColumns as list,
optional options as nullable record
) as table
About
按指定列中key模糊匹配值的行table对每行进行分组。 对于每个组,将构造一条记录,其中包含键列(及其值),以及由 aggregatedColumns它指定的任何聚合列。 此函数无法保证返回固定的行顺序。
可以包含一组 options 可选选项来指定如何比较键列。 选项包括:
-
Culture:允许基于区域性特定的规则对记录进行分组。 它可以是任何有效的区域性名称。 例如,“ja-JP”的区域性选项基于日本区域性对记录进行分组。 默认值为“”,它基于固定英语区域性进行分组。 -
IgnoreCase:允许不区分大小写的键分组的逻辑值(true/false)。 例如,如果为 true,则“Grapes”与“grapes”分组。 默认值为真。 -
IgnoreSpace:一个逻辑(true/false)值,它允许合并文本部件以查找组。 例如,如果为 true,则“Gra pes”与“Grapes”分组。 默认值为真。 -
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”。 请注意,转换将应用于转换表中文本的所有匹配项。 有了上面的转换表,“葡萄是甜的”也将与“葡萄是甜的”组合在一起。
示例 1
对表进行分组,添加一个聚合列 [Count] ,其中包含每个位置的员工数 (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]
})