INDEX
Şunlar için geçerlidir:Hesaplanan sütun
Hesaplanan tablo
Ölçü
Görsel hesaplama
Belirtilen bölümdeki position parametresi tarafından belirtilen mutlak konumda, belirtilen düzene göre sıralanmış bir satır döndürür. Geçerli bölüm tek bir bölüme çıkarılamıyorsa, birden çok satır döndürülebilir.
Sözdizimi
INDEX(<position>[, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Parametre
Terim | Tanım |
---|---|
position |
Verilerin alındığı mutlak konum (1 tabanlı): - position pozitiftir: 1 ilk satırdır, 2 ikinci satırdır vb. - position negatiftir: -1 son satırdır, -2 ikinci son satırdır vb. position sınırın dışında olduğunda, sıfır veya BLANK(), INDEX boş bir tablo döndürür. Skaler değer döndüren herhangi bir DAX ifadesi olabilir. |
relation |
(İsteğe bağlı) Çıktı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.
- orderBy ve partitionBy tüm sütunların ALLSELECTED() varsayılan 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
Mutlak konumdaki bir satır.
Açıklamalar
Her partitionBy
ve matchBy
sütunun, üzerinde çalışılan "geçerli bölümü" tanımlamaya yardımcı olması için aşağıdaki davranışla karşılık gelen bir dış değere sahip olması gerekir:
- Tam olarak bir dış sütun varsa, değeri kullanılır.
- Karşılık gelen dış sütun yoksa:
-
INDEX önce karşılık gelen dış sütunu olmayan tüm
partitionBy
vematchBy
sütunlarını belirler. - INDEXüst bağlamında bu sütunlar için var olan değerlerin her birleşimi için INDEX değerlendirilir ve bir satır döndürülür.
- INDEXson çıktısı bu satırların birleşimidir.
-
INDEX önce karşılık gelen dış sütunu olmayan tüm
- Karşılık gelen birden fazla dış sütun varsa, bir hata döndürülür.
matchBy
varsa, INDEX 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:
- INDEX 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, INDEX 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:
- PartitionBy sütununun karşılık gelen dış değeri
relation
içinde yok. -
position
değeri, bölümde bulunmayan bir konuma başvurur.
INDEX, relation
ile aynı tabloda tanımlanan bir hesaplanmış sütunda 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:
EVALUATE INDEX(1, ALL(DimDate[CalendarYear]))
Aşağıdaki tabloyu döndürür:
DimDate[CalendarYear] |
---|
2005 |
Örnek 2 - hesaplanmış sütun
Aşağıdaki DAX sorgusu:
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]
Aşağıdaki tabloyu döndürür:
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 |
Örnek 3 - görsel hesaplama
Sorgular DAX aşağıdaki görsel hesaplama:
SalesComparedToBeginningOfYear = [SalesAmount] - CALCULATE(SUM([SalesAmount]), INDEX(1, ROWS, HIGHESTPARENT))
SalesComparedToBeginningOfQuarter = [SalesAmount] - CALCULATE(SUM([SalesAmount]), INDEX(1, , -1))
Tabloyu, her ay için şunları içeren şekilde geliştirin:
- toplam satış tutarı;
- ilgili yılın ilk ayıyla arasındaki fark;
- ve ilgili üç aylık dönemin ilk ayıyla arasındaki fark.
Aşağıdaki ekran görüntüsünde görsel matris ve ilk görsel hesaplama ifadesi gösterilmektedir:
görsel hesaplama