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, τα "Σταφύλια" ομαδοποιούνται μαζί με τα "σταφύλια". Η προεπιλεγμένη τιμή είναι αληθές.IgnoreSpace
: Μια λογική τιμή (true/false) που επιτρέπει τον συνδυασμό τμημάτων κειμένου προκειμένου να βρεθούν ομάδες. Για παράδειγμα, όταν είναι true, τα "Στα φύλια" ομαδοποιούνται μαζί με τα "Σταφύλια". Η προεπιλεγμένη τιμή είναι αληθές.SimilarityColumnName
: Ένα όνομα για τη στήλη που εμφανίζει την ομοιότητα μεταξύ μιας τιμής εισόδου και της αντιπροσωπευτικής τιμής για αυτή την είσοδο. Η προεπιλεγμένη τιμή είναι null, στην οποία περίπτωση δεν θα προστεθεί μια νέα στήλη για ομοιότητες.Threshold
: Ένας αριθμός μεταξύ 0,00 και 1,00 που καθορίζει τη βαθμολογία ομοιότητας με την οποία θα ομαδοποιούνται δύο τιμές. Για παράδειγμα, τα "Σταφύλια" και "Σταφύλι" (λείπει το "α") ομαδοποιούνται μόνο εάν αυτή η επιλογή έχει οριστεί σε μικρότερη τιμή από 0,90. Το όριο 1,00 επιτρέπει μόνο ακριβείς αντιστοιχίσεις. (Σημειώστε ότι μια ασαφής "ακριβής αντιστοίχιση" μπορεί να παραβλέψει διαφορές όπως το περίβλημα, η σειρά των λέξεων και τα σημεία στίξης.) Η προεπιλεγμένη τιμή είναι 0,80.TransformationTable
: Ένας πίνακας που επιτρέπει την ομαδοποίηση εγγραφών με βάση αντιστοιχίσεις προσαρμοσμένων τιμών. Θα πρέπει να περιέχει στήλες "Από" και "Προς". Για παράδειγμα, τα "Σταφύλια" ομαδοποιούνται μαζί με τις "Σταφίδες" εάν παρέχεται ένας πίνακας μετασχηματισμού με τη στήλη "Από" που περιέχει "Σταφύλια" και τη στήλη "Προς" που περιέχει "Σταφίδες". Σημειώστε ότι ο μετασχηματισμός θα εφαρμοστεί σε όλες τις εμφανίσεις του κειμένου στον πίνακα μετασχηματισμού. Με τον παραπάνω πίνακα μετασχηματισμού "Τα σταφύλια είναι γλυκά" θα ομαδοποιηθούν επίσης με το "Οι σταφίδες είναι γλυκές".
Ομαδοποιήστε τον πίνακα προσθέτοντας μια συγκεντρωτική στήλη [Πλήθος] που περιέχει τον αριθμό των υπαλλήλων σε κάθε τοποθεσία (each Table.RowCount(_)
).
Χρήση
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]
})