Φιλτράρισμα δεδομένων σε τύπους DAX

Ισχύει για
Excel για Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016

Αυτή η ενότητα περιγράφει τον τρόπο δημιουργίας φίλτρων μέσα σε τύπους παραστάσεων ανάλυσης δεδομένων (DAX). Μπορείτε να δημιουργήσετε φίλτρα μέσα σε τύπους, για να περιορίσετε τις τιμές από τα δεδομένα προέλευσης που χρησιμοποιούνται στους υπολογισμούς. Αυτό μπορείτε να το κάνετε καθορίζοντας έναν πίνακα ως είσοδο στον τύπο και, στη συνέχεια, ορίζοντας μια παράσταση φίλτρου. Η παράσταση φίλτρου που παρέχετε χρησιμοποιείται για την υποβολή ερωτημάτων στα δεδομένα και επιστρέφει μόνο ένα υποσύνολο των δεδομένων προέλευσης. Το φίλτρο εφαρμόζεται δυναμικά κάθε φορά που ενημερώνετε τα αποτελέσματα του τύπου, ανάλογα με το τρέχον περιβάλλον των δεδομένων σας.

Σε αυτό το άρθρο

Δημιουργία φίλτρου σε πίνακα που χρησιμοποιείται σε τύπο

Μπορείτε να εφαρμόσετε φίλτρα σε τύπους που λαμβάνουν έναν πίνακα ως είσοδο. Αντί να εισαγάγετε ένα όνομα πίνακα, χρησιμοποιήστε τη συνάρτηση FILTER για να ορίσετε ένα υποσύνολο γραμμών από τον καθορισμένο πίνακα. Αυτό το υποσύνολο μεταβιβάζεται, στη συνέχεια, σε μια άλλη συνάρτηση, για λειτουργίες όπως οι προσαρμοσμένες συναθροίσεις.

Για παράδειγμα, ας υποθέσουμε ότι έχετε έναν πίνακα δεδομένων που περιέχει πληροφορίες παραγγελιών για μεταπωλητές και θέλετε να υπολογίσετε πόσο πούλησε κάθε μεταπωλητής. Ωστόσο, θέλετε να εμφανίσετε το ποσό πωλήσεων μόνο για εκείνους τους μεταπωλητές που πούλησαν πολλές μονάδες των προϊόντων σας υψηλότερης αξίας. Ο παρακάτω τύπος, που βασίζεται στο δείγμα βιβλίου εργασίας DAX, εμφανίζει ένα παράδειγμα του τρόπου με τον οποίο μπορείτε να δημιουργήσετε αυτόν τον υπολογισμό χρησιμοποιώντας ένα φίλτρο:

=SUMX(
     FILTER ('ResellerSales_USD', 'ResellerSales_USD'[Ποσότητα] > 5 &&
     «ResellerSales_USD»[ProductStandardCost_USD] > 100),
     'ResellerSales_USD'[SalesAmt]
     )

  • Το πρώτο μέρος του τύπου καθορίζει μία από τις συναρτήσεις συνάθροισης του Power Pivot, η οποία λαμβάνει έναν πίνακα ως όρισμα. Η συνάρτηση SUMX υπολογίζει ένα άθροισμα σε πίνακα.

  • Το δεύτερο μέρος του τύπου FILTER(table, expression),καθορίζει SUMX ποια δεδομένα πρέπει να χρησιμοποιηθούν. SUMX Απαιτεί έναν πίνακα ή μια παράσταση που έχει ως αποτέλεσμα πίνακα. Εδώ, αντί να χρησιμοποιήσετε όλα τα δεδομένα ενός πίνακα, μπορείτε να χρησιμοποιήσετε τη FILTER συνάρτηση για να καθορίσετε ποιες από τις γραμμές του πίνακα θα χρησιμοποιηθούν.
    Η παράσταση φίλτρου αποτελείται από δύο μέρη: το πρώτο μέρος ονομάζει τον πίνακα στον οποίο εφαρμόζεται το φίλτρο. Το δεύτερο τμήμα ορίζει μια παράσταση για χρήση ως συνθήκη φίλτρου. Σε αυτή την περίπτωση, φιλτράρετε τους μεταπωλητές που πούλησαν περισσότερες από 5 μονάδες και προϊόντα που κοστίζουν περισσότερα από 100 $. Ο τελεστής &&, είναι ένας λογικός τελεστής AND, ο οποίος υποδεικνύει ότι και τα δύο τμήματα της συνθήκης πρέπει να είναι αληθή προκειμένου η γραμμή να ανήκει στο υποσύνολο που έχει φιλτραριστεί.

  • Το τρίτο τμήμα του τύπου καθορίζει τη συνάρτηση για τις SUMX τιμές που πρέπει να αθροιστούν. Σε αυτή την περίπτωση χρησιμοποιείτε μόνο το ποσό πώλησης.
    Σημειώστε ότι συναρτήσεις, όπως η FILTER, που επιστρέφουν έναν πίνακα, δεν επιστρέφουν ποτέ απευθείας τον πίνακα ή τις γραμμές, αλλά είναι πάντα ενσωματωμένες σε μια άλλη συνάρτηση. Για περισσότερες πληροφορίες σχετικά με τη συνάρτηση FILTER και άλλες συναρτήσεις που χρησιμοποιούνται για το φιλτράρισμα, συμπεριλαμβανομένων περισσότερων παραδειγμάτων, ανατρέξτε στο θέμα Συναρτήσεις φίλτρων (DAX).

    Σημείωση

    Η παράσταση φίλτρου επηρεάζεται από το περιβάλλον στο οποίο χρησιμοποιείται. Για παράδειγμα, εάν χρησιμοποιείτε ένα φίλτρο σε μια μέτρηση και η μέτρηση χρησιμοποιείται σε έναν Συγκεντρωτικό Πίνακα ή Συγκεντρωτικό Γράφημα, το υποσύνολο των δεδομένων που επιστρέφεται μπορεί να επηρεαστεί από πρόσθετα φίλτρα ή αναλυτές που έχει εφαρμόσει ο χρήστης στον Συγκεντρωτικό Πίνακα. Για περισσότερες πληροφορίες σχετικά με το περιβάλλον, ανατρέξτε στο θέμα Περιβάλλον σε τύπους DAX.

Φίλτρα που καταργούν διπλότυπα

Εκτός από το φιλτράρισμα για συγκεκριμένες τιμές, μπορείτε να επιστρέψετε ένα μοναδικό σύνολο τιμών από έναν άλλο πίνακα ή στήλη. Αυτό μπορεί να είναι χρήσιμο όταν θέλετε να μετρήσετε τον αριθμό των μοναδικών τιμών σε μια στήλη ή να χρησιμοποιήσετε μια λίστα μοναδικών τιμών για άλλες λειτουργίες. Το DAX παρέχει δύο συναρτήσεις για την επιστροφή διακριτών τιμών: τη συνάρτηση DISTINCT και τη συνάρτηση VALUES.

  • Η συνάρτηση DISTINCT εξετάζει μία στήλη που καθορίζετε ως όρισμα στη συνάρτηση και επιστρέφει μια νέα στήλη που περιέχει μόνο τις διακριτές τιμές.
  • Η συνάρτηση VALUES επιστρέφει επίσης μια λίστα μοναδικών τιμών, αλλά επιστρέφει επίσης το άγνωστο μέλος. Αυτό είναι χρήσιμο όταν χρησιμοποιείτε τιμές από δύο πίνακες που συνδέονται με μια σχέση και μια τιμή λείπει στον έναν πίνακα και υπάρχει στον άλλο. Για περισσότερες πληροφορίες σχετικά με το άγνωστο μέλος, ανατρέξτε στο θέμα Περιβάλλον σε τύπους DAX.

Και οι δύο αυτές συναρτήσεις επιστρέφουν μια ολόκληρη στήλη τιμών. Επομένως, μπορείτε να χρησιμοποιήσετε τις συναρτήσεις για να λάβετε μια λίστα τιμών που στη συνέχεια μεταβιβάζεται σε μια άλλη συνάρτηση. Για παράδειγμα, μπορείτε να χρησιμοποιήσετε τον παρακάτω τύπο για να λάβετε μια λίστα με τα ξεχωριστά προϊόντα που πωλούνται από ένα συγκεκριμένο μεταπωλητή, χρησιμοποιώντας τον μοναδικό αριθμό-κλειδί προϊόντος και, στη συνέχεια, να καταμετρήσετε τα προϊόντα σε αυτή τη λίστα χρησιμοποιώντας τη συνάρτηση COUNTROWS:

=COUNTROWS(DISTINCT('ResellerSales_USD'[ProductKey]))

Αρχή της σελίδας

Πώς τα συμφραζόμενα επηρεάζουν τα φίλτρα

Όταν προσθέτετε έναν τύπο DAX σε έναν Συγκεντρωτικό Πίνακα ή ένα Συγκεντρωτικό Γράφημα, τα αποτελέσματα του τύπου μπορούν να επηρεαστούν από το περιβάλλον. Εάν εργάζεστε σε έναν πίνακα του Power Pivot, το περιβάλλον είναι η τρέχουσα γραμμή και οι τιμές της. Εάν εργάζεστε σε έναν Συγκεντρωτικό Πίνακα ή Συγκεντρωτικό Γράφημα, ως περιβάλλον νοείται το σύνολο ή το υποσύνολο δεδομένων που ορίζεται από λειτουργίες όπως ο τεμαχισμός ή το φιλτράρισμα. Η σχεδίαση του Συγκεντρωτικού Πίνακα ή Συγκεντρωτικού Γραφήματος επιβάλλει επίσης το δικό της περιβάλλον. Για παράδειγμα, εάν δημιουργήσετε έναν Συγκεντρωτικό Πίνακα που ομαδοποιεί τις πωλήσεις ανά περιοχή και έτος, εμφανίζονται στον Συγκεντρωτικό Πίνακα μόνο τα δεδομένα που ισχύουν για αυτές τις περιοχές και τα έτη. Επομένως, οι μετρήσεις που προσθέτετε στον Συγκεντρωτικό Πίνακα υπολογίζονται στο περιβάλλον των επικεφαλίδων στηλών και γραμμών, συν τυχόν φίλτρα του τύπου μέτρησης.

Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Περιβάλλον σε τύπους DAX.

Αρχή της σελίδας

Κατάργηση φίλτρων

Όταν εργάζεστε με σύνθετους τύπους, ίσως θέλετε να μάθετε ακριβώς ποια είναι τα τρέχοντα φίλτρα ή ίσως θελήσετε να τροποποιήσετε το τμήμα φίλτρου του τύπου. Το DAX παρέχει πολλές συναρτήσεις που σας επιτρέπουν να καταργείτε φίλτρα και να ελέγχετε ποιες στήλες διατηρούνται ως μέρος του τρέχοντος περιβάλλοντος φίλτρου. Αυτή η ενότητα παρέχει μια επισκόπηση του τρόπου με τον οποίο αυτές οι συναρτήσεις επηρεάζουν τα αποτελέσματα σε έναν τύπο.

Παράκαμψη όλων των φίλτρων με τη συνάρτηση ALL

Μπορείτε να χρησιμοποιήσετε τη ALL συνάρτηση για να παρακάμψετε τυχόν φίλτρα που είχαν εφαρμοστεί προηγουμένως και να επαναφέρετε όλες τις γραμμές του πίνακα στη συνάρτηση που εκτελεί τη συγκεντρωτική ή άλλη λειτουργία. Εάν χρησιμοποιείτε μία ή περισσότερες στήλες, αντί για πίνακα, ως ορίσματα στο ALL, η ALL συνάρτηση επιστρέφει όλες τις γραμμές, παραβλέποντας οποιαδήποτε φίλτρα περιβάλλοντος.

Σημείωση

Εάν είστε εξοικειωμένοι με την ορολογία των σχεσιακών βάσεων δεδομένων, μπορείτε να σκεφτείτε ότι ALL δημιουργεί τον φυσικό αριστερό εξωτερικό σύνδεσμο όλων των πινάκων.

Για παράδειγμα, ας υποθέσουμε ότι έχετε τους πίνακες "Πωλήσεις" και "Προϊόντα" και θέλετε να δημιουργήσετε έναν τύπο που θα υπολογίσει το άθροισμα των πωλήσεων για το τρέχον προϊόν διαιρούμενο με τις πωλήσεις για όλα τα προϊόντα. Πρέπει να λάβετε υπόψη το γεγονός ότι, αν ο τύπος χρησιμοποιείται σε μια μέτρηση, ο χρήστης του Συγκεντρωτικού Πίνακα μπορεί να χρησιμοποιεί έναν αναλυτή για το φιλτράρισμα για ένα συγκεκριμένο προϊόν, με το όνομα προϊόντος στις γραμμές. Επομένως, για να έχετε την πραγματική τιμή του παρονομαστή ανεξάρτητα από οποιαδήποτε φίλτρα ή αναλυτές, πρέπει να προσθέσετε τη συνάρτηση ALL για να παρακάμψετε τυχόν φίλτρα. Ο τύπος που ακολουθεί είναι ένα παράδειγμα του τρόπου χρήσης της συνάρτησης ALL για παράκαμψη των εφέ των προηγούμενων φίλτρων:

=SUM (Sales[Amount])/SUMX(Sales[Amount], FILTER(Sales, ALL(Products)))

  • Το πρώτο μέρος του τύπου, η συνάρτηση SUM (Sales[Amount]), υπολογίζει τον αριθμητή.
  • Το άθροισμα λαμβάνει υπόψη το τρέχον περιβάλλον, που σημαίνει ότι εάν προσθέσετε τον τύπο σε μια υπολογιζόμενη στήλη, εφαρμόζεται το περιβάλλον της γραμμής και εάν προσθέσετε τον τύπο σε έναν Συγκεντρωτικό Πίνακα ως μέτρηση, εφαρμόζονται τυχόν φίλτρα που έχουν εφαρμοστεί στον Συγκεντρωτικό Πίνακα (το περιβάλλον φίλτρου).
  • Το δεύτερο τμήμα του τύπου, υπολογίζει τον παρονομαστή. Η συνάρτηση ALL αντικαθιστά τυχόν φίλτρα που μπορεί να εφαρμοστούν στον Products πίνακα.

Για περισσότερες πληροφορίες, συμπεριλαμβανομένων λεπτομερών παραδειγμάτων, ανατρέξτε στο θέμα Συνάρτηση ALL.

Παράκαμψη συγκεκριμένων φίλτρων με τη συνάρτηση ALLEXCEPT

Η συνάρτηση ALLEXCEPT παρακάμπτει επίσης τα υπάρχοντα φίλτρα, αλλά μπορείτε να καθορίσετε ότι ορισμένα από τα υπάρχοντα φίλτρα θα πρέπει να διατηρηθούν. Οι στήλες που ονομάζετε ως ορίσματα στη συνάρτηση ALLEXCEPT καθορίζουν ποιες στήλες θα συνεχίσουν να φιλτράρονται. Εάν θέλετε να αντικαταστήσετε φίλτρα από τις περισσότερες στήλες αλλά όχι από όλες, η επιλογή ALLEXCEPT είναι πιο βολική από την επιλογή ALL. Η συνάρτηση ALLEXCEPT είναι ιδιαίτερα χρήσιμη όταν δημιουργείτε Συγκεντρωτικούς Πίνακες που μπορεί να φιλτραριστούν σε πολλές διαφορετικές στήλες και θέλετε να ελέγξετε τις τιμές που χρησιμοποιούνται στον τύπο. Για περισσότερες πληροφορίες, συμπεριλαμβανομένου ενός λεπτομερούς παραδείγματος χρήσης της συνάρτησης ALLEXCEPT σε έναν Συγκεντρωτικό Πίνακα, ανατρέξτε στη συνάρτηση ALLOFF.

Αρχή της σελίδας