7 Jurus Sakti DAX
Kisah nyata gimana beberapa baris kode DAX menyelamatkan proyek Power BI-ku dari kehancuran.
Dashboard-ku Sekarat!
Proyek hampir gagal. Dashboard lambat, filter *ngelag*, dan CEO bilang, "Ini terlalu lambat buat dipakai."
Aku tahu ini bukan masalah data. Ini masalah DAX-ku.
Titik Balik: 7 Jurus Penyelamat
1. `REMOVEFILTERS()` > `ALL()`
Masalahnya: `ALL()` malah menghapus semua filter, termasuk yang di visual.
Jurus Singkatnya:
[Total Sales],
REMOVEFILTERS('Calendar')
)
Hasil: Filter lebih presisi dan tidak merusak konteks visual lain.
2. `SELECTEDVALUE()` > `VALUES()`
Masalahnya: Error saat filter mengembalikan lebih dari satu nilai.
Jurus Singkatnya:
'Region'[RegionName],
"Multiple Regions"
)
Hasil: Laporan lebih bersih tanpa error "expects a single value".
3. `SWITCH` > `IF` Bertumpuk
Masalahnya: `IF` yang bertingkat-tingkat (*nested*) bikin pusing dan susah dibaca.
Jurus Singkatnya:
[Score] >= 90, "A",
[Score] >= 75, "B",
"C"
)
Hasil: Logika lebih rapi, mudah dibaca, dan gampang di-update.
4. Gunakan `VAR` (Variabel)
Masalahnya: Menghitung ulang ekspresi yang sama berkali-kali bikin lambat.
Jurus Singkatnya:
RETURN
Sales * 0.1
Hasil: Performa lebih cepat dan proses debugging jadi lebih mudah.
5. `ISINSCOPE()` untuk Hierarki
Masalahnya: Susah mendeteksi level hierarki (*drill-down*) yang sedang aktif.
Jurus Singkatnya:
ISINSCOPE('Calendar'[Month]),
"Month View", "Year View"
)
Hasil: Judul dan kalkulasi dinamis jadi lebih akurat dan informatif.
6. `DIVIDE()` > Simbol `/`
Masalahnya: Pembagian dengan simbol `/` rentan error *divide-by-zero*.
Jurus Singkatnya:
[Total Sales],
[Total Customers], 0
)
Hasil: Anti-crash! Penanganan error otomatis jika ada pembagian dengan nol.
7. `KEEPFILTERS()` untuk Kontrol
Masalahnya: `CALCULATE` kadang "menimpa" filter dari *slicer* yang dipilih user.
Jurus Singkatnya:
KEEPFILTERS(
'Products'[Category] = "Shoes"
)
)
Hasil: Menghormati filter dari *slicer* sambil tetap menerapkan logika baru.
Dampak Nyatanya?
40%
Lebih Cepat
100%
Akurat
✓
Mudah Di-update
Klien senang, proyek selamat, dan aku bisa tidur nyenyak!
7 Jurus Sakti DAX
Kisah nyata gimana beberapa baris kode DAX menyelamatkan proyek Power BI-ku dari kehancuran.
Dashboard-ku Sekarat!
Proyek hampir gagal. Dashboard lambat, filter *ngelag*, dan CEO bilang, "Ini terlalu lambat buat dipakai."
Aku tahu ini bukan masalah data. Ini masalah DAX-ku.
Titik Balik: 7 Jurus Penyelamat
1. `REMOVEFILTERS()` > `ALL()`
Masalahnya: `ALL()` malah menghapus semua filter, termasuk yang di visual.
Jurus Singkatnya:
[Total Sales],
REMOVEFILTERS('Calendar')
)
Hasil: Filter lebih presisi dan tidak merusak konteks visual lain.
2. `SELECTEDVALUE()` > `VALUES()`
Masalahnya: Error saat filter mengembalikan lebih dari satu nilai.
Jurus Singkatnya:
'Region'[RegionName],
"Multiple Regions"
)
Hasil: Laporan lebih bersih tanpa error "expects a single value".
3. `SWITCH` > `IF` Bertumpuk
Masalahnya: `IF` yang bertingkat-tingkat (*nested*) bikin pusing dan susah dibaca.
Jurus Singkatnya:
[Score] >= 90, "A",
[Score] >= 75, "B",
"C"
)
Hasil: Logika lebih rapi, mudah dibaca, dan gampang di-update.
4. Gunakan `VAR` (Variabel)
Masalahnya: Menghitung ulang ekspresi yang sama berkali-kali bikin lambat.
Jurus Singkatnya:
RETURN
Sales * 0.1
Hasil: Performa lebih cepat dan proses debugging jadi lebih mudah.
5. `ISINSCOPE()` untuk Hierarki
Masalahnya: Susah mendeteksi level hierarki (*drill-down*) yang sedang aktif.
Jurus Singkatnya:
ISINSCOPE('Calendar'[Month]),
"Month View", "Year View"
)
Hasil: Judul dan kalkulasi dinamis jadi lebih akurat dan informatif.
6. `DIVIDE()` > Simbol `/`
Masalahnya: Pembagian dengan simbol `/` rentan error *divide-by-zero*.
Jurus Singkatnya:
[Total Sales],
[Total Customers], 0
)
Hasil: Anti-crash! Penanganan error otomatis jika ada pembagian dengan nol.
7. `KEEPFILTERS()` untuk Kontrol
Masalahnya: `CALCULATE` kadang "menimpa" filter dari *slicer* yang dipilih user.
Jurus Singkatnya:
KEEPFILTERS(
'Products'[Category] = "Shoes"
)
)
Hasil: Menghormati filter dari *slicer* sambil tetap menerapkan logika baru.
Dampak Nyatanya?
40%
Lebih Cepat
100%
Akurat
✓
Mudah Di-update
Klien senang, proyek selamat, dan aku bisa tidur nyenyak!