OFFSET
Şunlar için geçerlidir:Hesaplanan sütun
Hesaplanan tablo
Ölçü
Görsel hesaplama
Geçerli satırdan önce veya sonra aynı tablo içinde belirli bir uzaklıkta konumlandırılan tek bir satır döndürür. Geçerli satır tek bir satıra çıkarılamıyorsa, birden çok satır döndürülebilir.
Sözdizimi
OFFSET ( <delta>[, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Parametre
Terim | Tanım |
---|---|
delta |
Verilerin alındığı geçerli satırdan önceki (negatif değer) veya sonraki satır sayısı (pozitif değer). Skaler değer döndüren herhangi bir DAX ifadesi olabilir. |
relation |
(İsteğe bağlı) Çıkış satırının döndürüldiği tablo ifadesi.
Belirtilirse, partitionBy içindeki tüm sütunlar bu sütundan veya ilişkili bir tablodan gelmelidir.
Atlanırsa: - orderBy açıkça belirtilmelidir.- Tüm orderBy ve partitionBy ifadeleri tam sütun adları olmalı ve tek bir tablodan gelmelidir.
- varsayılan olarak orderBy ve partitionBy tüm sütunların ALLSELECTED() olarak ayarlanır. |
axis |
(İsteğe bağlı) Görsel şeklindeki bir eksen. Yalnızca görsel hesaplamalarda kullanılabilir ve relation değiştirir. |
orderBy |
(İsteğe bağlı) Her bölümün nasıl sıralanacağını tanımlayan ifadeleri içeren bir ORDERBY() yan tümcesi.
Atlanırsa: - relation açıkça belirtilmelidir.
- partitionBy 'de önceden belirtilmemiş relation her sütuna göre sıralama varsayılanlarıdır. |
blanks |
(İsteğe bağlı) relation veya axis sıralarken boş değerlerin nasıl işleneceğini tanımlayan bir numaralandırma.
Desteklenen değerler şunlardır:
ORDERBY() işlevindeki blanks parametresi ve boşluklar her iki ifadede de belirtildiğinde, tek tek orderBy ifadesindeki blanks ilgili orderBy ifadesi için öncelik alır ve blanks belirtilmeden orderBy ifadeleri üst işlevdeki blanks parametresini kabul eder. |
partitionBy |
(İsteğe bağlı) PARTITIONBY() relation nasıl bölümlendiğini tanımlayan sütunları içeren yan tümcesi. Atlanırsa, relation tek bir bölüm olarak değerlendirilir. |
matchBy |
(İsteğe bağlı) Verileri eşleştirmeyi ve geçerli satırı tanımlamayı tanımlayan sütunları içeren bir MATCHBY() yan tümcesi. |
reset |
(İsteğe bağlı) Yalnızca görsel hesaplamalarda kullanılabilir. Hesaplamanın sıfırlanıp sıfırlanmadığını ve görsel şeklin sütun hiyerarşisinin hangi düzeyinde olduğunu gösterir. Kabul edilen değerler şunlardır: geçerli görsel şeklindeki bir sütuna, NONE (varsayılan), LOWESTPARENT , HIGHESTPARENT veya tamsayıya yönelik alan başvurusu. Davranış, tamsayı işaretine bağlıdır: - Sıfır veya atlanırsa, hesaplama sıfırlanmaz. NONE eşdeğerdir.
- Pozitifse, tamsayı en yüksekten başlayıp tahıldan bağımsız olarak sütunu tanımlar. HIGHESTPARENT 1'e eşdeğerdir.
- Negatifse, tamsayı geçerli dilime göre en düşükten başlayan sütunu tanımlar. LOWESTPARENT -1 ile eşdeğerdir. |
Dönüş değeri
relation
bir veya daha fazla satır.
Açıklamalar
DAX tablo işlevleri tarafından eklenen sütunlar dışında, matchBy
olmadığında relation
'deki her sütun veya matchBy
ve partitionBy
içindeki her sütun, matchBy
mevcut olduğunda, aşağıdaki davranışla çalıştırılacağının geçerli satırını tanımlamaya yardımcı olmak için karşılık gelen bir dış değere sahip olmalıdır:
- Tam olarak bir dış sütun varsa, değeri kullanılır.
- Karşılık gelen dış sütun yoksa:
- OFFSET önce karşılık gelen dış sütunu olmayan tüm sütunları belirler.
- OFFSETüst bağlamında bu sütunlar için var olan değerlerin her birleşimi için OFFSET değerlendirilir ve bir satır döndürülür.
- OFFSETson çıktısı bu satırların birleşimidir.
- Karşılık gelen birden fazla dış sütun varsa, bir hata döndürülür.
tüm relation
sütunları DAX tablo işlevleri tarafından eklendiyse bir hata döndürülür.
matchBy
varsa, OFFSET satırı tanımlamak için matchBy
ve partitionBy
sütunlarını kullanmayı dener.
matchBy
yoksa ve orderBy
ve partitionBy
içinde belirtilen sütunlar relation
içindeki her satırı benzersiz olarak tanımlayamazsa:
- OFFSET her satırı benzersiz olarak tanımlamak için gereken en az sayıda ek sütun bulmaya çalışır.
- Bu tür sütunlar bulunabiliyorsa, OFFSET bu yeni sütunları
orderBy
öğesine otomatik olarak ekler ve her bölüm bu yeni OrderBy sütun kümesi kullanılarak sıralanır. - Bu tür sütunlar bulunamazsa bir hata döndürülür.
Şu durumda boş bir tablo döndürülür:
- OrderBy veya PartitionBy sütununun karşılık gelen dış değeri
relation
içinde yok. -
delta
değeri, bölümün içinde bulunmayan bir satıra kaydırmaya neden olur.
OFFSET, relation
ile aynı tabloda tanımlanan bir hesaplanmış sütun içinde kullanılırsa ve orderBy
atlanırsa bir hata döndürülür.
reset
yalnızca görsel hesaplamalarda kullanılabilir ve orderBy
veya partitionBy
ile birlikte kullanılamaz.
reset
varsa, axis
belirtilebilir ancak relation
belirtilemez.
Örnek 1 - hesaplanmış sütun
Aşağıdaki DAX sorgusu:
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]
)
)
Her bir ürün kategorisi ve takvim yılı için toplam satışların yanı sıra önceki yıl bu kategoriye ait toplam satışları özetleyen bir tablo döndürür.
Örnek 2 - ölçü
Aşağıdaki DAX sorgusu:
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]
)
Her takvim yılının toplam satışlarını ve önceki yılın toplam satışlarını özetleyen bir tablo döndürmek için ölçüde OFFSET() kullanır.
Örnek 3 - hesaplanmış sütun
Aşağıdaki DAX sorgusu:
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 tablosunu, her satış için önceki satışının tutarını, aynı ürünün satış tutarını azalan sırada gösteren ve geçerli satışın SalesOrderNumber ve SalesOrderLineNumber ile tanımlandığı bir sütun ekleyerek döndürür. MATCHBYolmadan, FactInternetSales tablosunda anahtar sütunları olmadığından sorgu bir hata döndürür.
Örnek 4 - görsel hesaplama
Aşağıdaki görsel hesaplama DAX sorgusu:
SalesRelativeToPreviousMonth = [SalesAmount] - CALCULATE(SUM([SalesAmount]), OFFSET(-1, ROWS, HIGHESTPARENT))
Aynı yıl içindeki her ay ile önceki ay arasındaki toplam satış farkını döndürür.
Aşağıdaki ekran görüntüsünde görsel matris ve görsel hesaplama ifadesi gösterilmektedir:
görsel hesaplama