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

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


OFFSET

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

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

Σύνταξη

OFFSET ( <delta>[, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )

Παραμέτρους

Όρος Ορισμός
delta Ο αριθμός των γραμμών πριν από το (αρνητικό value) or μετά από (θετικό value) την τρέχουσα γραμμή από την οποία θα ληφθούν τα δεδομένα. Μπορεί να είναι οποιαδήποτε παράσταση 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

Μία or γραμμές ακόμα από relation.

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

Except για στήλες που προστίθενται από DAX συναρτήσεις πίνακα, κάθε στήλη σε relation, όταν not υπάρχει matchBy, or κάθε στήλη σε matchByandpartitionBy, όταν υπάρχει matchBy, πρέπει να έχει μια αντίστοιχη εξωτερική value που θα σας βοηθήσει να define την τρέχουσα γραμμή στην οποία θα λειτουργήσει, με την ακόλουθη συμπεριφορά:

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

If all των στηλών του relationπροστέθηκαν από DAX συναρτήσεις πίνακα, επιστρέφεται μια error.

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

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

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

  • Η αντίστοιχη εξωτερική value μιας στήλης OrderByorPartitionBy υπάρχει not εντός του relation.
  • Το deltavalue προκαλεί μετατόπιση σε μια γραμμή που not υπάρχει εντός του διαμερίσματος.

If OFFSET χρησιμοποιείται μέσα σε μια υπολογιζόμενη στήλη που ορίζεται στον ίδιο πίνακα με relationπαραλείπεται andorderBy, επιστρέφεται μια error.

reset μπορούν να χρησιμοποιηθούν μόνο σε υπολογισμούς απεικονίσεων, and δεν μπορεί να χρησιμοποιηθεί σε συνδυασμό με orderByorpartitionBy. If reset υπάρχει, axis μπορεί να καθοριστεί, αλλά δεν relation.

Παράδειγμα 1 - υπολογιζόμενη στήλη

Το παρακάτω DAX ερώτημα:

DEFINE
VAR vRelation = SUMMARIZECOLUMNS ( 
                    DimProductCategory[EnglishProductCategoryName], 
                    DimDate[CalendarYear], 
                    "CurrentYearSales", SUM(FactInternetSales[SalesAmount]) 
                  )
EVALUATE
ADDCOLUMNS (
    vRelation, 
    "PreviousYearSales", 
    SELECTCOLUMNS(
        OFFSET ( 
                -1, 
                vRelation, 
                ORDERBY([CalendarYear]), 
                PARTITIONBY([EnglishProductCategoryName])
        ),
        [CurrentYearSales]
    )
)

Επιστρέφει έναν πίνακα που συνοψίζει τις συνολικές πωλήσεις για κάθε product κατηγορία andcalendaryear, καθώς και τις συνολικές πωλήσεις για αυτήν την κατηγορία στον previousyear.

Παράδειγμα 2 - measure

Το παρακάτω DAX ερώτημα:

DEFINE
MEASURE DimProduct[CurrentYearSales] = SUM(FactInternetSales[SalesAmount])
MEASURE DimProduct[PreviousYearSales] = CALCULATE(SUM(FactInternetSales[SalesAmount]), OFFSET(-1, , ORDERBY(DimDate[CalendarYear])))
EVALUATE
SUMMARIZECOLUMNS (
    DimDate[CalendarYear],
    "CurrentYearSales", DimProduct[CurrentYearSales],
    "PreviousYearSales", DimProduct[PreviousYearSales]
)

Χρησιμοποιεί OFFSET() σε μια measure για να επιστρέψει έναν πίνακα που συνοψίζει τις συνολικές πωλήσεις για κάθε calendaryearand τις συνολικές πωλήσεις για το previousyear.

Παράδειγμα 3 - υπολογιζόμενη στήλη

Το παρακάτω DAX ερώτημα:

EVALUATE
ADDCOLUMNS (
    FactInternetSales,
    "Previous Sales Amount",
        SELECTCOLUMNS (
            OFFSET (
                -1,
                FactInternetSales,
                ORDERBY ( FactInternetSales[SalesAmount], DESC ),
                PARTITIONBY ( FactInternetSales[ProductKey] ),
                MATCHBY( FactInternetSales[SalesOrderNumber], FactInternetSales[SalesOrderLineNumber] )
            ),
            FactInternetSales[SalesAmount]
        )
)

Επιστρέφει τον πίνακα FactInternetSales με την προσθήκη μιας στήλης, η οποία υποδεικνύει, για κάθε πώληση, το previous ποσό της πώλησής της, του ίδιου product, σε φθίνουσα σειρά του ποσού πωλήσεων, με την τρέχουσα πώληση να αναγνωρίζεται από τη SalesOrderNumber and SalesOrderLineNumber. Χωρίς MATCHBY, το ερώτημα θα επιστρέψει μια error, καθώς δεν υπάρχουν στήλες κλειδιών στον πίνακα FactInternetSales.

Παράδειγμα 4 - υπολογισμός απεικόνισης

Ο παρακάτω υπολογισμός απεικόνισης DAX ερώτημα:

SalesRelativeToPreviousMonth = [SalesAmount] - CALCULATE(SUM([SalesAmount]), OFFSET(-1, ROWS, HIGHESTPARENT))

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

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

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

INDEX
ORDERBY
PARTITIONBY
MATCHBY
WINDOW
RANK
ROWNUMBER