Ανάγνωση στα Αγγλικά

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


INDEX

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

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

Σύνταξη

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

Παραμέτρους

Όρος Ορισμός
position Η απόλυτη θέση (με βάση το 1) από την οποία λαμβάνονται τα δεδομένα:
- position είναι θετική: 1 είναι η first γραμμή, 2 είναι η second γραμμή κ.λπ.
- position είναι αρνητική: -1 είναι η last γραμμή, -2 είναι η secondlast γραμμή κ.λπ.
Όταν position είναι εκτός ορίου, or μηδέν, orBLANK(), INDEX θα επιστρέψει έναν κενό πίνακα. Μπορεί να είναι οποιαδήποτε παράσταση DAX που επιστρέφει μια ανυσματική value.
relation (Προαιρετικό) Μια παράσταση πίνακα από την οποία επιστρέφεται η έξοδος.
If καθορίζεται, all στήλες σε partitionBy πρέπει να προέρχονται από αυτήν or έναν πίνακα related.
If παραλείπεται:
- orderBy πρέπει να καθοριστεί ρητά.
- AllorderByandpartitionBy παραστάσεις πρέπει να είναι πλήρως προσδιορισμένα ονόματα στηλών and προέρχονται από έναν μόνο πίνακα.
- Ορίζει από προεπιλογή ALLSELECTED()all στηλών σε orderByandpartitionBy.
axis (Προαιρετικό) Ένας άξονας στο σχήμα απεικόνισης. Διατίθεται μόνο σε υπολογισμούς απεικονίσεων and αντικαθιστά relation.
orderBy (Προαιρετικό) Ένας όρος ORDERBY() που περιέχει τις παραστάσεις που define τον τρόπο ταξινόμησης κάθε διαμερίσματος.
If παραλείπεται:
- relation πρέπει να καθοριστεί ρητά.
- Ορίζει από προεπιλογή την ταξινόμηση από κάθε στήλη σε relation που έχει not έχει ήδη καθοριστεί στο partitionBy.
blanks (Προαιρετικό) Μια απαρίθμηση που καθορίζει τον τρόπο χειρισμού blankvalues κατά την ταξινόμηση.
Αυτή η παράμετρος δεσμεύεται για μελλοντική χρήση.
Αυτήν τη στιγμή, η μοναδική υποστηριζόμενη value είναι DEFAULT, όπου η συμπεριφορά για τις αριθμητικές values είναι blankvalues ταξινομούνται μεταξύ μηδέν and αρνητικών values. Η συμπεριφορά για τις συμβολοσειρές είναι blankvalues ταξινομούνται πριν από all συμβολοσειρές, συμπεριλαμβανομένων των κενών συμβολοσειρών.
partitionBy (Προαιρετικό) Ένας όρος PARTITIONBY() που περιέχει τις στήλες που define τον τρόπο διαμερίσματος relation.
If παραλείπεται, relation αντιμετωπίζεται ως ένα ενιαίο διαμέρισμα.
matchBy (Προαιρετικό) Ένας όρος MATCHBY() που περιέχει τις στήλες που define τον τρόπο αντιστοίχισης δεδομένων and την αναγνώριση της τρέχουσας γραμμής.
reset (Προαιρετικό) Διατίθεται μόνο σε υπολογισμούς απεικονίσεων. Υποδεικνύει if επαναφέρει τον υπολογισμό and σε ποιο επίπεδο της ιεραρχίας στηλών του σχήματος απεικόνισης. Οι αποδεκτοί values είναι: NONE, LOWESTPARENT, HIGHESTPARENTor ακέραιος. Η συμπεριφορά εξαρτάται από τον ακέραιο sign:
- If παραλειφθεί μηδέν or, ο υπολογισμός not επαναφέρεται. Ισοδύναμο με NONE.
- If θετικό, ο ακέραιος αναγνωρίζει τη στήλη ξεκινώντας από την υψηλότερη, ανεξάρτητα από το επίπεδο λεπτομέρειας. HIGHESTPARENT ισοδυναμεί με 1.
- If αρνητικός, ο ακέραιος αναγνωρίζει τη στήλη ξεκινώντας από το χαμηλότερο, σε σχέση με το τρέχον επίπεδο λεπτομέρειας. LOWESTPARENT ισοδυναμεί με -1.

Επιστροφή value

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

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

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

  • If υπάρχει ακριβώς μία αντίστοιχη εξωτερική στήλη, χρησιμοποιείται η value της.
  • If δεν υπάρχει αντίστοιχη εξωτερική στήλη:
    • INDEX θα καθορίσει firstallpartitionByandmatchBy στήλες που δεν έχουν αντίστοιχη εξωτερική στήλη.
    • Για κάθε συνδυασμό υπαρχουσών values για αυτές τις στήλες στο γονικό περιβάλλον του INDEX, INDEX αξιολογείται and επιστρέφεται μια γραμμή.
    • Το τελικό αποτέλεσμα της INDEXείναι μια union αυτών των γραμμών.
  • If υπάρχουν περισσότερες από μία αντίστοιχες εξωτερική στήλη, επιστρέφεται μια error.

If matchBy υπάρχει, INDEX θα προσπαθήσει να χρησιμοποιήσει matchByandpartitionBy στήλες για να αναγνωρίσει τη γραμμή. If matchBy υπάρχει notand οι στήλες που καθορίζονται εντός του orderByandpartitionBy δεν μπορούν να αναγνωρίσουν με μοναδικό τρόπο κάθε γραμμή στο relation:

  • INDEX θα προσπαθήσει να find τον ελάχιστο αριθμό πρόσθετων στηλών που απαιτούνται για τη μοναδική αναγνώριση κάθε γραμμής.
  • If βρίσκονται αυτές οι στήλες, INDEX θα προσαρτήσει αυτόματα αυτές τις νέες στήλες στο orderByand κάθε διαμέρισμα ταξινομείται χρησιμοποιώντας αυτό το νέο σύνολο στηλών OrderBy.
  • If δεν είναι δυνατό να βρεθούν τέτοιες στήλες, επιστρέφεται ένα error.

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

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

If INDEX χρησιμοποιείται μέσα σε μια υπολογιζόμενη στήλη που ορίζεται στον ίδιο πίνακα, καθώς παραλείπεται relationandorderBy, επιστρέφεται μια error.

reset μπορούν να χρησιμοποιηθούν μόνο σε υπολογισμούς απεικονίσεων, and δεν μπορεί να χρησιμοποιηθεί σε συνδυασμό με orderByorpartitionBy. If 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))

Βελτιώστε έναν πίνακα ώστε να contains, για κάθε month:
- το συνολικό ποσό πωλήσεων,
- η διαφορά στη firstmonth των αντίστοιχων year;
- and τη διαφορά στη firstmonth των αντίστοιχων quarter.

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

υπολογισμού απεικόνισης

OFFSET
ORDERBY
PARTITIONBY
WINDOW
RANK
ROWNUMBER