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
#dax
No comments:
Post a Comment