Table.FuzzyGroup
Table.FuzzyGroup(table as table, key as any, aggregatedColumns as list, optional options as nullable record) as table
Hiermee worden de rijen van table
gegroepeerd door waarden in de opgegeven kolom, key
, ongeveer overeen te laten komen voor elke rij. Voor elke groep wordt een record samengesteld die de sleutelkolommen (en de bijbehorende waarden) bevat, samen met eventuele geaggregeerde kolommen die zijn opgegeven door aggregatedColumns
. Deze functie kan niet garanderen dat een vaste volgorde van rijen wordt geretourneerd.
Een optionele set options
kan worden toegevoegd om op te geven hoe de sleutelkolommen moeten worden vergeleken. Opties zijn onder andere:
-
Culture
: hiermee kunt u records groeperen op basis van cultuurspecifieke regels. Dit kan elke geldige cultuurnaam zijn. Een optie Cultuur van bijvoorbeeld 'ja-JP' groepeert records op basis van de Japanse cultuur. De standaardwaarde is '', die wordt gegroepeerd op basis van de Invariant Engelse cultuur. -
IgnoreCase
: Een logische waarde (waar/onwaar) die hoofdletterongevoelige sleutelgroepering toestaat. Als 'Druiven' bijvoorbeeld waar is, wordt 'Druiven' gegroepeerd met 'druiven'. De standaardwaarde is waar. -
IgnoreSpace
: een logische waarde (waar/onwaar) waarmee tekstonderdelen kunnen worden gecombineerd om groepen te vinden. Als bijvoorbeeld waar is, wordt 'Gra pes' gegroepeerd met 'Druiven'. De standaardwaarde is waar. -
SimilarityColumnName
: een naam voor de kolom met de overeenkomst tussen een invoerwaarde en de representatieve waarde voor die invoer. De standaardwaarde is null. In dat geval wordt er geen nieuwe kolom voor overeenkomsten toegevoegd. -
Threshold
: Een getal tussen 0,00 en 1,00 dat de overeenkomstscore aangeeft waarmee twee waarden worden gegroepeerd. Bijvoorbeeld, 'druiven' en 'Graes' (met ontbrekende 'p') worden alleen gegroepeerd als deze optie is ingesteld op minder dan 0,90. Een drempelwaarde van 1,00 staat alleen exacte overeenkomsten toe. (Houd er rekening mee dat een fuzzy 'exacte overeenkomst' verschillen kan negeren, zoals hoofdletters, woordvolgorde en interpunctie.) De standaardwaarde is 0,80. -
TransformationTable
: een tabel waarmee records kunnen worden gegroepeerd op basis van aangepaste waardetoewijzingen. Deze moet de kolommen Van en Naar bevatten. 'Druiven' wordt bijvoorbeeld gegroepeerd met 'Rozijnen' als er een transformatietabel wordt geleverd waarbij de kolom 'Van' 'Druiven' bevat en de kolom 'Naar' 'Rozijnen' bevat. Houd er rekening mee dat de transformatie wordt toegepast op alle exemplaren van de tekst in de transformatietabel. Met de bovenstaande transformatietabel wordt "Druiven zijn zoet" ook gegroepeerd met "Rozijnen zijn zoet".
Groepeer de tabel met een samengevoegde kolom [Aantal] die het aantal werknemers op elke locatie (each Table.RowCount(_)
) bevat.
Gebruik
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]
)
uitvoer
Table.FromRecords({
[Location = "Seattle", Count = 4],
[Location = "Vancouver", Count = 3]
})