Συναρτήσεις GroupBy και Ungroup
Ισχύει για: Εφαρμογές καμβά Εφαρμογές βάσει μοντέλου Power Pages
Ομαδοποιεί και καταργεί την ομαδοποίηση καρτελών ενός πίνακα.
Description
Η συνάρτηση GroupBy επιστρέφει έναν πίνακα με καρτέλες ομαδοποιημένες μαζί με βάση τις τιμές σε μία ή περισσότερες στήλες. Οι καρτέλες στην ίδια ομάδα τοποθετούνται σε μία μόνο καρτέλα, ενώ προστίθεται μια στήλη που περιέχει έναν ένθετο πίνακα με τις υπόλοιπες στήλες.
Η συνάρτηση Ungroup κάνει την αντίστροφη διαδικασία από τη συνάρτηση GroupBy. Η συνάρτηση αυτή επιστρέφει έναν πίνακα, διαχωρίζοντας σε ξεχωριστές καρτέλες τυχόν καρτέλες που είχαν ομαδοποιηθεί.
Μπορείτε να ομαδοποιήσετε καρτέλες με τη συνάρτηση GroupBy, να τροποποιήσετε τον πίνακα που επιστρέφει και, στη συνέχεια, να καταργήσετε την ομαδοποίηση των καρτελών στον τροποποιημένο πίνακα με τη συνάρτηση Ungroup. Για παράδειγμα, μπορείτε να καταργήσετε μια ομάδα καρτελών ακολουθώντας αυτήν την προσέγγιση:
- Χρησιμοποιήστε τη συνάρτηση GroupBy.
- Χρησιμοποιήστε τη συνάρτηση Filter για να καταργήσετε ολόκληρη την ομάδα καρτελών.
- Χρησιμοποιήστε τη συνάρτηση Ungroup.
Μπορείτε, επίσης, να λάβετε συγκεντρωτικά αποτελέσματα με βάση μια ομαδοποίηση:
- Χρησιμοποιήστε τη συνάρτηση GroupBy.
- Χρησιμοποιήστε τη συνάρτηση AddColumns με τις Sum, Average και άλλες συναρτήσεις συγκεντρωτικών αποτελεσμάτων για να προσθέσετε μια νέα στήλη που είναι η συνάθροιση των ομαδοποιημένων πινάκων.
- Χρησιμοποιήστε τη συνάρτηση DropColumns για να απορρίψετε τον ομαδοποιημένο πίνακα.
Ungroup προσπαθεί να διατηρήσει την αρχική σειρά των εγγραφών που τροφοδοτήθηκαν στο GroupBy. Αυτό δεν είναι πάντα δυνατό (για παράδειγμα, εάν ο αρχικός πίνακας περιέχει κενές καρτέλες).
Ένας πίνακας είναι μια τιμή στο Power Apps, όπως ακριβώς και μια συμβολοσειρά ή ένας αριθμός. Μπορείτε να καθορίσετε έναν πίνακα ως όρισμα για μια συνάρτηση και μια συνάρτηση μπορεί να επιστρέψει έναν πίνακα. Οι επιλογές GroupBy και Ungroup δεν τροποποιούν έναν πίνακα. Αντίθετα , λαμβάνουν έναν πίνακα ως όρισμα και επιστρέφουν έναν διαφορετικό πίνακα. Ανατρέξτε στο θέμα Εργασία με πίνακες για περισσότερες λεπτομέρειες.
Σημείωμα
Στο Power Apps πριν από την έκδοση 3.24042, τα ονόματα στηλών καθορίστηκαν με μια συμβολοσειρά κειμένου με τη χρήση διπλών εισαγωγικών και, αν συνδεθούν σε μια προέλευση δεδομένων θα ήταν απαραίτητα για να είναι λογικά ονόματα. Για παράδειγμα, χρησιμοποιήθηκε το λογικό όνομα "cr43e_name" με διπλά εισαγωγικά αντί για το εμφανιζόμενο όνομα Name χωρίς εισαγωγικά. Για τις προελεύσεις δεδομένων SharePoint και Excel που περιέχουν ονόματα στηλών με διαστήματα, κάθε διάστημα καθορίστηκε με "_x0020_", για παράδειγμα "Όνομα στήλης" ως "Column_x0020_Name". Μετά από αυτήν την έκδοση, όλες οι εφαρμογές ενημερώθηκαν αυτόματα με τη νέα σύνταξη που περιγράφεται σε αυτό το άρθρο.
Σύνταξη
GroupBy( Πίνακας; Όνομα_στήλης1[ ; Όνομα_στήλης2; ... ]; Όνομα_ομάδας)
- Πίνακας - Υποχρεωτικό. Ο πίνακας για ομαδοποίηση.
- ColumnNames - Απαιτείται. Τα ονόματα των στηλών στο όρισμα Πίνακας βάσει των οποίων θα γίνει η ομαδοποίηση των καρτελών. Αυτές οι στήλες γίνονται στήλες του πίνακα που προκύπτει.
- GroupColumnName - Απαιτείται. Το όνομα της στήλης για τον χώρο αποθήκευσης των δεδομένων καρτελών που δεν υπάρχουν στο ColumnName(s).
Ungroup( Πίνακας; GroupColumnName )
- Πίνακας - Υποχρεωτικό. Ο πίνακας για κατάργηση της ομαδοποίησης.
- GroupColumnName - Απαιτείται. Η στήλη που περιέχει τη ρύθμιση δεδομένων καρτελών με τη συνάρτηση GroupBy.
Παραδείγματα
Δημιουργία συλλογής
- Προσθέστε ένα κουμπί και ορίστε την ιδιότητά του Text έτσι ώστε το κουμπί να εμφανίζει το κείμενο Αρχικό.
- Ορίστε την ιδιότητα OnSelect του κουμπιού Αρχικό σε αυτόν τον τύπο:
ClearCollect( CityPopulations,
{ City: "London", Country: "United Kingdom", Population: 8615000},
{ City: "Berlin", Country: "Germany", Population: 3562000},
{ City: "Madrid", Country: "Spain", Population: 3165000},
{ City: "Rome", Country: "Italy", Population: 2874000},
{ City: "Paris", Country: "France", Population: 2273000},
{ City: "Hamburg", Country: "Germany", Population: 1760000},
{ City: "Barcelona", Country: "Spain", Population: 1602000},
{ City: "Munich", Country: "Germany", Population: 1494000},
{ City: "Milan", Country: "Italy", Population: 1344000}
)
Κρατώντας πατημένο το πλήκτρο Alt, επιλέξτε το κουμπί Πρωτότυπο.
Μόλις δημιουργήσατε μια συλλογή, με όνομα CityPopulations, που περιέχει τα παρακάτω δεδομένα:
Για να εμφανίσετε αυτήν τη συλλογή, επιλέξτε Συλλογές από το μενού Αρχείο και, στη συνέχεια, επιλέξτε τη συλλογή CityPopulations. Εμφανίζονται οι πρώτες πέντε καρτέλες στη συλλογή:
Ομαδοποίηση καρτελών
Προσθέστε ένα άλλο κουμπί και ορίστε την ιδιότητά του Text σε "Group".
Ορίστε την ιδιότητα OnSelect αυτού του κουμπιού σε αυτόν τον τύπο:
ClearCollect( CitiesByCountry, GroupBy( CityPopulations, Χώρα, Πόλεις ) )
Κρατώντας πατημένο το πλήκτρο Alt, επιλέξτε το κουμπί Ομάδα.
Μόλις δημιουργήσατε μια συλλογή, με το όνομα CitiesByCountry, στην οποία οι καρτέλες της προηγούμενης συλλογής είναι ομαδοποιημένες σύμφωνα με τη στήλη Country.
Για να εμφανίσετε τις πρώτες πέντε καρτέλες σε αυτή τη συλλογή, επιλέξτε Συλλογές στο μενού Αρχείο.
Για να εμφανίσετε τους πληθυσμούς των πόλεων σε μια χώρα/περιοχή, επιλέξτε το εικονίδιο πίνακα στη στήλη Cities για τη συγκεκριμένη χώρα/περιοχή (για παράδειγμα, Γερμανία):
Φιλτράρισμα και κατάργηση ομαδοποίησης καρτελών
Προσθέστε ένα άλλο κουμπί και ορίστε την ιδιότητά του Text έτσι ώστε το κουμπί να εμφανίζει το κείμενο "Filter".
Ορίστε την ιδιότητα OnSelect αυτού του κουμπιού σε αυτόν τον τύπο:
ClearCollect( CitiesByCountryFiltered, Filter( CitiesByCountry, "e" στη χώρα ) )
Κρατώντας πατημένο το πλήκτρο Alt, επιλέξτε το κουμπί που προσθέσατε.
Μόλις δημιουργήσατε μια τρίτη συλλογή, με το όνομα CitiesByCountryFiltered, που περιλαμβάνει μόνο τις χώρες που έχουν το γράμμα "ε" στα ονόματά τους (δηλαδή, όχι Ισπανία ή Ιταλία).
Προσθέστε ακόμη ένα κουμπί και ορίστε την ιδιότητά του Text έτσι ώστε το κουμπί να εμφανίζει το κείμενο "Ungroup".
Ορίστε την ιδιότητα OnSelect αυτού του κουμπιού σε αυτόν τον τύπο:
ClearCollect( CityPopulationsUngrouped, Ungroup( CitiesByCountryFiltered, Πόλεις ) )
Το αποτέλεσμα θα είναι:
Συγκεντρωτικά αποτελέσματα
Μια άλλη λειτουργία που μπορούμε να εκτελέσουμε σε έναν ομαδοποιημένο πίνακα είναι η μεταγλώττιση των αποτελεσμάτων. Σε αυτό το παράδειγμα, θα αθροίσουμε τον πληθυσμό των κύριων πόλεων σε κάθε χώρα/περιοχή.
Προσθέστε ένα άλλο κουμπί και ορίστε την ιδιότητά του Text έτσι ώστε το κουμπί να εμφανίζει το κείμενο "Sum".
Ορίστε την ιδιότητα OnSelect του κουμπιού "Sum" σε αυτόν τον τύπο:
ClearCollect( CityPopulationsSum, AddColumns( CitiesByCountry, 'Άθροισμα πληθυσμών πόλεων', Sum( Πόλεις, Πληθυσμός) ) )
Το αποτέλεσμα θα είναι:
Το AddColumns ξεκινά με τη βασική συλλογή CitiesByCountry και προσθέτει μια νέα στήλη Άθροισμα πληθυσμών πόλεων. Οι τιμές αυτής της στήλης υπολογίζονται γραμμή προς γραμμή, με βάση τον τύπο Sum( Cities, Population ). Η επιλογή AddColumns παρέχει την τιμή της στήλης "Πόλεις " (ένας πίνακας) για κάθε γραμμή και η επιλογή "Άθροισμα" προσθέτει την τιμή "Πληθυσμός" για κάθε γραμμή αυτού του υποπίνακα.
Τώρα που έχουμε το άθροισμα που θέλουμε, μπορούμε να χρησιμοποιήσουμε τη συνάρτηση DropColumns για να καταργήσουμε τους υποπίνακες.
Προσθέστε ένα άλλο κουμπί και ορίστε την ιδιότητά του Text έτσι ώστε στο κουμπί να φαίνεται το κείμενο "SumOnly".
Στην ιδιότητα OnSelect του κουμπιού "SumOnly", ορίστε τον τύπο:
ClearCollect( CityPopulationsSumOnly, DropColumns( CityPopulationsSum, πόλεις ) )
Το αποτέλεσμα θα είναι:
Σημειώστε ότι δεν χρειάστηκε να καταργήσουμε την ομαδοποίηση σε αυτόν τον πίνακα.