Σε ένα μοντέλο δεδομένων, κάθε στήλη έχει έναν συσχετισμένο τύπο δεδομένων που καθορίζει τον τύπο δεδομένων που μπορεί να περιέχει η στήλη: ακέραιοι αριθμοί, δεκαδικοί αριθμοί, κείμενο, νομισματικά δεδομένα, ημερομηνίες και ώρες και ούτω καθεξής. Ο τύπος δεδομένων καθορίζει επίσης το είδος των λειτουργιών που μπορείτε να κάνετε στη στήλη και πόση μνήμη χρειάζεται για την αποθήκευση των τιμών στη στήλη.
Εάν χρησιμοποιείτε το πρόσθετο Power Pivot, μπορείτε να αλλάξετε τον τύπο δεδομένων μιας στήλης. Ίσως χρειαστεί να το κάνετε αυτό εάν μια στήλη ημερομηνίας έχει εισαχθεί ως συμβολοσειρά, αλλά πρέπει να είναι κάτι άλλο. Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Ορισμός του τύπου δεδομένων μιας στήλης στο Power Pivot.
Σε αυτό το άρθρο
Σύνοψη τύπων δεδομένων
Ο παρακάτω πίνακας παραθέτει τους τύπους δεδομένων που υποστηρίζονται σε ένα μοντέλο δεδομένων. Κατά την εισαγωγή δεδομένων ή τη χρήση μιας τιμής σε έναν τύπο, ακόμη και αν το αρχικό αρχείο προέλευσης δεδομένων περιέχει διαφορετικό τύπο δεδομένων, τα δεδομένα μετατρέπονται σε έναν από αυτούς τους τύπους δεδομένων. Οι τιμές που προκύπτουν από τύπους χρησιμοποιούν επίσης αυτούς τους τύπους δεδομένων.
| Τύπος δεδομένων στο Excel | Τύπος δεδομένων σε DAX | Περιγραφή |
|---|---|---|
| Ακέραιος αριθμός | Ακέραια τιμή 64 bit (οκτώ byte), 1, 2 | Αριθμοί χωρίς δεκαδικά ψηφία. Οι ακέραιοι αριθμοί μπορεί να είναι θετικοί ή αρνητικοί αριθμοί, αλλά πρέπει να είναι ακέραιοι αριθμοί μεταξύ -9.223.372.036.854.775.808 (-2^63) και 9.223.372.036.854.775.807 (2^63-1). |
| Δεκαδικός αριθμός | Ένας πραγματικός αριθμός 64 bit (οκτώ byte) 1, 2 | Οι πραγματικοί αριθμοί είναι αριθμοί που μπορεί να έχουν δεκαδικά ψηφία. Οι πραγματικοί αριθμοί καλύπτουν ένα ευρύ φάσμα τιμών: Αρνητικές τιμές από -1,79E +308 έως -2,23E -308 Μηδέν Θετικές τιμές από 2,23E -308 έως 1,79E + 308 Ωστόσο, ο αριθμός των σημαντικών ψηφίων περιορίζεται σε 15 δεκαδικά ψηφία. |
| ΑΛΗΘΕΣ/ΨΕΥΔΕΣ | δυαδική τιμή | Μια τιμή είτε "Αληθές" είτε "Ψευδές"). |
| Text | Συμβολοσειρά | Μια συμβολοσειρά δεδομένων χαρακτήρων Unicode. Μπορεί να είναι συμβολοσειρές, αριθμοί ή ημερομηνίες που αναπαριστώνται σε μορφή κειμένου. Το μέγιστο μήκος συμβολοσειράς είναι 268.435.456 χαρακτήρες Unicode (256 mega χαρακτήρες) ή 536.870.912 byte. |
| Ημερομηνία | Hμερομηνία/ώρα | Ημερομηνίες και ώρες σε μια αποδεκτή αναπαράσταση ημερομηνίας/ώρας. Έγκυρες ημερομηνίες είναι όλες οι ημερομηνίες μετά την 1η Ιανουαρίου 1900. |
| Νομισματική μονάδα | Νομισματική μονάδα | Ο τύπος δεδομένων "Νομισματική μονάδα" επιτρέπει τιμές μεταξύ -922.337.203.685.477,5808 και 922.337.203.685.477,5807 με τέσσερα δεκαδικά ψηφία σταθερής ακρίβειας. |
| Δ/Υ | Κενό | Το κενό είναι ένας τύπος δεδομένων στο DAX που αντιπροσωπεύει και αντικαθιστά τις τιμές null SQL. Μπορείτε να δημιουργήσετε ένα κενό χρησιμοποιώντας τη συνάρτηση BLANK και να ελέγξετε για κενά χρησιμοποιώντας τη λογική συνάρτηση ISBLANK. |
1 Οι τύποι DAX δεν υποστηρίζουν τύπους δεδομένων μικρότερους από αυτούς που παρατίθενται στον πίνακα.
2 Εάν προσπαθήσετε να εισαγάγετε δεδομένα που έχουν πολύ μεγάλες αριθμητικές τιμές, η εισαγωγή ενδέχεται να αποτύχει με το ακόλουθο σφάλμα:
Σφάλμα βάσης δεδομένων στη μνήμη: Η στήλη "<όνομα> στήλης" του πίνακα "<όνομα> πίνακα" περιέχει μια τιμή, "1.7976931348623157e+308", η οποία δεν υποστηρίζεται. Η λειτουργία ακυρώθηκε.
Αυτό το σφάλμα παρουσιάζεται επειδή το Power Pivot χρησιμοποιεί αυτήν την τιμή για να αναπαραστήσει τιμές null. Οι τιμές στην παρακάτω λίστα είναι συνώνυμες της τιμής null:
| Τιμή |
|---|
| 9223372036854775807 |
| -9223372036854775808 |
| 1.7976931348623158e+308 |
| 2.2250738585072014Ε-308 |
Καταργήστε την τιμή από τα δεδομένα σας και επαναλάβετε την εισαγωγή.
Τύπος δεδομένων πίνακα
Το DAX χρησιμοποιεί έναν τύπο δεδομένων πίνακα σε πολλές συναρτήσεις, όπως συναθροίσεις και υπολογισμούς χρονικής ευφυΐας. Ορισμένες συναρτήσεις απαιτούν αναφορά σε πίνακα. Άλλες συναρτήσεις επιστρέφουν έναν πίνακα ο οποίος, στη συνέχεια, μπορεί να χρησιμοποιηθεί ως είσοδος σε άλλες συναρτήσεις. Σε ορισμένες συναρτήσεις που απαιτούν έναν πίνακα ως είσοδο, μπορείτε να καθορίσετε μια παράσταση που αξιολογείται σε πίνακα. Για ορισμένες συναρτήσεις, απαιτείται αναφορά σε βασικό πίνακα. Για πληροφορίες σχετικά με τις απαιτήσεις συγκεκριμένων συναρτήσεων, ανατρέξτε στο θέμα Αναφορά συνάρτησης DAX.
Έμμεση και ρητή μετατροπή τύπου δεδομένων σε τύπους DAX
Κάθε συνάρτηση DAX έχει συγκεκριμένες απαιτήσεις ως προς τους τύπους δεδομένων που χρησιμοποιούνται ως είσοδοι και έξοδοι. Για παράδειγμα, ορισμένες συναρτήσεις απαιτούν ακέραιους αριθμούς για ορισμένα ορίσματα και ημερομηνίες για άλλα. Άλλες συναρτήσεις απαιτούν κείμενο ή πίνακες.
Εάν τα δεδομένα στη στήλη που καθορίζετε ως όρισμα δεν είναι συμβατά με τον τύπο δεδομένων που απαιτείται από τη συνάρτηση, το DAX σε πολλές περιπτώσεις θα επιστρέψει σφάλμα. Ωστόσο, όπου είναι δυνατό, το DAX θα επιχειρήσει να μετατρέψει έμμεσα τα δεδομένα στον απαιτούμενο τύπο δεδομένων. Για παράδειγμα:
- Μπορείτε να πληκτρολογήσετε μια ημερομηνία ως συμβολοσειρά και το DAX θα αναλύσει τη συμβολοσειρά και θα επιχειρήσει να τη μεταδώσει ως μία από τις μορφές ημερομηνίας και ώρας των Windows.
- Μπορείτε να προσθέσετε TRUE + 1 και να λάβετε το αποτέλεσμα 2, επειδή η TRUE μετατρέπεται σιωπηρά στον αριθμό 1 και εκτελείται η λειτουργία 1+1.
- Εάν προσθέσετε τιμές σε δύο στήλες και η μία τιμή τυχαίνει να αναπαριστάται ως κείμενο ("12") και η άλλη ως αριθμός (12), το DAX μετατρέπει σιωπηρά τη συμβολοσειρά σε αριθμό και, στη συνέχεια, κάνει την πρόσθεση για ένα αριθμητικό αποτέλεσμα. Η παρακάτω παράσταση επιστρέφει 44: = "22" + 22
- Εάν επιχειρήσετε να συνενώσετε δύο αριθμούς, το Excel θα τους παρουσιάσει ως συμβολοσειρές και, στη συνέχεια, θα τους ενώσει. Η ακόλουθη παράσταση επιστρέφει την τιμή "1234": = 12 & 34
Ο παρακάτω πίνακας συνοψίζει τις έμμεσες μετατροπές τύπου δεδομένων που εκτελούνται σε τύπους. Το Excel εκτελεί σιωπηρές μετατροπές όποτε είναι δυνατό, όπως απαιτείται από την καθορισμένη λειτουργία.
Πίνακας έμμεσων μετατροπών δεδομένων
Ο τύπος της μετατροπής που εκτελείται καθορίζεται από τον τελεστή, ο οποίος ρίχνει τις τιμές που απαιτούνται πριν από την εκτέλεση της λειτουργίας που ζητήθηκε. Αυτοί οι πίνακες παραθέτουν τους τελεστές και υποδεικνύουν τη μετατροπή που πραγματοποιείται σε κάθε τύπο δεδομένων στη στήλη όταν συνδυάζεται με τον τύπο δεδομένων στην τεμνόμενη γραμμή.
Σημείωση
Οι τύποι δεδομένων "Κείμενο" δεν περιλαμβάνονται σε αυτούς τους πίνακες. Όταν ένας αριθμός παρουσιάζεται με μορφή κειμένου, σε ορισμένες περιπτώσεις το Power Pivot θα επιχειρήσει να προσδιορίσει τον τύπο αριθμού και να τον αναπαραστήσει ως αριθμό.
Πρόσθεση (+)
| Τελεστής (+) | INTEGER | CURRENCY | REAL | Hμερομηνία/ώρα |
|---|---|---|---|---|
| INTEGER | INTEGER | CURRENCY | REAL | Hμερομηνία/ώρα |
| CURRENCY | CURRENCY | CURRENCY | REAL | Hμερομηνία/ώρα |
| REAL | REAL | REAL | REAL | Hμερομηνία/ώρα |
| Hμερομηνία/ώρα | Hμερομηνία/ώρα | Hμερομηνία/ώρα | Hμερομηνία/ώρα | Hμερομηνία/ώρα |
Για παράδειγμα, εάν ένας πραγματικός αριθμός χρησιμοποιηθεί σε μια λειτουργία πρόσθεσης σε συνδυασμό με δεδομένα νομισματικών μονάδων, και οι δύο τιμές μετατρέπονται σε πραγματικές και το αποτέλεσμα επιστρέφεται ως ΠΡΑΓΜΑΤΙΚΟ.
Αφαίρεση (-)
Στον παρακάτω πίνακα, η κεφαλίδα γραμμής είναι το ελάχιστο (αριστερή πλευρά) και η κεφαλίδα στήλης είναι το δευτερεύον αρχείο (δεξιά πλευρά).
| Τελεστής (-) | INTEGER | CURRENCY | REAL | Hμερομηνία/ώρα |
|---|---|---|---|---|
| INTEGER | INTEGER | CURRENCY | REAL | REAL |
| CURRENCY | CURRENCY | CURRENCY | REAL | REAL |
| REAL | REAL | REAL | REAL | REAL |
| Hμερομηνία/ώρα | Hμερομηνία/ώρα | Hμερομηνία/ώρα | Hμερομηνία/ώρα | Hμερομηνία/ώρα |
Για παράδειγμα, εάν μια ημερομηνία χρησιμοποιείται σε μια λειτουργία αφαίρεσης με οποιονδήποτε άλλο τύπο δεδομένων, και οι δύο τιμές μετατρέπονται σε ημερομηνίες και η τιμή που επιστρέφεται είναι επίσης μια ημερομηνία.
Σημείωση
Τα μοντέλα δεδομένων υποστηρίζουν επίσης τον μοναδιαίο τελεστή, - (αρνητικό), αλλά αυτός ο τελεστής δεν αλλάζει τον τύπο δεδομένων του τελεστέου.
Πολλαπλασιασμός (*)
| Τελεστής (*) | INTEGER | CURRENCY | REAL | Hμερομηνία/ώρα |
|---|---|---|---|---|
| INTEGER | INTEGER | CURRENCY | REAL | INTEGER |
| CURRENCY | CURRENCY | REAL | CURRENCY | CURRENCY |
| REAL | REAL | CURRENCY | REAL | REAL |
Για παράδειγμα, εάν ένας ακέραιος συνδυαστεί με έναν πραγματικό αριθμό σε μια λειτουργία πολλαπλασιασμού, και οι δύο αριθμοί μετατρέπονται σε πραγματικούς αριθμούς και η τιμή που επιστρέφεται είναι επίσης ΠΡΑΓΜΑΤΙΚΗ.
Διαίρεση (/)
Στον παρακάτω πίνακα, η κεφαλίδα γραμμής είναι ο αριθμητής και η κεφαλίδα στήλης είναι ο παρονομαστής.
| Τελεστής (/) (Γραμμή/Στήλη) |
INTEGER | CURRENCY | REAL | Hμερομηνία/ώρα |
|---|---|---|---|---|
| INTEGER | REAL | CURRENCY | REAL | REAL |
| CURRENCY | CURRENCY | REAL | CURRENCY | REAL |
| REAL | REAL | REAL | REAL | REAL |
| Hμερομηνία/ώρα | REAL | REAL | REAL | REAL |
Για παράδειγμα, εάν ένας ακέραιος συνδυαστεί με μια τιμή νομισματικής μονάδας σε μια λειτουργία διαίρεσης, και οι δύο τιμές μετατρέπονται σε πραγματικούς αριθμούς και το αποτέλεσμα είναι επίσης πραγματικός αριθμός.
Τελεστές σύγκρισης
Σε παραστάσεις σύγκρισης, οι δυαδικές τιμές θεωρούνται μεγαλύτερες από τις τιμές συμβολοσειρών και οι τιμές συμβολοσειρών θεωρούνται μεγαλύτερες από τις αριθμητικές τιμές ή τις τιμές ημερομηνίας/ώρας. Οι αριθμοί και οι τιμές ημερομηνίας/ώρας θεωρούνται ότι έχουν την ίδια κατάταξη. Δεν εκτελούνται έμμεσες μετατροπές για δυαδικές τιμές ή τιμές συμβολοσειράς. Η τιμή BLANK ή μια κενή τιμή μετατρέπεται σε 0/""/false, ανάλογα με τον τύπο δεδομένων της άλλης τιμής που συγκρίνεται.
Οι ακόλουθες εκφράσεις DAX απεικονίζουν αυτήν τη συμπεριφορά:
=IF(FALSE()>"true";"Η έκφραση είναι αληθής", "Η έκφραση είναι ψευδής"), επιστρέφει "Η έκφραση είναι αληθής"
=IF("12"12;>"Η έκφραση είναι αληθής"; "Η έκφραση είναι ψευδής"), επιστρέφει "Η έκφραση είναι αληθής".
=IF("12"=12;"Η έκφραση είναι αληθής"; "Η έκφραση είναι ψευδής"), επιστρέφει "Η έκφραση είναι ψευδής"
Οι μετατροπές πραγματοποιούνται σιωπηρά για αριθμητικούς τύπους ή τύπους ημερομηνίας/ώρας, όπως περιγράφεται στον ακόλουθο πίνακα:
| Τελεστής σύγκρισης | INTEGER | CURRENCY | REAL | Hμερομηνία/ώρα |
|---|---|---|---|---|
| INTEGER | INTEGER | CURRENCY | REAL | REAL |
| CURRENCY | CURRENCY | CURRENCY | REAL | REAL |
| REAL | REAL | REAL | REAL | REAL |
| Hμερομηνία/ώρα | REAL | REAL | REAL | Hμερομηνία/ώρα |
Χειρισμός κενών, κενών συμβολοσειρών και μηδενικών τιμών
Στο DAX, μια τιμή null, μια κενή τιμή, ένα κενό κελί ή μια τιμή που λείπει αντιπροσωπεύονται από τον ίδιο νέο τύπο τιμής, μια κενή τιμή. Μπορείτε επίσης να δημιουργήσετε κενά χρησιμοποιώντας τη συνάρτηση BLANK ή να ελέγξετε για κενά χρησιμοποιώντας τη συνάρτηση ISBLANK.
Ο τρόπος χειρισμού των κενών σε λειτουργίες, όπως η πρόσθεση ή η συνένωση, εξαρτάται από τη μεμονωμένη συνάρτηση. Ο παρακάτω πίνακας συνοψίζει τις διαφορές μεταξύ των τύπων DAX και Microsoft Excel, με τον τρόπο χειρισμού των κενών.
| Expression | DAX | Excel |
|---|---|---|
| ΚΕΝΌ + ΚΕΝΌ | ΚΕΝΌ | 0 (μηδέν) |
| ΚΕΝΌ +5 | 5 | 5 |
| ΚΕΝΌ * 5 | ΚΕΝΌ | 0 (μηδέν) |
| 5/ΚΕΝΌ | Άπειρο | Σφάλμα |
| 0/ΚΕΝΌ | NaN | Σφάλμα |
| ΚΕΝΌ/ΚΕΝΌ | ΚΕΝΌ | Σφάλμα |
| FALSE Ή ΚΕΝΌ | FALSE | FALSE |
| FALSE ΚΑΙ ΚΕΝΌ | FALSE | FALSE |
| TRUE Ή ΚΕΝΌ | TRUE | TRUE |
| ΑΛΗΘΈΣ ΚΑΙ ΚΕΝΌ | FALSE | TRUE |
| ΚΕΝΌ Ή ΚΕΝΌ | ΚΕΝΌ | Σφάλμα |
| ΚΕΝΌ ΚΑΙ ΚΕΝΌ | ΚΕΝΌ | Σφάλμα |
Για λεπτομέρειες σχετικά με τον τρόπο με τον οποίο μια συγκεκριμένη συνάρτηση ή τελεστής χειρίζεται τα κενά, ανατρέξτε στα μεμονωμένα θέματα για κάθε συνάρτηση DAX, στην ενότητα " Αναφορά συνάρτησης DAX".