Κοινή χρήση μέσω


Συναρτήσεις 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( Table, ColumnName1 [, ColumnName2, ... ], GroupColumnName )

  • Πίνακας – Υποχρεωτικό. Ο πίνακας για ομαδοποίηση.
  • ColumnName(s) - Υποχρεωτικό. Τα ονόματα των στηλών στο όρισμα Πίνακας βάσει των οποίων θα γίνει η ομαδοποίηση των καρτελών. Αυτές οι στήλες γίνονται στήλες του πίνακα που προκύπτει.
  • GroupColumnName - Υποχρεωτικό. Το όνομα της στήλης για τον χώρο αποθήκευσης των δεδομένων καρτελών που δεν υπάρχουν στο ColumnName(s).

Ungroup( Table, GroupColumnName )

  • Πίνακας – Υποχρεωτικό. Ο πίνακας για κατάργηση της ομαδοποίησης.
  • GroupColumnName - Υποχρεωτικό. Η στήλη που περιέχει τη ρύθμιση δεδομένων καρτελών με τη συνάρτηση GroupBy.

Παραδείγματα

Δημιουργία συλλογής

  1. Προσθέστε ένα κουμπί και ορίστε την ιδιότητά του Text έτσι ώστε το κουμπί να εμφανίζει το κείμενο Αρχικό.
  2. Ορίστε την ιδιότητα 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}
)
  1. Κρατώντας πατημένο το πλήκτρο Alt, επιλέξτε το κουμπί Πρωτότυπο.

    Μόλις δημιουργήσατε μια συλλογή, με όνομα CityPopulations, που περιέχει τα παρακάτω δεδομένα:

    Παράδειγμα CityPopulations.

  2. Για να εμφανίσετε αυτήν τη συλλογή, επιλέξτε Συλλογές από το μενού Αρχείο και, στη συνέχεια, επιλέξτε τη συλλογή CityPopulations. Εμφανίζονται οι πρώτες πέντε καρτέλες στη συλλογή:

    Συλλογή CityPopulations.

Ομαδοποίηση καρτελών

  1. Προσθέστε ένα άλλο κουμπί και ορίστε την ιδιότητά του Text σε "Group".

  2. Ορίστε την ιδιότητα OnSelect αυτού του κουμπιού σε αυτόν τον τύπο:

    ClearCollect( CitiesByCountry, GroupBy( CityPopulations, Country, Cities ) )

  3. Κρατώντας πατημένο το πλήκτρο Alt, επιλέξτε το κουμπί Ομάδα.

    Μόλις δημιουργήσατε μια συλλογή, με το όνομα CitiesByCountry, στην οποία οι καρτέλες της προηγούμενης συλλογής είναι ομαδοποιημένες σύμφωνα με τη στήλη Country.

    Ομαδοποιημενες πόλεις.

  4. Για να εμφανίσετε τις πρώτες πέντε καρτέλες σε αυτή τη συλλογή, επιλέξτε Συλλογές στο μενού Αρχείο.

    Πόλεις κατά χώρα/περιοχή.

  5. Για να εμφανίσετε τους πληθυσμούς των πόλεων σε μια χώρα/περιοχή, επιλέξτε το εικονίδιο πίνακα στη στήλη Cities για τη συγκεκριμένη χώρα/περιοχή (για παράδειγμα, Γερμανία):

    Πληθυσμός - Γερμανία.

Φιλτράρισμα και κατάργηση ομαδοποίησης καρτελών

  1. Προσθέστε ένα άλλο κουμπί και ορίστε την ιδιότητά του Text έτσι ώστε το κουμπί να εμφανίζει το κείμενο "Filter".

  2. Ορίστε την ιδιότητα OnSelect αυτού του κουμπιού σε αυτόν τον τύπο:

    ClearCollect( CitiesByCountryFiltered, Filter( CitiesByCountry, "e" in Country ) )

  3. Κρατώντας πατημένο το πλήκτρο Alt, επιλέξτε το κουμπί που προσθέσατε.

    Μόλις δημιουργήσατε μια τρίτη συλλογή, με το όνομα CitiesByCountryFiltered, που περιλαμβάνει μόνο τις χώρες που έχουν το γράμμα "ε" στα ονόματά τους (δηλαδή, όχι Ισπανία ή Ιταλία).

    CitiesByCountryFiltered.

  4. Προσθέστε ακόμη ένα κουμπί και ορίστε την ιδιότητά του Text έτσι ώστε το κουμπί να εμφανίζει το κείμενο "Ungroup".

  5. Ορίστε την ιδιότητα OnSelect αυτού του κουμπιού σε αυτόν τον τύπο:

    ClearCollect( CityPopulationsUngrouped, Ungroup( CitiesByCountryFiltered, Cities ) )

    Το αποτέλεσμα θα είναι:

    Πόλεις κατά χώρα/περιοχή μετά την κατάργηση της ομαδοποίησης.

Συγκεντρωτικά αποτελέσματα

Μια άλλη λειτουργία που μπορούμε να εκτελέσουμε σε έναν ομαδοποιημένο πίνακα είναι η μεταγλώττιση των αποτελεσμάτων. Σε αυτό το παράδειγμα, θα αθροίσουμε τον πληθυσμό των κύριων πόλεων σε κάθε χώρα/περιοχή.

  1. Προσθέστε ένα άλλο κουμπί και ορίστε την ιδιότητά του Text έτσι ώστε το κουμπί να εμφανίζει το κείμενο "Sum".

  2. Ορίστε την ιδιότητα OnSelect του κουμπιού "Sum" σε αυτόν τον τύπο:

    ClearCollect( CityPopulationsSum, AddColumns( CitiesByCountry, 'Sum of City Populations', Sum( Cities, Population ) ) )

    Το αποτέλεσμα θα είναι:

    Άθροισμα πόλεων.

    Η συνάρτηση AddColumns ξεκινά με τη βασική συλλογή CitiesByCountry και προσθέτει μια νέα στήλη Sum of City Populations. Οι τιμές αυτής της στήλης υπολογίζονται γραμμή προς γραμμή, με βάση τον τύπο Sum( Cities, Population ). Η συνάρτηση AddColumns παρέχει την τιμή της στήλης Cities (έναν πίνακα) για κάθε γραμμή και η συνάρτηση Sum προσθέτει τη στήλη Population για κάθε γραμμή αυτού του υποπίνακα.

    Τώρα που έχουμε το άθροισμα που θέλουμε, μπορούμε να χρησιμοποιήσουμε τη συνάρτηση DropColumns για να καταργήσουμε τους υποπίνακες.

  3. Προσθέστε ένα άλλο κουμπί και ορίστε την ιδιότητά του Text έτσι ώστε στο κουμπί να φαίνεται το κείμενο "SumOnly".

  4. Στην ιδιότητα OnSelect του κουμπιού "SumOnly", ορίστε τον τύπο:

    ClearCollect( CityPopulationsSumOnly, DropColumns( CityPopulationsSum, Cities ) )

    Το αποτέλεσμα θα είναι:

    Άθροισμα χωρών.

    Σημειώστε ότι δεν χρειάστηκε να καταργήσουμε την ομαδοποίηση σε αυτόν τον πίνακα.