DAX Fungsi Iterator (X): SUMX, AVERAGEX, dan Lainnya
Blog/Dashboard & Visualisasi/DAX Fungsi Iterator (X): SUMX, AVERAGEX, dan Lainnya

DAX Fungsi Iterator (X): SUMX, AVERAGEX, dan Lainnya

BimaBima
·19 Oktober 2026·7 menit baca

Penulis

Bima

Bima

Founder & Data Professional

Bagikan

TL;DR

Fungsi iterator DAX adalah fungsi berakhiran X, kayak SUMX dan AVERAGEX, yang jalan baris per baris di sebuah tabel dulu, baru gabungin hasilnya. Bedanya sama SUM biasa, iterator bisa ngitung dari beberapa kolom per baris tanpa perlu bikin calculated column. Pakai fungsi X pas perhitungan butuh nilai per baris, misalnya harga dikali qty.

Fungsi iterator DAX itu fungsi berakhiran X, kayak SUMX dan AVERAGEX, yang jalan baris per baris di sebuah tabel dulu, baru gabungin hasilnya. Gunanya buat perhitungan yang butuh nilai per baris sebelum dijumlah atau dirata-rata.

Bedanya sama SUM biasa: SUM langsung jumlahin satu kolom. SUMX ngitung ekspresi di tiap baris dulu, misalnya harga dikali jumlah, baru dijumlah.

Di sini aku bahas cara kerja fungsi X, daftar yang paling sering dipakai, plus contoh nyata dari toko_berkah.

Apa itu fungsi iterator (X) di DAX?

Fungsi iterator adalah fungsi DAX yang punya dua bagian: sebuah tabel buat ditelusuri, dan sebuah ekspresi yang dihitung di tiap baris tabel itu. Hasil tiap baris dikumpulin, lalu digabung sesuai fungsinya, misalnya dijumlah buat SUMX atau dirata-rata buat AVERAGEX.

Ciri gampangnya: namanya diakhiri huruf X, dan argumen pertamanya selalu tabel.

SUMX(
    'penjualan',
    'penjualan'[harga] * 'penjualan'[qty]
)

Di tiap baris, harga dikali qty. Semua hasilnya baru dijumlah jadi satu angka.

Apa bedanya SUM dan SUMX?

SUM cuma bisa jumlahin satu kolom yang udah ada. SUMX bisa ngitung dari beberapa kolom di tiap baris dulu. Kalau kamu belum punya kolom total per baris, SUMX yang ngerjain tanpa perlu bikin kolom tambahan.

-- SUM: butuh kolom total yang udah ada
Total = SUM('penjualan'[total])

-- SUMX: hitung harga x qty per baris, baru jumlah
Total = SUMX('penjualan', 'penjualan'[harga] * 'penjualan'[qty])

Hasilnya sama kalau kolom total emang persis harga dikali qty. Bedanya, SUMX nggak butuh kolom itu ada duluan.

Fungsi X apa aja yang sering dipakai?

Semua fungsi agregasi punya versi X. Ini yang paling sering muncul di kerjaan sehari-hari.

Fungsi XGunanya
SUMXjumlah dari ekspresi per baris
AVERAGEXrata-rata dari ekspresi per baris
COUNTXhitung baris yang ekspresinya ada isinya
MAXXnilai terbesar dari ekspresi per baris
MINXnilai terkecil dari ekspresi per baris
RANKXbikin peringkat berdasarkan ekspresi

Polanya sama semua: kasih tabel, kasih ekspresi per baris, DAX yang telusuri barisnya.

Gimana AVERAGEX beda dari AVERAGE?

AVERAGE ngerata-ratain satu kolom. AVERAGEX ngerata-ratain hasil ekspresi di tiap baris. Ini penting pas kamu mau rata-rata dari sesuatu yang belum jadi kolom.

-- rata-rata nilai transaksi per struk
AVERAGEX(
    'penjualan',
    'penjualan'[harga] * 'penjualan'[qty]
)

Hasilnya rata-rata nilai per baris transaksi, bukan rata-rata satu kolom mentah. Bedanya kerasa pas tiap baris punya jumlah item beda.

Contoh kasus: rata-rata nilai struk toko_berkah

toko_berkah mau tau rata-rata nilai per struk dari 42.000 transaksi. Tabelnya cuma punya kolom harga dan qty, belum ada kolom total.

Tanpa fungsi X, aku harus bikin calculated column total dulu, yang nambah beban memori di 42.000 baris. Dengan AVERAGEX, aku ngitung harga kali qty langsung di measure, tanpa kolom tambahan.

Rata Nilai Struk =
AVERAGEX(
    'penjualan',
    'penjualan'[harga] * 'penjualan'[qty]
)

Hasilnya 87.500 rupiah per struk. Model juga lebih ramping karena aku nggak nyimpen calculated column yang cuma dipakai sekali. Di file ini, ukuran model turun sekitar 3% setelah kolom itu dibuang.

Kesalahan umum pakai fungsi X

Pertama, pakai SUMX padahal SUM udah cukup. Kalau kolom yang mau dijumlah udah ada, SUM lebih ringkas dan sedikit lebih cepat. Fungsi X buat kasus yang butuh hitung per baris.

Kedua, naruh ekspresi berat di dalam iterator tabel besar. Iterator jalan tiap baris, jadi ekspresi rumit di jutaan baris bisa lambat. Sederhanain ekspresinya kalau bisa.

Ketiga, salah pilih tabel di argumen pertama. Iterator nelusuri tabel yang kamu kasih. Kalau tabelnya salah, jumlah barisnya salah, dan hasilnya ikut meleset.

FAQ

Apakah fungsi X selalu lebih lambat dari SUM biasa?

Nggak selalu, tapi iterator memang kerja lebih banyak karena jalan per baris. Buat kasus di mana kamu cuma jumlahin satu kolom yang udah ada, SUM lebih ringan. Fungsi X baru layak pas perhitungannya butuh gabungan kolom per baris. Di tabel besar, jaga ekspresi di dalamnya tetap sederhana biar performanya kejaga.

Kapan harus pakai SUMX daripada bikin calculated column?

Pakai SUMX kalau hasil per baris cuma dibutuhin buat agregasi, bukan buat difilter atau di-slice. Ini bikin model lebih ramping karena kamu nggak nyimpen kolom tambahan. Kalau nilai per baris itu perlu muncul di tabel atau jadi filter, calculated column baru masuk akal. Patokannya: butuh nilainya per baris di visual atau nggak.

Apa argumen pertama iterator harus nama tabel?

Harus sesuatu yang menghasilkan tabel. Bisa nama tabel langsung, bisa juga hasil fungsi kayak FILTER atau VALUES. Ini yang bikin iterator fleksibel, karena kamu bisa telusuri tabel yang udah disaring dulu. Yang penting argumen pertama berupa tabel, dan argumen kedua ekspresi yang dihitung per barisnya.

Apakah RANKX termasuk fungsi iterator?

Iya. RANKX nelusuri sebuah tabel dan ngitung ekspresi di tiap baris buat nentuin peringkat. Dia sering dipakai buat bikin ranking produk atau cabang berdasarkan penjualan. Sama kayak fungsi X lain, argumen pertamanya tabel, dan kamu kasih ekspresi yang jadi dasar urutannya. Hasilnya angka peringkat per baris konteks.

Penutup

Fungsi X jalan per baris dulu, baru gabungin. Pakai pas perhitungan butuh nilai per baris, kayak harga kali qty, tanpa harus bikin kolom baru.

Kalau kolomnya udah ada dan tinggal dijumlah, SUM biasa cukup. Fungsi X buat yang belum jadi kolom.

Mau lanjut? Kulik DAX SUMX lebih dalam dan DAX CALCULATE buat ngatur konteks filter. Cek juga halaman fungsi SUMX dan glosarium row context. Referensi resminya ada di dokumentasi DAX Microsoft.

Coba Langsung

Mau praktek langsung? Mulai latihan SQL gratis

Latihan interaktif, langsung di browser.

Buka NgulikSQL →
Bagikan:
Bima
Ditulis oleh

Bima

Founder & Data Professional

Founder Ngulik Data. Passionate about making data analysis accessible for everyone.

Artikel terkait

Small Multiples: Teknik Visualisasi Perbandingan (2026)
Dashboard & Visualisasi
31 Desember 2026•7 menit baca

Small Multiples: Teknik Visualisasi Perbandingan (2026)

Satu grafik penuh garis warna-warni bikin mata mumet. Small multiples mecahnya jadi grafik kecil sejenis biar perbandingan antar grup langsung kelihatan. Ini caranya.

BimaBima
Bubble Chart: Kapan Dipakai dan Cara Membacanya (2026)
Dashboard & Visualisasi
28 Desember 2026•7 menit baca

Bubble Chart: Kapan Dipakai dan Cara Membacanya (2026)

Bubble chart bisa nunjukin tiga angka sekaligus, tapi gampang bikin salah baca. Ini kapan dia beneran kepake, cara bacanya, plus contoh dari 5 cabang toko.

BimaBima
Treemap: Visualisasi Data Hierarki
Dashboard & Visualisasi
25 Desember 2026•8 menit baca

Treemap: Visualisasi Data Hierarki

Treemap ngerangkum data hierarki jadi kotak bertingkat yang ukurannya mewakili nilai. Ini cara baca dan bikinnya, plus kapan sebaiknya dipakai.

BimaBima
Kembali ke Blog
Ngulik Data logoNgulik Data

Platform edukasi data lengkap untuk professionals Indonesia. Belajar SQL, Data Analysis, dan lebih banyak lagi dengan praktek langsung dan feedback real-time.

© 2026 Ngulik Data. Semua hak dilindungi.

TAUTAN
BantuanHargaDatasetBlogAfiliasi
LEGAL
Syarat & KetentuanKebijakan Privasi
Ngulik Data
DatasetLeaderboardBlogStore