Thursday, 30 March 2023

Modifikasi End Of Month di Power BI

Modifikasi End Of Month di Power BI

Pada grup PBI ada sebuah pertanyaan dari member dengan nama Gregory Gue. Dia menanyakan bagaimana membuat rumusan DAX untuk total penjualan per bulan. Jika perusahaannya menggunakan waktu yang berbeda. 
Perusahaan si Gregory ini agak nyeleneh dengan menentukan end of month adalah hari sabtu terakhir tiap bulannya.

Menentukan end of month dalam kondisi normal tentunya sangat mudah pada Power BI. Banyak fungsi yang dapat digunakan, seperti ENDOFMONTH[date] atau MAX[date]. Beda kasusnya jika end of month adalah hari sabtu terakhir... jan ngawur tenan rek

Begini kepusingan si Gregory:

I want to do a measure like

Custom Month to date =

CALCULATE (
    [Total Sales Amount],
    Filter(table name [Invoice_date_stn_inv_dt] >= table [Start of the month]) and table[End of month] )

Saya dan kolega saya pada diskusi grup tersebut, menyarankan solusi dengan menggunakan tabel Kelender/Tanggalan. Logikanya invoice date akan di lookup pada tabel Kalender sehingga akan lebih mudah melakukan pengaturan rentang waktu menggunakan tabel Kalender.
Pada tabel kalender dapat dengan mudah melakukan pembobotan atau indeks dari setiap tanggal atau hari. Perjanjian international telah menentukan urutan nomor hari adalah 1 = Minggu sampai 7 = Sabtu.

Solusinya

Solusinya adalah dengan membuat bobot/indeks/flag atau nilai (1) pada hari sabtu terakhir. sehingga akan dengan mudah menentukan rentang waktu antara awal bulan dengan tanggal yg memiliki nilai (1) pada bulan tersebut.

Pertama, buat kolom nomor hari di tabel kalender (1-7), weekday[Date]
Kedua, buat kolom yang melakukan pembobotan 0 jika tanggal tersebut bukan lah hari sabtu (!=7) dan berikan nilai 1 jika tanggal tersebut adalah hari sabtu terakhir di bulan tersebut

Ekspresi DAX nya adalah:

Hari Sabtu Terakhir = IF(DATEADD(Tanggalan[Date],7,DAY) > ENDOFMONTH(Tanggalan[Date])  &&  Tanggalan[Hari]= 7,1,0)

DATEADD(Tanggalan[Date],7,DAY) = tambahkan 7 hari kedepan pada sebuah tanggal

ENDOFMONTH(Tanggalan[Date]) = menentukan hari terakhir dari bulan terkait

Tanggalan[Hari] = tentukan hari tersebut adalah sabtu (7)







Hasilnya dapat dilihat pada gambar diatas, Tgl 25 Januari 2020 adalah hari sabtu terakhir pada bulan
tersebut.

 
Diskusi lengkap bisa anda lihat pada link berikut ini:

#powerbi
#dax

No comments:

Post a Comment

JURUS PEMBELAH DATA

Tulisan berikut ini adalah perjalanan penulis membuka data dari sisi pandang data scientist Pemahaman Bisnis Judul: Stroke Prediction Datase...