Table.FuzzyGroup

语法

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

关于

按每行的指定列 key 中模糊匹配的值对 table 的行进行分组。 对于每个组,构造一个记录,其中包含键列(及其值)以及 aggregatedColumns 指定的任何聚合列。 此函数无法保证返回顺序固定的行。

可能包含一组可选的 options 以指定如何比较键列。 选项包括:

  • 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 之间的数字,它指定两个值将按其进行分组的相似性分数。 例如,“Grapes”和“Graes”(缺少“p”)仅在该选项设置为小于 0.90 时分组到一起。 阈值 1.00 即在分组时指定完全匹配标准。 默认值为 0.80。
  • TransformationTable:一个允许根据自定义值映射来对记录进行分组的表。 它应包含“From”和“To”列。 例如,如果转换表的“From”列包含“Grapes”,而“To”列包含“Raisins”,则“Grapes”与“Raisins”分为一组。 请注意,转换表中重复出现的所有文本都将应用转换。 在上面的转换表中,“Grapes are sweet”也将与“Raisins are sweet”分为一组。

示例 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] })

results matching ""

    No results matching ""