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:カルチャ固有のルールに基づいて、レコードをグループ化できます。 有効な任意のカルチャ名を指定できます。 たとえば、"ja-JP" というカルチャ オプションでは、日本語カルチャに基づいてレコードをグループ化します。 既定値は "" であり、インバリアント (英語) カルチャに基づいてグループ化します。
  • IgnoreCase:大文字と小文字が区別されないキーのグループ化ができる論理 (true/false) 値。 たとえば、true の場合、"Grapes" は "grapes" とグループ化されます。 既定値は true です。
  • IgnoreSpace:グループを見つけるためにテキスト部分を結合できる論理 (true/false) 値。 たとえば、true の場合、"Gra pes" は "Grapes" とグループ化されます。 既定値は true です。
  • SimilarityColumnName:入力値とその入力の代表値の類似性を示す列の名前です。 既定値は null です。この場合、類似性を示す新しい列は追加されません。
  • Threshold:2 つの値がグループ化される類似性スコアに指定できる、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

テーブルをグループ化し、それぞれの場所 (each Table.RowCount(_)) の従業員数を含む集計列 [Count] を追加します。

使用方法

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