INDEX
Ισχύει για:Υπολογιζόμενη στήλη
Υπολογιζόμενος πίνακας
Μέτρηση
υπολογισμού απεικόνισης
Επιστρέφει μια γραμμή σε απόλυτη θέση, που καθορίζεται από την παράμετρο θέσης, εντός του καθορισμένου διαμερίσματος, ταξινομημένη σύμφωνα με την καθορισμένη σειρά. Εάν το τρέχον διαμέρισμα δεν μπορεί να συνάγεται σε ένα μόνο διαμέρισμα, ενδέχεται να επιστραφούν πολλές γραμμές.
Σύνταξη
INDEX(<position>[, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Παραμέτρους
Όρος | Ορισμός |
---|---|
position |
Η απόλυτη θέση (με βάση το 1) από την οποία λαμβάνονται τα δεδομένα: - position είναι θετική: 1 είναι η πρώτη γραμμή, 2 είναι η δεύτερη γραμμή κ.λπ. - position είναι αρνητική: -1 είναι η τελευταία γραμμή, -2 είναι η δεύτερη τελευταία γραμμή κ.λπ. Όταν position είναι εκτός ορίου ή μηδέν ή BLANK(), INDEX θα επιστρέψει έναν κενό πίνακα. Μπορεί να είναι οποιαδήποτε παράσταση DAX που επιστρέφει μια ανυσματική τιμή. |
relation |
(Προαιρετικό) Μια παράσταση πίνακα από την οποία επιστρέφεται η έξοδος.
Εάν καθοριστεί, όλες οι στήλες στο partitionBy πρέπει να προέρχονται από αυτή ή από έναν σχετικό πίνακα.
Εάν παραλειφθεί: - orderBy πρέπει να καθοριστεί ρητά.
- Όλες οι orderBy και οι partitionBy παραστάσεις πρέπει να είναι πλήρως προσδιορισμένα ονόματα στηλών και να προέρχονται από έναν μόνο πίνακα.
- Ορίζει από προεπιλογή την ALLSELECTED() όλων των στηλών στα orderBy και partitionBy . |
axis |
(Προαιρετικό) Ένας άξονας στο σχήμα απεικόνισης. Διατίθεται μόνο σε υπολογισμούς απεικονίσεων και αντικαθιστά relation . |
orderBy |
(Προαιρετικό) Ένας όρος ORDERBY() που περιέχει τις παραστάσεις που ορίζουν τον τρόπο ταξινόμησης κάθε διαμερίσματος.
Εάν παραλειφθεί: - relation πρέπει να καθοριστεί ρητά.
- Ορίζει από προεπιλογή την ταξινόμηση βάσει κάθε στήλης σε relation που δεν έχει ήδη καθοριστεί στο partitionBy . |
blanks |
(Προαιρετικό) Μια απαρίθμηση που ορίζει τον τρόπο χειρισμού κενών τιμών κατά την ταξινόμηση του relation ή του axis .
Οι υποστηριζόμενες τιμές είναι:
Σημείωση, όταν η παράμετρος blanks και τα κενά στην ORDERBY() συνάρτηση σε μεμονωμένες παραστάσεις καθορίζονται και τα δύο, blanks στη μεμονωμένη παράσταση orderBy έχει προτεραιότητα για τη σχετική παράσταση orderBy και οι παραστάσεις orderBy χωρίς να έχουν καθοριστεί blanks θα τηρηθεί η παράμετρος blanks στη γονική συνάρτηση. |
partitionBy |
(Προαιρετικό) Ένας όρος relation αντιμετωπίζεται ως ένα ενιαίο διαμέρισμα. |
matchBy |
(Προαιρετικό) Ένας MATCHBY() όρος που περιέχει τις στήλες που ορίζουν τον τρόπο αντιστοίχισης δεδομένων και αναγνώρισης της τρέχουσας γραμμής. |
reset |
(Προαιρετικό) Διατίθεται μόνο σε υπολογισμούς απεικονίσεων. Υποδεικνύει εάν γίνεται επαναφορά του υπολογισμού και σε ποιο επίπεδο της ιεραρχίας στηλών του σχήματος απεικόνισης. Οι αποδεκτές τιμές είναι: μια αναφορά πεδίου σε μια στήλη στο τρέχον σχήμα απεικόνισης, NONE (προεπιλογή), LOWESTPARENT , HIGHESTPARENT ή ακέραιος. Η συμπεριφορά εξαρτάται από το σύμβολο ακέραιου: - Εάν δεν είναι μηδέν ή παραλειφθεί, ο υπολογισμός δεν επαναφέρεται. Ισοδύναμο με NONE .
- Εάν είναι θετικό, ο ακέραιος αναγνωρίζει τη στήλη ξεκινώντας από την υψηλότερη, ανεξάρτητα από το επίπεδο λεπτομέρειας. HIGHESTPARENT ισοδυναμεί με 1.
- Εάν είναι αρνητικό, ο ακέραιος αναγνωρίζει τη στήλη ξεκινώντας από τη χαμηλότερη, σε σχέση με το τρέχον επίπεδο. LOWESTPARENT ισοδυναμεί με -1. |
Τιμή επιστροφής
Μια γραμμή σε απόλυτη θέση.
Παρατηρήσεις
Κάθε partitionBy
και matchBy
στήλη πρέπει να έχουν μια αντίστοιχη εξωτερική τιμή που σας βοηθά να ορίσετε το "τρέχον διαμέρισμα" στο οποίο θα λειτουργεί, με την ακόλουθη συμπεριφορά:
- Εάν υπάρχει ακριβώς μία αντίστοιχη εξωτερική στήλη, χρησιμοποιείται η τιμή της.
- Εάν δεν υπάρχει αντίστοιχη εξωτερική στήλη:
-
INDEX θα καθορίσει πρώτα όλες τις
partitionBy
καιmatchBy
στήλες που δεν έχουν αντίστοιχη εξωτερική στήλη. - Για κάθε συνδυασμό υπαρχουσών τιμών για αυτές τις στήλες στο γονικό περιβάλλον INDEX, αξιολογείται INDEX και επιστρέφεται μια γραμμή.
- Το τελικό αποτέλεσμα της INDEXείναι μια ένωση αυτών των γραμμών.
-
INDEX θα καθορίσει πρώτα όλες τις
- Εάν υπάρχουν περισσότερες από μία αντίστοιχες εξωτερική στήλη, επιστρέφεται σφάλμα.
Εάν υπάρχει matchBy
, INDEX θα προσπαθήσει να χρησιμοποιήσει matchBy
και partitionBy
στήλες για να αναγνωρίσει τη γραμμή.
Εάν δεν υπάρχει matchBy
και οι στήλες που καθορίζονται εντός του orderBy
και του partitionBy
δεν μπορούν να αναγνωρίσουν με μοναδικό τρόπο κάθε γραμμή σε relation
:
- INDEX θα προσπαθήσει να βρει τον ελάχιστο αριθμό πρόσθετων στηλών που απαιτούνται για τη μοναδική αναγνώριση κάθε γραμμής.
- Εάν μπορούν να βρεθούν τέτοιες στήλες, INDEX θα προσαρτήσει αυτόματα αυτές τις νέες στήλες στην
orderBy
και κάθε διαμέρισμα ταξινομείται χρησιμοποιώντας αυτό το νέο σύνολο στηλών OrderBy. - Εάν δεν είναι δυνατή η εμφάνιση τέτοιων στηλών, επιστρέφεται σφάλμα.
Επιστρέφεται ένας κενός πίνακας εάν:
- Η αντίστοιχη εξωτερική τιμή μιας στήλης PartitionBy δεν υπάρχει εντός
relation
. - Η
position
τιμή αναφέρεται σε μια θέση που δεν υπάρχει εντός του διαμερίσματος.
Εάν INDEX χρησιμοποιείται μέσα σε μια υπολογιζόμενη στήλη που ορίζεται στον ίδιο πίνακα με relation
και παραλείπεται orderBy
, επιστρέφεται σφάλμα.
reset
μπορούν να χρησιμοποιηθούν μόνο σε υπολογισμούς απεικονίσεων και δεν μπορούν να χρησιμοποιηθούν σε συνδυασμό με orderBy
ή partitionBy
. Εάν υπάρχει reset
, μπορεί να καθοριστεί axis
, αλλά δεν relation
.
Παράδειγμα 1 - υπολογιζόμενη στήλη
Το παρακάτω DAX ερώτημα:
EVALUATE INDEX(1, ALL(DimDate[CalendarYear]))
Επιστρέφει τον παρακάτω πίνακα:
DimDate[CalendarYear] |
---|
2005 |
Παράδειγμα 2 - υπολογιζόμενη στήλη
Το παρακάτω DAX ερώτημα:
EVALUATE
SUMMARIZECOLUMNS (
FactInternetSales[ProductKey],
DimDate[MonthNumberOfYear],
FILTER (
VALUES(FactInternetSales[ProductKey]),
[ProductKey] < 222
),
"CurrentSales", SUM(FactInternetSales[SalesAmount]),
"LastMonthSales",
CALCULATE (
SUM(FactInternetSales[SalesAmount]),
INDEX(-1, ORDERBY(DimDate[MonthNumberOfYear]))
)
)
ORDER BY [ProductKey], [MonthNumberOfYear]
Επιστρέφει τον παρακάτω πίνακα:
FactInternetSales[ProductKey] | DimDate[MonthNumberOfYear] | [CurrentSales] | [LastMonthSales] |
---|---|---|---|
214 | 1 | 5423.45 | 8047.7 |
214 | 2 | 4968.58 | 8047.7 |
214 | 3 | 5598.4 | 8047.7 |
214 | 4 | 5073.55 | 8047.7 |
214 | 5 | 5248.5 | 8047.7 |
214 | 6 | 7487.86 | 8047.7 |
214 | 7 | 7382.89 | 8047.7 |
214 | 8 | 6543.13 | 8047.7 |
214 | 9 | 6788.06 | 8047.7 |
214 | 10 | 6858.04 | 8047.7 |
214 | 11 | 8607.54 | 8047.7 |
214 | 12 | 8047.7 | 8047.7 |
217 | 1 | 5353.47 | 7767.78 |
217 | 2 | 4268.78 | 7767.78 |
217 | 3 | 5773.35 | 7767.78 |
217 | 4 | 5738.36 | 7767.78 |
217 | 5 | 6158.24 | 7767.78 |
217 | 6 | 6998 | 7767.78 |
217 | 7 | 5563.41 | 7767.78 |
217 | 8 | 5913.31 | 7767.78 |
217 | 9 | 5913.31 | 7767.78 |
217 | 10 | 6823.05 | 7767.78 |
217 | 11 | 6683.09 | 7767.78 |
217 | 12 | 7767.78 | 7767.78 |
Παράδειγμα 3 - υπολογισμός απεικόνισης
Ο παρακάτω υπολογισμός απεικόνισης DAX ερωτήματα:
SalesComparedToBeginningOfYear = [SalesAmount] - CALCULATE(SUM([SalesAmount]), INDEX(1, ROWS, HIGHESTPARENT))
SalesComparedToBeginningOfQuarter = [SalesAmount] - CALCULATE(SUM([SalesAmount]), INDEX(1, , -1))
Βελτιώστε έναν πίνακα ώστε να περιέχει, για κάθε μήνα:
- το συνολικό ποσό πωλήσεων,
- η διαφορά στον πρώτο μήνα του αντίστοιχου έτους.
- και η διαφορά στον πρώτο μήνα του αντίστοιχου τριμήνου.
Το παρακάτω στιγμιότυπο οθόνης εμφανίζει τη μήτρα απεικόνισης και την πρώτη παράσταση υπολογισμού απεικόνισης:
υπολογισμού απεικόνισης