Menghitung persentil berdasarkan grup di Power BI

Di bawah ini adalah contoh data dan saya mencari solusi untuk menghitung persentil (25, 50, 75, 100) untuk jumlah penjualan yang dikelompokkan berdasarkan negara.

masukkan deskripsi gambar di sini

Jadi pada dasarnya tambahkan negara ke dalam keranjang yang berbeda dari rendah, menengah 1, pertengahan 2 atau tinggi tergantung pada kuantitas_unit. Jadi jika saya membuat tabel yang ditunjukkan di bawah ini di power bi, saya ingin membuat ukuran terhitung yang menambahkan negara ke dalam kelompok yang berbeda ini.

masukkan deskripsi gambar di sini

Saat ini, yang saya coba adalah membuat 3 kuartil berbeda di bawah ukuran dax dan kemudian menggunakan fungsi IF saya mencoba memasukkannya ke dalam keranjang yang berbeda:

Quartile = 
var FirstQ = 
    CALCULATE(
        PERCENTILE.INC('Sample Table'[unit_quantity], .25),
        ALLSELECTED('Sample Table')
    )
var SecondQ = 
    CALCULATE(
        PERCENTILE.INC('Sample Table'[unit_quantity], .5),
        ALLSELECTED('Sample Table')
    )
var ThirdQ = 
    CALCULATE(
        PERCENTILE.INC(Sample Table'[unit_quantity], .75),
        ALLSELECTED(Sample Table')
    )
var currentVal = SELECTEDVALUE(Sample Table'[unit_quantity])
return
 IF(currentVal <= FirstQ, "Low",
        IF(currentVal > FirstQ && currentVal <= SecondQ, "Mid",
            IF(currentVal > SecondQ && currentVal <= ThirdQ, "Mid 2", "High")
    )
)

Namun ukuran di atas menghitung kuartil untuk tabel lengkap dan tidak dikelompokkan berdasarkan negara. Saya juga ingin ini menjadi dinamis karena saya akan memiliki pemotong untuk kolom kategori sehingga nilai persentil harus berubah secara dinamis sesuai dengan kategori. Saya sangat baru dalam hal power BI, jadi mohon bersabar.


person iLoveYou3000    schedule 01.04.2021    source sumber


Jawaban (1)


Anda dapat menggunakan PERCENTILEX untuk menjalankan penghitungan tabel, dalam hal ini, semua negara. Saya telah menambahkan ketentuan ISFILTERED untuk hanya menampilkan hasil jika bidang country ada.

Perhitungan

Quartile = 
VAR SelectedUnit =
    SUM ( 'Table'[unit_quantity] )
VAR p25 =
    PERCENTILEX.INC (
        ALLSELECTED ( 'Table'[country] ),
        CALCULATE ( SUM ( 'Table'[unit_quantity] ) ),
        0.25
    )
VAR p50 =
    PERCENTILEX.INC (
        ALLSELECTED ( 'Table'[country] ),
        CALCULATE ( SUM ( 'Table'[unit_quantity] ) ),
        0.5
    )
VAR p75 =
    PERCENTILEX.INC (
        ALLSELECTED ( 'Table'[country] ),
        CALCULATE ( SUM ( 'Table'[unit_quantity] ) ),
        0.75
    )
RETURN
    SWITCH (
        ISFILTERED('Table'[country]),
        SelectedUnit <= p25, "Low",
        SelectedUnit > p25
            && SelectedUnit <= p50, "Mid",
        "High"
    )

Keluaran

country Unit Sum Quartile
Bulgaria 2 Low
Canada 83 High
Croatia 49 Mid
India 75 High
Russia 38 Low
United States 69 High
person Angelo Canepa    schedule 01.04.2021
comment
Hai Angelo. Ini berjalan seperti pesona dengan sedikit modifikasi. Terima kasih banyak atas solusinya. - person iLoveYou3000; 01.04.2021
comment
Pemotong kategori akan menjadi pemotong lokal ke salah satu visual tabel tetapi saya memiliki kasus penggunaan di mana saya harus menambahkan pemotong product_id global. Ini berfungsi dengan baik dengan pemotong kategori tetapi menghasilkan hasil yang salah ketika product_id pemotong global sedang difilter. Apakah ada cara untuk membuatnya dinamis sehingga ketika tabel difilter berdasarkan produk, keranjang juga berubah secara dinamis sesuai dengan unit_quantity? - person iLoveYou3000; 12.04.2021
comment
Bisakah Anda menambahkan pertanyaan baru dengan contoh kumpulan data? - person Angelo Canepa; 12.04.2021
comment
Saya mungkin telah menyusun pertanyaan dengan cara yang membingungkan tetapi kasus penggunaan yang saya coba buat sangat sederhana. Saya memiliki matriks yang memiliki negara di Baris dan unit_quantity di Nilai. Saat saya memfilternya menggunakan kolom kategori, ini berfungsi dengan baik karena setiap negara memiliki nilai unit_quantity untuk semua kategori tetapi memfilternya melalui kolom product_id tidak memberikan hasil yang benar karena setiap produk tidak terjual di setiap negara. Saya harap Anda dapat memvisualisasikannya. - person iLoveYou3000; 13.04.2021