Menghitung peringkat

Selesai

Fungsi RANKX DAX adalah fungsi iterator khusus yang dapat Anda gunakan untuk menghitung peringkat. Sintaksnya adalah sebagai berikut:

RANKX(<table>, <expression>[, <value>[, <order>[, <ties>]]])

Mirip dengan semua fungsi iterator, Anda harus meneruskan tabel dan ekspresi. Secara opsional, Anda dapat meneruskan nilai peringkat, mengatur arah urutan, atau menentukan cara menangani peringkat saat nilai diikat.

Arah pesanan

Arah urutan naik atau turun. Saat memberi peringkat sesuatu yang menguntungkan, seperti nilai pendapatan, Anda mungkin akan menggunakan urutan menuram sehingga pendapatan tertinggi berada di peringkat pertama. Saat memberi peringkat sesuatu yang tidak menguntungkan, seperti keluhan pelanggan, Anda dapat menggunakan urutan naik sehingga jumlah keluhan terendah diberi peringkat pertama. Ketika Anda tidak meneruskan argumen pesanan, fungsi akan menggunakan 0 (nol) (untuk urutan menurut).

Menangani ikatan

Anda dapat menangani ikatan dengan melompati nilai peringkat atau menggunakan peringkat padat, yang menggunakan nilai peringkat berikutnya setelah dasi. Ketika Anda tidak meneruskan argumen ikatan, fungsi akan menggunakan Lewati. Anda akan memiliki kesempatan untuk bekerja dengan contoh setiap argumen dasi nanti di unit ini.

Membuat langkah-langkah peringkat

Tambahkan ukuran berikut ke tabel Produk :

Product Quantity Rank =
RANKX(
    ALL('Product'[Product]),
    [Quantity]
)

Tambahkan pengukuran Peringkat Kuantitas Produk ke visual tabel yang ditemukan di Halaman 2 laporan. Tabel visual mengelompokkan produk sepeda dan menampilkan kuantitas, yang memesan produk dengan kuantitas turun.

Fungsi berulang RANKX di atas tabel yang dikembalikan oleh ALL fungsi DAX. Fungsi ALL ini digunakan untuk mengembalikan semua baris dalam tabel model atau nilai dalam satu atau beberapa kolom, dan mengabaikan semua filter. Oleh karena itu, dalam hal ini, tabel mengembalikan tabel yang terdiri dari semua nilai kolom Produk dalam tabel Produk . Fungsi RANKX harus menggunakan ALL fungsi karena visual tabel akan mengelompokkan menurut produk (yang merupakan filter pada tabel Produk ).

Dalam visual tabel, perhatikan bahwa dua produk mengikat untuk tempat kesepuluh dan bahwa peringkat produk berikutnya adalah 12. Visual ini adalah contoh penggunaan argumen Ikatan yang dilewati .

Gambar memperlihatkan visual tabel berjudul Penjualan Sepeda. Ini memiliki tiga kolom: Produk, Kuantitas, dan Peringkat Kuantitas Produk. Baris tabel diurutkan menurut Kuantitas menurun. Dua produk berbagi peringkat 10, dan produk berikutnya adalah peringkat 12.

Tugas Anda berikutnya adalah memasukkan logika berikut untuk mengubah definisi pengukuran Peringkat Kuantitas Produk untuk menggunakan peringkat padat:

Product Quantity Rank =
RANKX(
    ALL('Product'[Product]),
    [Quantity],
    ,
    ,
    DENSE
)

Dalam visual tabel, perhatikan bahwa peringkat yang dilewati tidak ada lagi. Setelah dua produk yang mengikat untuk tempat kesepuluh, peringkat berikutnya adalah 11.

Gambar memperlihatkan visual tabel berjudul Penjualan Sepeda. Ini memiliki tiga kolom: Produk, Kuantitas, dan Peringkat Kuantitas Produk. Baris tabel diurutkan menurut Kuantitas menurun. Dua produk berbagi peringkat 10, dan produk berikutnya adalah peringkat 11.

Perhatikan bahwa total visual tabel untuk Peringkat Kuantitas Produk adalah satu (1). Alasannya adalah karena total untuk semua produk diberi peringkat.

Gambar menunjukkan total Peringkat Kuantitas Produk adalah 1.

Tidak tepat untuk memberi peringkat produk total, jadi Anda sekarang akan menggunakan logika berikut untuk memodifikasi definisi pengukuran untuk mengembalikan BLANK, kecuali satu produk difilter:

Product Quantity Rank =
IF(
    HASONEVALUE('Product'[Product]),
    RANKX(
        ALL('Product'[Product]),
        [Quantity],
        ,
        ,
        DENSE
    )
)

Gambar yang menunjukkan total Peringkat Kuantitas Produk KOSONG.

Perhatikan bahwa total Peringkat Kuantitas Produk sekarang KOSONG, yang dicapai dengan menggunakan HASONEVALUE fungsi DAX untuk menguji apakah kolom Produk dalam tabel Produk memiliki nilai tunggal dalam konteks filter. Ini adalah kasus untuk setiap grup produk, tetapi tidak untuk total, yang mewakili semua produk.

Konteks filter dan HASONEVALUE fungsi akan diperkenalkan dalam modul konteks filter.