Table.FuzzyJoin
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
Slår sammen radene i table1
med radene i table2
basert på en uklar samsvar av verdiene i nøkkelkolonnene valgt av key1
(for table1
) og key2
(for table2
).
Fuzzy matching er en sammenligning basert på likhet med tekst i stedet for likhet med tekst.
Som standard utføres en indre sammenføyning, men en valgfri joinKind
kan inkluderes for å angi typen sammenføyning. Alternativene omfatter:
- JoinKind.Inner
- JoinKind.LeftOuter
- JoinKind.RightOuter
- JoinKind.FullOuter
- JoinKind.LeftAnti
- JoinKind.RightAnti
- JoinKind.LeftSemi
- JoinKind.RightSemi
Et valgfritt sett med joinOptions
kan inkluderes for å angi hvordan du sammenligner nøkkelkolonnene. Alternativene omfatter:
-
ConcurrentRequests
: Et tall mellom 1 og 8 som angir antall parallelle tråder som skal brukes for uklar samsvar. Standardverdien er 1. -
Culture
: Tillater samsvarende poster basert på kulturspesifikke regler. Det kan være et hvilket som helst gyldig kulturnavn. Et kulturalternativ forja-JPsamsvarer for eksempel med poster basert på den japanske kulturen. Standardverdien er «», som samsvarer basert på den invariante engelske kulturen. -
IgnoreCase
: En logisk verdi (sann/usann) som tillater samsvar mellom store og små bokstaver. Når for eksempel sann, "Druer" samsvarer med "druer". Standardverdien er sann. -
IgnoreSpace
: En logisk verdi (sann/usann) som gjør det mulig å kombinere tekstdeler for å finne treff. Når for eksempel sann, "Gra pes" samsvarer med "Druer". Standardverdien er sann. -
NumberOfMatches
: Et heltall som angir maksimalt antall samsvarende rader som kan returneres for hver inndatarad. En verdi på 1 vil for eksempel returnere maksimalt én samsvarende rad for hver inndatarad. Hvis dette alternativet ikke er angitt, returneres alle samsvarende rader. -
SimilarityColumnName
: Et navn på kolonnen som viser likheten mellom en inndataverdi og den representative verdien for inndataene. Standardverdien er null, og i så fall legges det ikke til en ny kolonne for likheter. -
Threshold
: Et tall mellom 0,00 og 1,00 som angir likhetspoengsummen som to verdier samsvarer med. «Druer» og «Graes» (mangler «p») samsvarer bare hvis dette alternativet er satt til mindre enn 0,90. En terskel på 1,00 tillater bare nøyaktige treff. (Vær oppmerksom på at et uklart «nøyaktig treff» kan ignorere forskjeller som foringsrør, ordrekkefølge og tegnsetting.) Standardverdien er 0,80. -
TransformationTable
: En tabell som tillater samsvarende poster basert på egendefinerte verditilordninger. Den skal inneholde «Fra»- og «Til»-kolonner. «Druer» samsvarer for eksempel med «Rosiner» hvis en transformasjonstabell leveres med «Fra»-kolonnen som inneholder «Druer» og «Til»-kolonnen som inneholder «Rosiner». Vær oppmerksom på at transformasjonen vil bli brukt på alle forekomster av teksten i transformasjonstabellen. Med transformasjonstabellen ovenfor vil "Druer er søte" også bli matchet med "Rosiner er søte".
Venstre indre fuzzy sammenføyning av to tabeller basert på [FirstName]
bruk
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]
)
utdata
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
]
})