Εισαγωγή

Ολοκληρώθηκε

Μπορείτε να συντάξετε έναν τύπο Παραστάσεων ανάλυσης δεδομένων (DAX) για να προσθέσετε έναν υπολογιζόμενο πίνακα στο μοντέλο σας. Ο τύπος μπορεί να αντιγράψει ή μετασχηματίσει υπάρχοντα δεδομένα μοντέλου για την παραγωγή ενός νέου πίνακα.

Σημείωση

Ένας υπολογιζόμενος πίνακας δεν μπορεί να συνδεθεί σε εξωτερικά δεδομένα. Πρέπει να χρησιμοποιήσετε το Power Query για να επιτύχετε αυτήν την εργασία.

Ένας τύπος υπολογιζόμενου πίνακα πρέπει να επιστρέψει ένα αντικείμενο πίνακα. Ο απλούστερος τύπος μπορεί να αντιγράφει έναν υπάρχοντα πίνακα μοντέλου.

Οι υπολογιζόμενοι πίνακες έχουν ένα κόστος: Αυξάνουν το μέγεθος του χώρου αποθήκευσης μοντέλου και μπορούν να επεκτείνουν τον χρόνο ανανέωσης δεδομένων. Ο λόγος για αυτό είναι ότι οι υπολογιζόμενοι πίνακες υπολογίζονται ξανά όταν έχουν εξαρτήσεις τύπων σε ανανεωμένους πίνακες.

Αναπαραγωγή πίνακα

Η παρακάτω ενότητα περιγράφει μια συνήθη πρόκληση σχεδίασης που μπορεί να επιλυθεί δημιουργώντας έναν υπολογιζόμενο πίνακα. Πρώτα, θα πρέπει να κάνετε λήψη και να ανοίξετε το αρχείο Adventure Works DW 2020 M03.pbix και, στη συνέχεια, να αλλάξετε σε διάγραμμα μοντέλου.

Στο διάγραμμα μοντέλου, παρατηρήστε ότι ο πίνακας Πωλήσεις έχει τρεις σχέσεις με τον πίνακα Ημερομηνία .

Μια εικόνα που εμφανίζει δύο πίνακες: Πωλήσεις και Ημερομηνία. Υπάρχουν τρεις σχέσεις μεταξύ των πινάκων. Μόνο μία σχέση είναι ενεργή.

Το διάγραμμα μοντέλου εμφανίζει τρεις σχέσεις καθώς ο πίνακας Πωλήσεις αποθηκεύει δεδομένα πωλήσεων κατά ημερομηνία παραγγελίας, ημερομηνία αποστολής και ημερομηνία προθεσμίας. Εάν εξετάσετε τις στήλες OrderDateKey, ShipDateKey και DueDateKey, παρατηρήστε ότι μία σχέση αντιπροσωπεύεται από μια συμπαγή γραμμή, η οποία είναι η ενεργή σχέση. Οι άλλες σχέσεις, οι οποίες αντιπροσωπεύονται από διακεκομμένες γραμμές, είναι ανενεργές σχέσεις.

Σημείωση

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

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

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

Έπειτα, προσθέστε έναν νέο πίνακα για να επιτρέψετε στους χρήστες αναφοράς να φιλτράρουν πωλήσεις κατά ημερομηνία αποστολής. Αλλάξτε σε Προβολή αναφοράς και, στη συνέχεια, στην καρτέλα κορδέλας Μοντελοποίηση , από το εσωτερικό της ομάδας Υπολογισμοί , επιλέξτε Νέος πίνακας.

Μια εικόνα που εμφανίζει την καρτέλα κορδέλας Μοντελοποίηση Power BI Desktop. Στο εσωτερικό της ομάδας Υπολογισμοί, επισημαίνεται η εντολή Νέος πίνακας.

Στη γραμμή τύπων (βρίσκεται κάτω από την κορδέλα), πληκτρολογήστε τον παρακάτω ορισμό υπολογιζόμενου πίνακα και, στη συνέχεια, πατήστε enter.

Ship Date = 'Date'

Ο ορισμός υπολογιζόμενου πίνακα αναπαράγει τα δεδομένα του πίνακα Ημερομηνία για να δημιουργήσει έναν νέο πίνακα με την ονομασία Ημερομηνία αποστολής. Ο πίνακας Ημερομηνία αποστολής έχει ακριβώς τις ίδιες στήλες και γραμμές με τον πίνακα Ημερομηνία . Όταν ανανεώνονται τα δεδομένα του πίνακα Ημερομηνία , ο πίνακας Ημερομηνία αποστολής επανυπολογίζεται, ώστε να είναι πάντα συγχρονισμένοι.

Αλλάξτε σε διάγραμμα μοντέλου και παρατηρήστε την προσθήκη του πίνακα Ημερομηνία αποστολής .

Μια εικόνα που εμφανίζει τον πίνακα Ημερομηνία αποστολής, ο οποίος αποτελείται από τις ίδιες στήλες με τον πίνακα Ημερομηνία.

Στη συνέχεια, δημιουργήστε μια σχέση μεταξύ της στήλης DateKey στον πίνακα Ημερομηνία αποστολής και της στήλης ShipDateKey στον πίνακα Πωλήσεις . Μπορείτε να δημιουργήσετε τη σχέση σύροντας τη στήλη DateKey στον πίνακα Ημερομηνία αποστολής στη στήλη ShipDateKey στον πίνακα Πωλήσεις .

Ένας υπολογιζόμενος πίνακας αναπαράγει μόνο δεδομένα. Δεν αναπαράγει ιδιότητες ή αντικείμενα μοντέλου, όπως ορατότητα στηλών ή ιεραρχίες. Θα πρέπει να τις ρυθμίσετε για τον νέο πίνακα, εάν απαιτείται.

Συμβουλή

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

Για να ολοκληρώσετε τη σχεδίαση του πίνακα Ημερομηνία αποστολής , μπορείτε να κάνετε τα εξής:

  • Μετονομάστε τις παρακάτω στήλες:
    • Ημερομηνία ως Ημερομηνία αποστολής
    • Οικονομικό έτος ως Οικονομικό έτος αποστολής
    • Οικονομικό τρίμηνο ως Οικονομικό τρίμηνο αποστολής
    • Μήνας ως Μήνας αποστολής
    • Πλήρης ημερομηνία ως Πλήρης ημερομηνία αποστολής
  • Ταξινομήστε τη στήλη Πλήρης ημερομηνία αποστολής κατά τη στήλη Ημερομηνία αποστολής.
  • Ταξινομήστε τη στήλη Μήνας αποστολής κατά τη στήλη MonthKey.
  • Κρύψτε τη στήλη MonthKey.
  • Δημιουργήστε μια ιεραρχία με ονομασία Οικονομικό με τα παρακάτω επίπεδα:
    • Οικονομικό έτος αποστολής
    • Οικονομικό τρίμηνο αποστολής
    • Μήνας αποστολής
    • Πλήρης ημερομηνία αποστολής
  • Επισημάνετε τον πίνακα Ημερομηνία αποστολής ως έναν πίνακα ημερομηνιών χρησιμοποιώντας τη στήλη Ημερομηνία αποστολής.

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

Δημιουργία πίνακα ημερομηνιών

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

Δημιουργήστε τον υπολογιζόμενο πίνακα Ημερομηνία προθεσμίας χρησιμοποιώντας τον παρακάτω ορισμό.

Due Date = CALENDARAUTO(6)

Η CALENDARAUTO συνάρτηση DAX λαμβάνει ένα μοναδικό προαιρετικό όρισμα, το οποίο είναι ο αριθμός τελευταίου μήνα του έτους και επιστρέφει έναν πίνακα μίας στήλης. Εάν δεν μεταβιβάσετε έναν αριθμό μήνα, θεωρείται ότι είναι το 12 (για Δεκέμβριο). Για παράδειγμα, στην Adventure Works, το οικονομικό έτος τους τελειώνει στις 30 Ιουνίου κάθε έτους, συνεπώς μεταβιβάζεται η τιμή 6 (για Ιούνιο).

Η συνάρτηση σαρώνει όλες τις στήλες ημερομηνιών και ημερομηνίας/ώρας στο μοντέλο σας, προκειμένου να προσδιοριστούν οι παλαιότερες και πιο πρόσφατες αποθηκευμένες τιμές ημερομηνιών. Έπειτα, παράγει ένα πλήρες σύνολο ημερομηνιών που εκτείνονται σε όλες τις ημερομηνίες στο μοντέλο σας, εξασφαλίζοντας ότι φορτώνονται πλήρη έτη ημερομηνιών. Για παράδειγμα, εάν η παλαιότερη ημερομηνία που αποθηκεύεται στο μοντέλο σας είναι η 15 Οκτωβρίου 2021, τότε η πρώτη ημερομηνία που επιστρέφεται από τη CALENDARAUTO συνάρτηση θα είναι η 1η Ιουλίου 2021. Εάν η τελευταία ημερομηνία που αποθηκεύεται στο μοντέλο είναι 15 Ιουνίου 2022, τότε η τελευταία ημερομηνία που επιστρέφεται από τη CALENDARAUTO συνάρτηση θα είναι 30 Ιουνίου 2022.

Ουσιαστικά, η CALENDARAUTO συνάρτηση εγγυάται ότι πληρούνται οι ακόλουθες απαιτήσεις για την επισήμανση ενός πίνακα ημερομηνιών :

  • Ο πίνακας πρέπει να περιλαμβάνει μια στήλη τύπου δεδομένων Ημερομηνία.
  • Η στήλη πρέπει να περιέχει πλήρη έτη.
  • Δεν πρέπει να απουσιάζουν ημερομηνίες από τη στήλη.

Συμβουλή

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

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

Σημείωση

Η ταξινόμηση ή το φιλτράρισμα στηλών δεν αλλάζει τον τρόπο αποθήκευσης των τιμών. Αυτές οι συναρτήσεις σάς βοηθούν να εξερευνήσετε και κατανοήσετε τα δεδομένα.

Μια εικόνα που εμφανίζει τον πίνακα Ημερομηνία προθεσμίας σε προβολή δεδομένων. Υπάρχει μία στήλη με ονομασία Ημερομηνία και όταν οι τιμές ταξινομούνται από παλαιότερη σε πιο πρόσφατη, η πρώτη ημερομηνία είναι η 1 Ιουλίου 2017.

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

Μια εικόνα που εμφανίζει το μήνυμα κατάστασης: ΠΙΝΑΚΑΣ: Ημερομηνία προθεσμίας (1.461 γραμμές) ΣΤΗΛΗ: Ημερομηνία (1.461 διακριτές τιμές).

Όταν οι γραμμές πίνακα και οι διακριτές τιμές είναι ίδιες, αυτό σημαίνει ότι η στήλη περιέχει μοναδικές τιμές. Αυτός ο παράγοντας είναι σημαντικός για δύο λόγους: Ικανοποιεί τις απαιτήσεις επισήμανσης ενός πίνακα ημερομηνιών και επιτρέπει σε αυτήν τη στήλη να χρησιμοποιηθεί σε μια σχέση μοντέλου ως η πλευρά ένα-.

Ο υπολογιζόμενος πίνακας Ημερομηνία προθεσμίας θα υπολογίζεται ξανά κάθε φορά που ανανεώνεται ένας πίνακας που περιέχει μια στήλη ημερομηνίας. Με άλλα λόγια, όταν φορτώνεται μια γραμμή στον πίνακα Πωλήσεις με ημερομηνία παραγγελίας 1 Ιουλίου 2022, ο πίνακας Ημερομηνία προθεσμίας θα επεκταθεί αυτόματα για να συμπεριλάβει ημερομηνίες μέχρι το τέλος του επόμενου έτους: 30 Ιουνίου 2023.

Ο πίνακας Ημερομηνία προθεσμίας απαιτεί πρόσθετες στήλες για την υποστήριξη των γνωστών απαιτήσεων φιλτραρίσματος και ομαδοποίησης, συγκεκριμένα κατά έτος, τρίμηνο και μήνα.