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


ΑΝΤΙΣΤΆΘΜΙΣΗ

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

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

Σύνταξη

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

Παράμετροι

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

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

Μία ή περισσότερες γραμμές από <τη σχέση>.

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

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

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

Εάν όλες οι στήλες <της σχέσης> προστέθηκαν από τις συναρτήσεις πίνακα DAX, επιστρέφεται σφάλμα.

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

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

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

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

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

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

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

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

Παράδειγμα 2 - μέτρηση

Το παρακάτω ερώτημα 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() σε μια μέτρηση για να επιστρέψει έναν πίνακα που συνοψίζει τις συνολικές πωλήσεις για κάθε ημερολογιακό έτος και τις συνολικές πωλήσεις για το προηγούμενο έτος.

Παράδειγμα 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 με την προσθήκη μιας στήλης, η οποία υποδεικνύει, για κάθε πώληση, το ποσό της προηγούμενης πώλησής του, του ίδιου προϊόντος, σε φθίνουσα σειρά του ποσού πωλήσεων, με την τρέχουσα πώληση να αναγνωρίζεται από τις ΠωλήσειςOrderNumber και SalesOrderLineNumber. Χωρίς τη συνάρτηση MATCHBY, το ερώτημα θα επιστρέψει ένα σφάλμα, καθώς δεν υπάρχουν στήλες κλειδιού στον πίνακα FactInternetSales.

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

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

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

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

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

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

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