INDEX
Berlaku untuk: kolom terhitungTabel terhitung
Ukur
Perhitungan 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 relation atau axis .
Nilai yang didukung adalah:
|
partitionBy |
(Opsional) Klausa relation diperlakukan sebagai partisi tunggal. |
matchBy |
(Opsional) Klausa |
reset |
(Opsional) Hanya tersedia dalam perhitungan visual. Menunjukkan apakah perhitungan diatur ulang, dan pada tingkat hierarki kolom bentuk visual mana. Nilai yang diterima adalah: referensi bidang ke kolom dalam bentuk visual saat ini, NONE (default), 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
danmatchBy
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.
- INDEXoutput akhir adalah persatuan baris ini.
-
INDEX pertama-tama akan menentukan semua kolom
- 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 ini:
EVALUATE INDEX(1, ALL(DimDate[CalendarYear]))
Mengembalikan tabel berikut:
DimDate[CalendarYear] |
---|
2005 |
Contoh 2 - kolom terhitung
Kueri DAX berikut ini:
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
Penghitungan visual berikut DAX kueri:
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