Table.FuzzyNestedJoin
Tablolar arasında sağlanan sütunlar üzerinde benzer birleşim gerçekleştirir ve birleşim sonucunu yeni bir sütunda oluşturur.
Syntax
Table.FuzzyNestedJoin(
table1 as table,
key1 as any,
table2 as table,
key2 as any,
newColumnName as text,
optional joinKind as JoinKind.Type,
optional joinOptions as record
) as table
Remarks
key1
(table1
için) ve key2
(table2
için) tarafından seçilen anahtar sütunlarının değerlerinin benzer eşleştirmesine dayanarak table1
satırlarını table2
satırlarıyla birleştirir. Sonuçlar, newColumnName
adlı yeni bir sütunda döndürülür.
Benzer öğe eşleştirme, metnin eşitliğinden ziyade benzerliğini temel alan bir kıyaslamadır.
İsteğe bağlı joinKind
, gerçekleştirilecek birleşim türünü belirtir. Bir joinKind
belirtilmediyse varsayılan olarak bir sol dış birleştirme gerçekleştirilir. Seçenekler şunlardır:
JoinKind.Inner
JoinKind.LeftOuter
JoinKind.RightOuter
JoinKind.FullOuter
JoinKind.LeftAnti
JoinKind.RightAnti
Anahtar sütunlarının nasıl kıyaslanacağını belirtmek için isteğe bağlı olarak bir
joinOptions
kümesi eklenebilir. Seçenekler şunlardır: ConcurrentRequests
: Benzer öğe eşleştirme için kullanılacak paralel iş parçacıklarının sayısını belirten, 1 ile 8 arasında bir sayı. Varsayılan değer 1'dir.Culture
: Kayıtları kültüre özgü kurallara göre eşleştirmeye olanak tanır. Herhangi bir geçerli kültür adı olabilir. Örneğin, "ja-JP" Kültür seçeneği, kayıtları Japon kültürüne göre eşleştirir. Varsayılan değer: "". Bu değer, kayıtları Sabit İngiliz kültürüne göre eşleştirir.IgnoreCase
: Büyük/küçük harfe duyarsız anahtar eşleştirmesine olanak tanıyan mantıksal (true/false) değer. Örneğin, true olduğunda "Üzümler", "üzümler" ile eşleştirilir. Varsayılan değer true'dur.IgnoreSpace
: Eşleşmeleri bulmak için metin parçalarının birleştirilmesine olanak tanıyan mantıksal (true/false) değer. Örneğin, true olduğunda "Üz ümler" "Üzümler" ile eşleştirilir. Varsayılan değer true'dur.NumberOfMatches
: Her giriş satırı için döndürülebilecek maksimum eşleşen satır sayısını belirten tamsayı. Örneğin 1 değeri, her giriş satırı için en çok bir eşleşen satır döndürür. Bu seçenek sağlanmazsa eşleşen tüm satırlar döndürülür.SimilarityColumnName
: Bir giriş değeri ile o giriş için temsili değer arasındaki benzerliği gösteren sütun adı. Varsayılan değer null'dur, bu durumda benzerlikler için yeni bir sütun eklenmeyecektir.Threshold
: İki değerin eşleştirileceği benzerlik puanını belirten, 0,00 ile 1,00 arasında bir sayı. Örneğin, "Üzümler" ve "Üzüler" ("m" eksik), yalnızca bu seçenek 0,90'dan az olarak ayarlandıysa eşleştirilir. 1,00 eşiği, yalnızca tam eşleşmelere izin verir. (Benzer bir "tam eşleşmenin" büyük/küçük harf, sözcük sırası ve noktalama işaretleri gibi farklılıkları görmezden gelebileceğini unutmayın.) Varsayılan değer 0,80'dir.TransformationTable
: Kayıtları özel değer eşlemelerine göre eşleştirmeye olanak tanıyan tablo. "Kaynak" ve "Hedef" sütunlarını içermelidir. Örneğin, "Kaynak" sütununda "Üzümler", "Hedef" sütununda "Kuru üzümler" değerlerini içeren bir dönüşüm tablosu sağlanmışsa "Üzümler", "Kuru üzümler" ile eşleştirilir. Dönüşümün, dönüşüm tablosundaki metnin tüm oluşumlarına uygulanacağını unutmayın. Yukarıdaki dönüşüm tablosu ile "Üzümler tatlıdır" cümlesi de "Kuru üzümler tatlıdır" cümlesi ile eşleştirilir.
Examples
Example #1
[FirstName] temelinde iki tablonun sol iç benzer öğe birleşimi
Table.FuzzyNestedJoin(
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"},
"NestedTable",
JoinKind.LeftOuter,
[IgnoreCase = true, IgnoreSpace = false]
)
Result:
Table.FromRecords({
[
CustomerID = 1,
FirstName1 = "Bob",
Phone = "555-1234",
NestedTable = Table.FromRecords({
[
CustomerStateID = 1,
FirstName2 = "Bob",
State = "TX"
],
[
CustomerStateID = 2,
FirstName2 = "bOB",
State = "CA"
]
})
],
[
CustomerID = 2,
FirstName1 = "Robert",
Phone = "555-4567",
NestedTable = Table.FromRecords({})
]
})
Category
Table.Transformation