İngilizce dilinde oku

Aracılığıyla paylaş


INDEX

Şunlar için geçerlidir:Hesaplanan sütunHesaplanan 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

DAX
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 partitionBytü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 relationdeğ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 axissıralarken boş değerlerin nasıl işleneceğini tanımlayan bir numaralandırma.
Desteklenen değerler şunlardır:
  • DEFAULT (varsayılan değer), burada sayısal değerlerin davranışı boş değerlerdir, 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.
  • FIRST, artan veya azalan sıralama düzenine bakılmaksızın boşluklar her zaman başlangıçta sıralanır.
  • LAST, artan veya azalan sıralama düzenine bakılmaksızın boşluklar her zaman sonunda sıralanı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, HIGHESTPARENTveya 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. NONEeş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 ve matchBy 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.
  • 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 relationiç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 relationiç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 partitionByile birlikte kullanılamaz. reset varsa, axis belirtilebilir ancak relation belirtilemez.

Örnek 1 - hesaplanmış sütun

Aşağıdaki DAX sorgusu:

DAX
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:

DAX
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:

DAX
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

OFFSET ORDERBY PARTITIONBY WINDOW RANK ROWNUMBER