Table.FuzzyJoin
Sintaksis
Table.FuzzyJoin(table1 as table, key1 as any, table2 as table, key2 as any, optional joinKind as nullable number, optional joinOptions as nullable record) as table
Tentang
Menggabungkan baris table1
dengan baris table2
berdasarkan pencocokan fuzzy dari nilai kolom kunci yang dipilih oleh key1
(untuk table1
) dan key2
(untuk table2
).
Pencocokan fuzzy adalah perbandingan berdasarkan kesamaan teks daripada kesetaraan teks.
Secara bawaan, join internal dilakukan, tetapi joinKind
yang bersifat opsional dapat disertakan untuk menentukan tipe join. Opsinya meliputi:
- JoinKind.Inner
- JoinKind.LeftOuter
- JoinKind.RightOuter
- JoinKind.FullOuter
- JoinKind.LeftAnti
- JoinKind.RightAnti
- JoinKind.LeftSemi
- JoinKind.RightSemi
Sekumpulan joinOptions
opsional dapat disertakan untuk menentukan cara membandingkan kolom kunci. Opsinya meliputi:
-
ConcurrentRequests
: Angka antara 1 dan 8 yang menentukan jumlah utas paralel yang digunakan untuk pencocokan fuzzy. Nilai defaultnya adalah 1. -
Culture
: Memungkinkan pencocokan catatan berdasarkan aturan khusus budaya. Ini bisa menjadi nama budaya yang valid. Misalnya, opsi Budaya "ja-JP" cocok dengan rekaman berdasarkan budaya Jepang. Nilai defaultnya adalah "", yang cocok berdasarkan budaya Bahasa Inggris Invariant. -
IgnoreCase
: Nilai logis (benar/salah) yang memungkinkan pencocokan kata kunci yang tidak membedakan antara huruf besar dan kecil. Misalnya, ketika benar, "Anggur" dicocokkan dengan "anggur". Nilai defaultnya adalah true. -
IgnoreSpace
: Nilai logis (benar/salah) yang memungkinkan penggpaduan bagian teks untuk menemukan kecocokan. Misalnya, ketika benar, "Gra pes" dicocokkan dengan "Grapes". Nilai defaultnya adalah true. -
NumberOfMatches
: Bilangan bulat yang menentukan jumlah maksimum baris yang cocok yang dapat dikembalikan untuk setiap baris input. Misalnya, nilai 1 akan mengembalikan paling banyak satu baris yang cocok untuk setiap baris input. Jika opsi ini tidak disediakan, semua baris yang cocok dikembalikan. -
SimilarityColumnName
: Nama untuk kolom yang menunjukkan kesamaan antara nilai input dan nilai perwakilan untuk input tersebut. Nilai default adalah null, dalam hal ini kolom baru untuk kesamaan tidak akan ditambahkan. -
Threshold
: Angka antara 0,00 dan 1,00 yang menentukan skor kesamaan di mana dua nilai akan dicocokkan. Misalnya, "Grapes" dan "Graes" (tanpa "p") dicocokkan hanya jika opsi ini diatur ke kurang dari 0,90. Sebuah ambang batas 1,00 hanya memungkinkan kecocokan yang tepat. (Perhatikan bahwa "kecocokan persis" yang kurang tepat mungkin mengabaikan perbedaan seperti penggunaan huruf besar, urutan kata, dan tanda baca.) Nilai bawaannya adalah 0,80. -
TransformationTable
: Tabel yang memungkinkan pencocokan rekaman berdasarkan pemetaan nilai yang disesuaikan. Ini harus berisi kolom "Dari" dan "Ke". Misalnya, "Anggur" dicocokkan dengan "Kismis" jika tabel transformasi disediakan dengan kolom "Dari" yang berisi "Anggur" dan kolom "Ke" yang berisi "Kismis". Perhatikan bahwa transformasi akan diterapkan ke semua kemunculan teks dalam tabel transformasi. Dengan tabel transformasi di atas, "Anggur itu manis" juga akan dicocokkan dengan "Kismis itu manis".
Contoh 1
Gabungan fuzzy dalam kiri dari dua tabel berdasarkan [FirstName]
Penggunaan
Table.FuzzyJoin(
Table.FromRecords(
{
[CustomerID = 1, FirstName1 = "Bob", Phone = "555-1234"],
[CustomerID = 2, FirstName1 = "Robert", Phone = "555-4567"]
},
type table [CustomerID = nullable number, FirstName1 = nullable text, Phone = nullable text]
),
{"FirstName1"},
Table.FromRecords(
{
[CustomerStateID = 1, FirstName2 = "Bob", State = "TX"],
[CustomerStateID = 2, FirstName2 = "bOB", State = "CA"]
},
type table [CustomerStateID = nullable number, FirstName2 = nullable text, State = nullable text]
),
{"FirstName2"},
JoinKind.LeftOuter,
[IgnoreCase = true, IgnoreSpace = false]
)
Output
Table.FromRecords({
[
CustomerID = 1,
FirstName1 = "Bob",
Phone = "555-1234",
CustomerStateID = 1,
FirstName2 = "Bob",
State = "TX"
],
[
CustomerID = 1,
FirstName1 = "Bob",
Phone = "555-1234",
CustomerStateID = 2,
FirstName2 = "bOB",
State = "CA"
],
[
CustomerID = 2,
FirstName1 = "Robert",
Phone = "555-4567",
CustomerStateID = null,
FirstName2 = null,
State = null
]
})
Konten terkait
- Bagaimana budaya memengaruhi pemformatan teks