Skip to Content

7 Jurus Sakti DAX

Infografis: 7 Jurus Sakti DAX

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:

CALCULATE(
  [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:

SELECTEDVALUE(
  '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:

SWITCH(TRUE(),
  [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:

VAR Sales = SUM('Sales'[Amount])
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:

IF(
  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:

DIVIDE(
  [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:

CALCULATE([Total Sales],
  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!

Menulis DAX itu seni. Semoga jurus-jurus ini membantumu!


Dashboard Seharga $100K