İngilizce dilinde oku

Aracılığıyla paylaş


DİZİN

Ş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 Verileri elde etmek için 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 dışında olduğunda, sıfır veya BLANK(), İnDİS 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 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ı) 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ğerlerin davranışı boş değerlerdir ve sıfır ile 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ı) relation nasıl bölümlendiğini tanımlayan sütunları içeren bir PARTITIONBY() 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: NONE, LOWESTPARENT, HIGHESTPARENTveya bir tamsayı. 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:
    • İ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 relationiçindeki 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 orderByekler 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 relationiçinde yok.
  • position değeri, bölümde bulunmayan bir konuma başvurur.

İnDİS, 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 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

Aşağıdaki görsel hesaplama DAX sorguları:

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:

DAX görsel hesaplama

OFFSET
ORDERBY
PARTITIONBY
WINDOW
RANK
ROWNUMBER