DAX ALL dan ALLEXCEPT: Mengabaikan Filter (2026)
TL;DR
ALL dan ALLEXCEPT di DAX adalah fungsi buat ngabaikan filter waktu ngitung measure. ALL ngehapus semua filter dari tabel atau kolom, cocok buat ngitung persen dari total keseluruhan. ALLEXCEPT ngehapus semua filter kecuali kolom yang kamu sebut, cocok buat persen dari total per kategori. Keduanya dipakai di dalam CALCULATE sebagai pengubah filter.
ALL dan ALLEXCEPT di DAX adalah fungsi buat ngabaikan filter waktu ngitung measure di Power BI.
Dua fungsi ini yang bikin kamu bisa ngitung persen dari total. Tanpa mereka, tiap baris di visual bakal ngasih 100% karena kena filter yang sama dengan pembaginya.
Di tutorial ini kamu bakal paham cara kerja ALL, kapan ganti ke ALLEXCEPT, dan contoh nyata pakai data penjualan. Ada code DAX yang langsung bisa kamu tiru.
Apa itu ALL dan ALLEXCEPT di DAX?
ALL adalah fungsi DAX yang ngehapus filter dari tabel atau kolom, jadi perhitungan ngeliat data penuh tanpa dipotong slicer. ALLEXCEPT mirip, tapi dia nyisain satu atau beberapa kolom tetap kena filter. Keduanya dipakai di dalam CALCULATE buat ngubah konteks filter sebuah measure.
Konteks filter itu kondisi yang lagi berlaku pas measure dihitung. Misalnya, kamu lagi di baris "Beras" di sebuah tabel, berarti measure cuma ngitung data beras.
ALL bilang ke measure: abaikan itu, hitung semuanya. Kalau kamu baru di DAX, pahami dulu filter context dan measure biar langkah berikutnya nyambung.
Gimana cara kerja fungsi ALL?
ALL dipakai di dalam CALCULATE buat ngehapus filter dari argumen yang kamu kasih. Paling umum buat ngitung total keseluruhan sebagai pembagi. Hasilnya tetap sama di semua baris, karena filter barisnya udah diabaikan. Ini yang bikin kamu bisa hitung porsi tiap item.
Anggap kamu punya tabel Penjualan dengan kolom Produk, Kategori, dan Jumlah. Kamu mau ngitung persen tiap produk terhadap total penjualan:
Persen dari Total =
DIVIDE(
SUM(Penjualan[Jumlah]),
CALCULATE(
SUM(Penjualan[Jumlah]),
ALL(Penjualan)
)
)
Pembilangnya, SUM(Penjualan[Jumlah]), tetap ngikutin baris yang lagi aktif. Pembaginya pakai ALL(Penjualan), jadi dia ngitung total semua baris tanpa filter. Hasil bagi keduanya ngasih porsi tiap produk.
DIVIDE dipakai biar aman dari error bagi nol. Kalau pembaginya 0, DIVIDE balikin kosong, bukan error.
Kamu juga bisa pakai ALL cuma di satu kolom, misalnya ALL(Penjualan[Produk]). Ini ngehapus filter dari kolom Produk aja, filter lain tetap jalan.
Kapan pakai ALLEXCEPT?
Pakai ALLEXCEPT waktu kamu mau ngabaikan semua filter kecuali beberapa kolom tertentu. Contoh paling sering: persen dari total dalam satu kategori. Kamu mau tau kontribusi produk terhadap kategorinya, bukan terhadap seluruh toko. ALLEXCEPT nahan kolom Kategori tetap aktif.
Pakai data yang sama, ini measure-nya:
Persen dari Total Kategori =
DIVIDE(
SUM(Penjualan[Jumlah]),
CALCULATE(
SUM(Penjualan[Jumlah]),
ALLEXCEPT(Penjualan, Penjualan[Kategori])
)
)
Bedanya cuma di argumen filter. ALLEXCEPT(Penjualan, Penjualan[Kategori]) ngehapus semua filter kecuali Kategori. Jadi pembaginya total per kategori, bukan total toko.
Hasilnya, kalau ada 3 produk di kategori sembako, persen mereka dijumlahin bakal pas 100% dalam kategori itu.
ALL vs ALLEXCEPT: bedanya di mana?
Keduanya ngabaikan filter, tapi cakupannya beda. ALL buang semua, ALLEXCEPT buang semua kecuali yang kamu jaga. Tabel ini ngerangkum kapan pakai yang mana:
| Aspek | ALL | ALLEXCEPT |
|---|---|---|
| Filter yang dihapus | Semua di tabel/kolom | Semua kecuali kolom yang disebut |
| Pembagi yang dihasilkan | Total keseluruhan | Total per grup |
| Cocok buat | Persen terhadap total toko | Persen dalam kategori |
| Contoh argumen | ALL(Penjualan) | ALLEXCEPT(Penjualan, Penjualan[Kategori]) |
Gampangnya, pilih ALL kalau pembandingnya seluruh data. Pilih ALLEXCEPT kalau pembandingnya cuma dalam satu grup.
Contoh Kasus: kontribusi produk toko_berkah
Anggap toko_berkah, UMKM sembako, punya data penjualan setahun. Kamu mau bikin dashboard yang nunjukin produk mana yang paling nyumbang omzet.
Pakai measure Persen dari Total tadi, hasilnya kira-kira begini:
| Produk | Penjualan | Persen dari Total |
|---|---|---|
| Beras | Rp 151 juta | 31% |
| Minyak goreng | Rp 88 juta | 18% |
| Gula | Rp 63 juta | 13% |
| Lainnya | Rp 185 juta | 38% |
Dari angka ini, kelihatan beras nyumbang hampir sepertiga omzet. Kalau slicer diganti ke bulan tertentu, pembilangnya ikut berubah tapi porsinya tetap relatif ke total tahunan, karena ALL ngabaikan filter bulan di pembagi.
Measure kayak gini yang bikin dashboard kamu langsung ngasih insight, bukan cuma numpuk angka. Kalau kamu belum kenal fungsi DAX pengambil data antar tabel, cek dulu DAX RELATED.
Kesalahan Umum Pakai ALL dan ALLEXCEPT
Beberapa jebakan yang sering bikin hasil measure kelihatan aneh:
- Lupa CALCULATE. ALL di luar CALCULATE balikin tabel, bukan ngubah filter. Buat persen dari total, ALL harus di dalam CALCULATE.
- Salah kolom di ALLEXCEPT. Kalau kamu sebut kolom yang salah, grupnya jadi nggak sesuai dan persennya kacau.
- Nggak pakai DIVIDE. Bagi biasa pakai tanda / bisa error kalau pembaginya 0. DIVIDE lebih aman.
- Nyampur ALL tabel dan ALL kolom. ALL(Penjualan) beda sama ALL(Penjualan[Produk]). Yang pertama hapus semua filter, yang kedua cuma dari satu kolom.
Kalau persen kamu mentok di 100% terus, hampir pasti pembaginya masih kena filter yang sama. Bungkus pembagi pakai ALL, beres.
FAQ
Pertanyaan yang sering muncul soal ALL dan ALLEXCEPT di DAX.
Apa fungsi ALL di DAX?
ALL ngehapus filter dari tabel atau kolom yang kamu sebut, jadi perhitungan nggak terpengaruh slicer atau baris di visual. Paling sering dipakai buat ngitung total keseluruhan sebagai pembagi, misalnya persen kontribusi tiap produk terhadap total penjualan. Kamu taruh ALL di dalam CALCULATE biar dia jadi pengubah konteks filter.
Apa beda ALL dan ALLEXCEPT?
ALL ngehapus semua filter dari tabel. ALLEXCEPT ngehapus semua filter juga, tapi nyisain kolom yang kamu sebut tetap aktif. Jadi ALLEXCEPT(Penjualan, Penjualan[Kategori]) ngabaikan semua filter kecuali Kategori. Ini berguna waktu kamu mau persen dari total dalam grup, bukan total keseluruhan.
Kenapa persen dari total-ku selalu 100%?
Biasanya karena pembagi kamu masih kena filter yang sama dengan pembilangnya. Kalau dua-duanya difilter ke baris yang sama, hasilnya pasti 100%. Bungkus pembagi pakai CALCULATE dengan ALL biar dia ngeliat total tanpa filter baris. Setelah itu tiap baris bakal nunjukin porsi yang beda.
Apakah ALL bisa dipakai di luar CALCULATE?
Bisa, tapi fungsinya beda. Di luar CALCULATE, ALL balikin tabel berisi semua nilai unik tanpa filter, sering dipakai sebagai sumber buat iterasi. Di dalam CALCULATE, ALL jadi pengubah filter yang ngehapus konteks. Buat measure persen dari total, kamu hampir selalu pakainya di dalam CALCULATE.
ALLEXCEPT atau REMOVEFILTERS, pilih mana?
ALLEXCEPT enak kalau kamu mau nahan satu atau dua kolom dan buang sisanya. REMOVEFILTERS lebih jelas dibaca kalau kamu cuma mau ngehapus filter tertentu. Keduanya sah. Buat pemula, ALL dan ALLEXCEPT udah cukup buat 90% kebutuhan persen dari total di dashboard sehari-hari.
Penutup
ALL dan ALLEXCEPT itu kunci buat semua measure yang butuh pembanding total. Sekali paham, persen dari total dan analisis kontribusi jadi gampang.
Inget dua hal: ALL buang semua filter buat total keseluruhan, ALLEXCEPT nahan kolom tertentu buat total per grup. Keduanya hidup di dalam CALCULATE.
Langkah lanjutnya, pahami kapan pakai measure vs kolom di panduan measure vs calculated column. Detail resmi tiap fungsi ada di dokumentasi DAX Microsoft. Terus latihan bikin dashboard sampai measure-nya jadi refleks.
Mau praktek langsung? Mulai latihan SQL gratis
Latihan interaktif, langsung di browser.
Artikel terkait
DAX RELATED: Ambil Data dari Tabel Lain
Fungsi RELATED di DAX narik nilai dari tabel lain lewat relationship. Ini cara pakainya, syarat relasinya, dan bedanya dengan LOOKUPVALUE.
DAX SUMX: Menjumlah per Baris di Power BI
SUMX ngitung sesuatu di tiap baris dulu, baru dijumlah. Ini cara pakainya di Power BI, bedanya sama SUM, dan kapan kamu wajib pilih SUMX.
DAX FILTER: Menyaring Data dalam Perhitungan
FILTER di DAX nyaring baris sebelum dihitung. Ini cara pakainya bareng CALCULATE, kapan perlu, dan bedanya sama filter boolean biasa di Power BI.