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


ΔΕΊΚΤΗΣ

Ισχύει για:Υπολογισμένη στήληΥπολογιζόμενος πίνακαςΥπολογισμός απεικόνισης μέτρησης

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

Σύνταξη

INDEX(<position>[, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )

Παράμετροι

Όρος Ορισμός
Θέση Η απόλυτη θέση (με βάση το 1) από την οποία λαμβάνονται τα δεδομένα:
- η θέση> είναι θετική: 1 είναι η πρώτη γραμμή, 2 είναι η δεύτερη γραμμή κ.λπ.
- <η θέση> είναι αρνητική: -1 είναι η τελευταία γραμμή, -2 είναι η δεύτερη τελευταία γραμμή, κ.λπ.
< Όταν <η θέση> είναι εκτός ορίων, ή μηδέν, ή BLANK(), το INDEX θα επιστρέψει έναν κενό πίνακα. Μπορεί να είναι οποιαδήποτε παράσταση DAX που επιστρέφει μια ανυσματική τιμή.
Σχέση (Προαιρετικό) Μια παράσταση πίνακα από την οποία επιστρέφεται η έξοδος.
Εάν καθοριστεί, όλες οι στήλες στο <partitionBy> πρέπει να προέρχονται από αυτή ή από έναν σχετικό πίνακα.
Εάν παραλειφθεί:
- <η παράμετρος orderBy> πρέπει να καθοριστεί ρητά.
- Όλες οι <παραστάσεις orderBy> και <partitionBy> πρέπει να είναι πλήρως προσδιορισμένα ονόματα στηλών και να προέρχονται από έναν μόνο πίνακα.
- Λαμβάνει από προεπιλογή την ALLSELECTED() όλων των στηλών σε <orderBy> και <partitionBy>.
άξονας (Προαιρετικό) Ένας άξονας στο σχήμα απεικόνισης. Διατίθεται μόνο σε υπολογισμούς απεικονίσεων και αντικαθιστά <τη σχέση>.
Orderby (Προαιρετικό) Ένας όρος ORDERBY() που περιέχει τις παραστάσεις που ορίζουν τον τρόπο ταξινόμησης κάθε διαμερίσματος.
Εάν παραλειφθεί:
- <η σχέση> πρέπει να καθοριστεί ρητά.
- Ορίζει από προεπιλογή την ταξινόμηση από κάθε στήλη σε <σχέση> που δεν έχει ήδη καθοριστεί στο <partitionBy>.
Κενά (Προαιρετικό) Μια απαρίθμηση που ορίζει τον τρόπο χειρισμού κενών τιμών κατά την ταξινόμηση.
Αυτή η παράμετρος δεσμεύεται για μελλοντική χρήση.
Προς το παρόν, η μοναδική υποστηριζόμενη τιμή είναι η DEFAULT, όπου η συμπεριφορά για τις αριθμητικές τιμές είναι κενές τιμές, ταξινομούνται μεταξύ μηδέν και αρνητικών τιμών. Η συμπεριφορά για τις συμβολοσειρές είναι ότι οι κενές τιμές ταξινομούνται πριν από όλες τις συμβολοσειρές, συμπεριλαμβανομένων των κενών συμβολοσειρών.
partitionBy (Προαιρετικό) Ένας όρος PARTITIONBY() που περιέχει τις στήλες που ορίζουν τον τρόπο <διαμερισμού της σχέσης> .
Εάν παραλειφθεί, <η σχέση> αντιμετωπίζεται ως ένα μόνο διαμέρισμα.
matchBy (Προαιρετικό) Ένας όρος MATCHBY() που περιέχει τις στήλες που ορίζουν τον τρόπο αντιστοίχισης δεδομένων και αναγνώρισης της τρέχουσας γραμμής.
Επαναφορά (Προαιρετικό) Διατίθεται μόνο σε υπολογισμούς απεικονίσεων. Υποδεικνύει εάν γίνεται επαναφορά του υπολογισμού και σε ποιο επίπεδο της ιεραρχίας στηλών του σχήματος απεικόνισης. Οι αποδεκτές τιμές είναι: NONE, LOWESTPARENT, HIGHESTPARENT ή ακέραιος. Η συμπεριφορά εξαρτάται από το σύμβολο ακέραιου:
- Εάν δεν είναι μηδέν ή παραλειφθεί, ο υπολογισμός δεν επαναφέρεται. Ισοδύναμο με NONE.
- Εάν είναι θετικό, ο ακέραιος αναγνωρίζει τη στήλη ξεκινώντας από την υψηλότερη, ανεξάρτητα από το επίπεδο λεπτομέρειας. Η συνάρτηση HIGHESTPARENT ισοδυναμεί με 1.
- Εάν είναι αρνητικός, ο ακέραιος αναγνωρίζει τη στήλη που ξεκινά από τη χαμηλότερη τιμή, σε σχέση με το τρέχον επίπεδο λεπτομέρειας. Το LOWESTPARENT ισοδυναμεί με -1.

Επιστρεφόμενη αξία

Μια γραμμή σε απόλυτη θέση.

Παρατηρήσεις

Κάθε <partitionBy> και <matchBy> στήλη πρέπει να έχει μια αντίστοιχη εξωτερική τιμή για να σας βοηθήσει να ορίσετε το "τρέχον διαμέρισμα" στο οποίο θα λειτουργεί, με την ακόλουθη συμπεριφορά:

  • Εάν υπάρχει ακριβώς μία αντίστοιχη εξωτερική στήλη, χρησιμοποιείται η τιμή της.
  • Εάν δεν υπάρχει αντίστοιχη εξωτερική στήλη:
    • Το INDEX θα καθορίσει πρώτα όλα τα <partitionBy> και <matchBy> στήλες που δεν έχουν αντίστοιχη εξωτερική στήλη.
    • Για κάθε συνδυασμό υπαρχουσών τιμών για αυτές τις στήλες στο γονικό περιβάλλον του INDEX, το INDEX αξιολογείται και επιστρέφεται μια γραμμή.
    • Το τελικό αποτέλεσμα του INDEX αποτελεί μια ένωση αυτών των γραμμών.
  • Εάν υπάρχουν περισσότερες από μία αντίστοιχες εξωτερική στήλη, επιστρέφεται σφάλμα.

Εάν <υπάρχει το matchBy> , το INDEX θα προσπαθήσει να χρησιμοποιήσει <τις στήλες matchBy> και <partitionBy> για τον προσδιορισμό της γραμμής.
Εάν <το matchBy> δεν υπάρχει και οι στήλες που καθορίζονται στο <orderBy> και <το partitionBy> δεν μπορούν να προσδιορίσουν με μοναδικό τρόπο κάθε γραμμή σε <σχέση>:

  • Το INDEX θα προσπαθήσει να βρει τον ελάχιστο αριθμό πρόσθετων στηλών που απαιτούνται για τη μοναδική αναγνώριση κάθε γραμμής.
  • Εάν μπορούν να βρεθούν τέτοιες στήλες, το INDEX θα προσαρτήσει αυτόματα αυτές τις νέες στήλες <στην orderBy> και κάθε διαμέρισμα ταξινομείται χρησιμοποιώντας αυτό το νέο σύνολο στηλών OrderBy.
  • Εάν δεν είναι δυνατή η εμφάνιση τέτοιων στηλών, επιστρέφεται σφάλμα.

Επιστρέφεται ένας κενός πίνακας εάν:

  • Η αντίστοιχη εξωτερική τιμή μιας στήλης PartitionBy δεν υπάρχει εντός <της σχέσης>.
  • Η <τιμή θέσης> αναφέρεται σε μια θέση που δεν υπάρχει εντός του διαμερίσματος.

Εάν το INDEX χρησιμοποιείται μέσα σε μια υπολογιζόμενη στήλη που ορίζεται στον ίδιο πίνακα ως <σχέση> και <παραλείπεται η τιμή orderBy> , επιστρέφεται σφάλμα.

<Η reset> μπορεί να χρησιμοποιηθεί μόνο σε υπολογισμούς απεικονίσεων και δεν μπορεί να χρησιμοποιηθεί σε συνδυασμό με <το orderBy> ή <το partitionBy>. Εάν <υπάρχει επαναφορά>, μπορεί να καθοριστεί άξονας>, <αλλά <η σχέση> δεν μπορεί.

Παράδειγμα 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))

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

Το παρακάτω στιγμιότυπο οθόνης εμφανίζει τη μήτρα απεικόνισης και την πρώτη παράσταση υπολογισμού απεικόνισης:

Υπολογισμός απεικόνισης DAX

ΑΝΤΙΣΤΆΘΜΙΣΗ
ORDERBY
PARTITIONBY
ΠΑΡΆΘΥΡΟ
ΚΑΤΆΤΑΞΗ
ΑΡΙΘΜΌς ΓΡΑΜΜΏΝ