Baca dalam bahasa Inggris

Bagikan melalui


INDEKS

Berlaku untuk: kolom terhitungTabel terhitungUkurPerhitungan visual

Mengembalikan baris pada posisi absolut, yang ditentukan oleh parameter posisi, dalam partisi yang ditentukan, diurutkan menurut urutan yang ditentukan. Jika partisi saat ini tidak dapat disimpulkan ke satu partisi, beberapa baris dapat dikembalikan.

Sintaksis

INDEX(<position>[, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )

Parameter

Istilah Definisi
position Posisi absolut (berbasis 1) untuk mendapatkan data:
- position positif: 1 adalah baris pertama, 2 adalah baris kedua, dll.
- position negatif: -1 adalah baris terakhir, -2 adalah baris terakhir kedua, dll.
Ketika position berada di luar batas, atau nol, atau BLANK(), INDEX akan mengembalikan tabel kosong. Ini bisa berupa ekspresi DAX apa pun yang mengembalikan nilai skalar.
relation (Opsional) Ekspresi tabel tempat output dikembalikan.
Jika ditentukan, semua kolom di partitionBy harus berasal dari kolom atau tabel terkait.
Jika dihilangkan:
- orderBy harus ditentukan secara eksplisit.
- Semua ekspresi orderBy dan partitionBy harus sepenuhnya memenuhi syarat nama kolom dan berasal dari satu tabel.
- Default ke ALLSELECTED() semua kolom di orderBy dan partitionBy.
axis (Opsional) Sumbu dalam bentuk visual. Hanya tersedia dalam perhitungan visual, dan menggantikan relation.
orderBy (Opsional) Klausa ORDERBY() yang berisi ekspresi yang menentukan bagaimana setiap partisi diurutkan.
Jika dihilangkan:
- relation harus ditentukan secara eksplisit.
- Default untuk mengurutkan menurut setiap kolom di relation yang belum ditentukan dalam partitionBy.
blanks (Opsional) Enumerasi yang menentukan cara menangani nilai kosong saat mengurutkan.
Parameter ini dicadangkan untuk digunakan di masa mendatang.
Saat ini, satu-satunya nilai yang didukung adalah DEFAULT, di mana perilaku untuk nilai numerik adalah nilai kosong diurutkan antara nilai nol dan negatif. Perilaku untuk string adalah nilai kosong diurutkan sebelum semua string, termasuk string kosong.
partitionBy (Opsional) Klausa PARTITIONBY() yang berisi kolom yang menentukan bagaimana relation dipartisi.
Jika dihilangkan, relation diperlakukan sebagai partisi tunggal.
matchBy (Opsional) Klausa MATCHBY() yang berisi kolom yang menentukan cara mencocokkan data dan mengidentifikasi baris saat ini.
reset (Opsional) Hanya tersedia dalam perhitungan visual. Menunjukkan apakah perhitungan diatur ulang, dan pada tingkat hierarki kolom bentuk visual mana. Nilai yang diterima adalah: NONE, LOWESTPARENT, HIGHESTPARENT, atau bilangan bulat. Perilaku tergantung pada tanda bilangan bulat:
- Jika nol atau dihilangkan, perhitungan tidak direset. Setara dengan NONE.
- Jika positif, bilangan bulat mengidentifikasi kolom mulai dari biji-bijian tertinggi dan independen. HIGHESTPARENT setara dengan 1.
- Jika negatif, bilangan bulat mengidentifikasi kolom mulai dari terendah, relatif terhadap butir saat ini. LOWESTPARENT setara dengan -1.

Mengembalikan nilai

Baris pada posisi absolut.

Komentar

Setiap kolom partitionBy dan matchBy harus memiliki nilai luar yang sesuai untuk membantu menentukan "partisi saat ini" untuk beroperasi, dengan perilaku berikut:

  • Jika ada tepat satu kolom luar yang sesuai, nilainya akan digunakan.
  • Jika tidak ada kolom luar yang sesuai:
    • INDEX pertama-tama akan menentukan semua kolom partitionBy dan matchBy yang tidak memiliki kolom luar yang sesuai.
    • Untuk setiap kombinasi nilai yang ada untuk kolom ini dalam konteks induk INDEX, INDEX dievaluasi dan baris dikembalikan.
    • Output akhir INDEX adalah gabungan dari baris ini.
  • Jika ada lebih dari satu kolom luar yang sesuai, kesalahan akan ditampilkan.

Jika matchBy ada, INDEX akan mencoba menggunakan kolom matchBy dan partitionBy untuk mengidentifikasi baris. Jika matchBy tidak ada dan kolom yang ditentukan dalam orderBy dan partitionBy tidak dapat mengidentifikasi setiap baris secara unik dalam relation:

  • INDEX akan mencoba menemukan jumlah kolom tambahan paling sedikit yang diperlukan untuk mengidentifikasi setiap baris secara unik.
  • Jika kolom tersebut dapat ditemukan, INDEX akan secara otomatis menambahkan kolom baru ini ke orderBy, dan setiap partisi diurutkan menggunakan kumpulan kolom OrderBy baru ini.
  • Jika kolom tersebut tidak dapat ditemukan, kesalahan akan ditampilkan.

Tabel kosong dikembalikan jika:

  • Nilai luar yang sesuai dari kolom PartitionBy tidak ada dalam relation.
  • Nilai position mengacu pada posisi yang tidak ada dalam partisi.

Jika INDEX digunakan dalam kolom terhitung yang ditentukan pada tabel yang sama dengan relation dan orderBy dihilangkan, kesalahan akan ditampilkan.

reset hanya dapat digunakan dalam perhitungan visual, dan tidak dapat digunakan dalam kombinasi dengan orderBy atau partitionBy. Jika reset ada, axis dapat ditentukan tetapi relation tidak dapat.

Contoh 1 - kolom terhitung

Kueri DAX berikut:

EVALUATE INDEX(1, ALL(DimDate[CalendarYear]))

Mengembalikan tabel berikut:

DimDate[CalendarYear]
2005

Contoh 2 - kolom terhitung

Kueri DAX berikut:

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]

Mengembalikan tabel berikut:

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

Contoh 3 - perhitungan visual

Kueri DAX penghitungan visual berikut:

SalesComparedToBeginningOfYear = [SalesAmount] - CALCULATE(SUM([SalesAmount]), INDEX(1, ROWS, HIGHESTPARENT))

SalesComparedToBeginningOfQuarter = [SalesAmount] - CALCULATE(SUM([SalesAmount]), INDEX(1, , -1))

Tingkatkan tabel sehingga berisi, untuk setiap bulan:
- jumlah total penjualan;
- perbedaannya dengan bulan pertama tahun masing-masing;
- dan perbedaannya dengan bulan pertama dari kuartal masing-masing.

Cuplikan layar di bawah ini memperlihatkan matriks visual dan ekspresi perhitungan visual pertama:

perhitungan visual DAX

OFFSET
ORDERBY
PARTITIONBY
JENDELA
RANK
ROWNUMBER