DİZİN
Şunlar için geçerlidir: Hesaplanmış sütun Hesaplanan tablo Ölçü Görseli hesaplaması
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>] )
Parametreler
Süre | Tanım |
---|---|
pozisyon | Verilerin alındığı mutlak konum (1 tabanlı): - <konum> pozitiftir: 1 ilk satırdır, 2 ikinci satırdır vb. - <konum> negatiftir: -1 son satırdır, -2 ikinci son satırdır vb. Konum> sınırın dışında olduğunda <veya sıfır veya BLANK() olduğunda, İnDİS boş bir tablo döndürür. Skaler değer döndüren herhangi bir DAX ifadesi olabilir. |
ilişki | (İ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 ilgili 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> içindeki <tüm sütunların ALLSELECTED() varsayılan değeridir>. |
eksen | (İsteğe bağlı) Görsel şeklindeki bir eksen. Yalnızca görsel hesaplamalarda kullanılabilir ve ilişkiyi> değiştirir<. |
orderBy | (İsteğe bağlı) Her bölümün nasıl sıralanacağını tanımlayan ifadeleri içeren ORDERBY() yan tümcesi. Belirtilmezse: - <ilişki> açıkça belirtilmelidir. - PartitionBy'de önceden belirtilmemiş ilişkideki <> her sütuna göre sıralama varsayılanlarıdır>.< |
Boşluk | (İsteğe bağlı) Sıralama sırasında boş değerlerin nasıl işleneceğini tanımlayan bir numaralandırma. Bu parametre gelecekte kullanılmak üzere ayrılmıştır. Şu anda desteklenen tek değer DEFAULT değeridir; burada sayısal değerler için davranış boş değerler sıfır ve negatif değerler arasında sıralanır. Dizelerin davranışı, boş dizeler de dahil olmak üzere tüm dizelerden önce sıralanmış boş değerlerdir. |
partitionBy | (İsteğe bağlı) İlişkinin> nasıl <bölümlendiğini tanımlayan sütunları içeren PARTITIONBY() yan tümcesi. Belirtilmezse, <ilişki> 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 MATCHBY() yan tümcesi. |
sıfırlama | (İ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: NONE, LOWESTPARENT, HIGHESTPARENT veya bir tamsayı. Davranış, tamsayı işaretine bağlıdır: - Sıfır veya atlanırsa, hesaplama sıfırlanmaz. NONE ile eşdeğerdir. - Pozitifse, tamsayı en yüksekten başlayıp tanecikten bağımsız olarak sütunu tanımlar. HIGHESTPARENT değeri 1'e eşdeğerdir. - Negatifse, tamsayı geçerli taneye 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ütununun, üzerinde çalışılan "geçerli bölümü" tanımlamaya yardımcı olması için karşılık gelen bir dış değere sahip olması gerekir ve aşağıdaki davranışla:
- Tam olarak bir dış sütun varsa, değeri kullanılır.
- Karşılık gelen dış sütun yoksa:
- İnDİS ilk olarak karşılık gelen dış sütunu olmayan tüm <partitionBy> ve <matchBy> sütunlarını belirler.
- İnDİS'in üst bağlamında bu sütunlar için var olan değerlerin her birleşimi için İNDİS değerlendirilir ve bir satır döndürülür.
- İNDİS'in son çıkışı bu satırların birleşimidir.
- Karşılık gelen birden fazla dış sütun varsa, bir hata döndürülür.
<matchBy> varsa, İnDİS 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 ilişkideki <>her satırı benzersiz olarak tanımlayamazsa<:
- İNDİS, her satırı benzersiz olarak tanımlamak için gereken en az sayıda ek sütunu bulmaya çalışır.
- Bu tür sütunlar bulunabiliyorsa, İnDİS bu yeni sütunları otomatik olarak orderBy'ye <>ekler ve her bölüm bu yeni OrderBy sütunları 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 ilişki> içinde <yok.
- Konum <> değeri, bölümde bulunmayan bir konuma başvurur.
İnDİS, ilişkiyle> aynı tabloda <tanımlanan bir hesaplanmış sütun içinde kullanılırsa ve <orderBy> atlanırsa bir hata döndürülür.
<sıfırlama> yalnızca görsel hesaplamalarda kullanılabilir ve orderBy veya <partitionBy>> ile birlikte <kullanılamaz. <Sıfırlama> varsa eksen> <belirtilebilir ancak <ilişki> 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
Aşağıdaki görsel hesaplama DAX sorguları:
SalesComparedToBeginningOfYear = [SalesAmount] - CALCULATE(SUM([SalesAmount]), INDEX(1, ROWS, HIGHESTPARENT))
SalesComparedToBeginningOfQuarter = [SalesAmount] - CALCULATE(SUM([SalesAmount]), INDEX(1, , -1))
Bir tabloyu her ay için şunları içerecek ş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: