Apa itu Fungsi SUMX di Power BI?
Fungsi SUMX di Power BI adalah fungsi DAX yang kuat untuk menghitung jumlah dari suatu ekspresi yang dihitung untuk setiap baris dalam sebuah tabel. Fungsi ini penting karena memungkinkan perhitungan yang lebih kompleks dibandingkan penjumlahan sederhana.
Simpan lembar contekan DAX kami untuk referensi cepat tentang banyak fungsi DAX paling berguna yang akan Anda temui.

Sintaks fungsi SUMX adalah
SUMX(Table, Expression)
- Table: Tabel atau ekspresi tabel yang menjadi tempat fungsi beriterasi.
- Expression: Ekspresi yang dievaluasi untuk setiap baris tabel. Ekspresi ini sering melibatkan data dari kolom-kolom dalam tabel.
SUMX sangat berguna ketika Anda harus melakukan perhitungan yang bergantung pada nilai setiap baris sebelum menjumlahkan hasilnya. Misalnya, menghitung total penjualan dengan mengalikan kuantitas dan harga untuk setiap transaksi atau menerapkan tingkat diskon yang berbeda per produk sebelum menjumlahkan total penjualan setelah diskon. Fungsi ini menawarkan fleksibilitas dan ketelitian dalam perhitungan, sehingga cukup penting untuk dipelajari.
Cara Kerja SUMX di Power BI
Berikut penjelasan bagaimana fungsi SUMX bekerja di balik layar:
- Saat SUMX dipanggil, fungsi ini beriterasi satu per satu pada baris-baris dari tabel yang ditentukan. Untuk setiap baris, ia sementara menetapkan konteks baris (row context), yaitu semacam lingkungan di mana nilai baris saat ini dapat diakses langsung.
- Dalam konteks baris ini, fungsi mengevaluasi ekspresi yang diberikan pada argumen keduanya. Ekspresi tersebut biasanya melibatkan satu atau lebih nilai kolom lain dari baris saat ini. Saat fungsi beriterasi melalui tabel, ia menghitung ulang ekspresi ini untuk setiap baris berdasarkan data baris tersebut.
- Ketika SUMX memproses setiap baris, ia mengakumulasikan hasilnya, menjaga total berjalan. Power BI menggunakan mesin analitik dalam memori DAX (VertiPaq), yang dioptimalkan untuk perhitungan seperti ini.
- Setelah beriterasi melalui semua baris, SUMX memfinalisasi total agregat, yaitu jumlah dari hasil-hasil individual yang dihitung untuk setiap baris. Nilai akhir ini kemudian dikembalikan sebagai keluaran fungsi.
Memahami Konteks
Di Power BI, konteks sangat penting untuk memahami bagaimana fungsi DAX seperti SUMX beroperasi. Konteks menentukan bagaimana nilai dalam model data dihitung dan ditampilkan. Lihat kursus pengantar DAX kami, di mana kami membahas konteks secara lebih mendalam. Dengan fungsi SUMX, ada dua jenis konteks utama yang perlu dipertimbangkan: konteks baris dan konteks filter.
Konteks baris
Konteks baris merujuk pada lingkungan tempat rumus DAX mengevaluasi setiap baris tabel. Saat Anda berada dalam konteks baris, Anda dapat merujuk langsung ke kolom-kolom tabel, dan rumus DAX akan menggunakan nilai dari baris saat ini dalam perhitungannya.
Saat Anda menggunakan SUMX, fungsi ini membuat dan memanfaatkan konteks baris untuk operasinya. Untuk setiap baris dalam tabel yang ditentukan, SUMX mengevaluasi ekspresi yang diberikan dalam konteks baris tersebut.
Konteks filter
Konteks filter adalah sekumpulan filter yang diterapkan pada data dalam laporan Power BI, seperti filter dari visual, slicer, dan filter tingkat laporan. Konteks ini menentukan titik data mana yang dipertimbangkan dalam perhitungan.
Meskipun SUMX beroperasi dalam konteks baris untuk perhitungan per baris, perhitungan ini tetap tunduk pada konteks filter keseluruhan dari laporan atau visual. Artinya, baris yang diiterasi oleh SUMX adalah baris yang memenuhi kriteria yang ditentukan oleh konteks filter saat ini.
Interaksi antar konteks dalam SUMX
Saat menggunakan SUMX, fungsi ini menghormati baik konteks baris maupun konteks filter. Tabel yang diiterasi oleh SUMX dibentuk oleh konteks filter, sedangkan perhitungan untuk setiap baris dilakukan dalam konteks baris.
Anda dapat menggunakan sebuah measure di dalam SUMX. Dalam kasus ini terjadi transisi konteks, di mana konteks baris sementara diubah menjadi konteks filter yang setara untuk mengevaluasi measure pada setiap baris.
Praktik Terbaik SUMX
Saat menggunakan fungsi SUMX di Power BI, pertimbangkan beberapa praktik terbaik berikut:
- Pastikan model data Anda terstruktur dengan baik sebelum menerapkan SUMX. Relasi dan skema model yang terdefinisi dengan benar sangat penting untuk laporan Power BI yang akurat dan teroptimasi.
- SUMX tidak didukung dalam mode DirectQuery saat digunakan dalam kolom terhitung atau aturan keamanan tingkat baris.
- Jaga agar ekspresi yang digunakan dalam SUMX sesederhana dan seefisien mungkin. Hindari perhitungan yang terlalu kompleks yang memperlambat kinerja, terutama pada dataset besar.
- Perhatikan transisi konteks dan bagaimana hal tersebut dapat memengaruhi hasil fungsi Anda.
- SUMX hanya mempertimbangkan angka. Kosong, nilai logis, dan teks diabaikan.
SUMX vs Fungsi Lain
Beberapa fungsi mirip dengan SUMX, dan mengetahui fungsi mana yang digunakan dan kapan dapat sedikit membingungkan. Mari kita uraikan dua fungsi yang paling sering menimbulkan kebingungan.
SUMX vs SUM
SUM digunakan untuk menghitung jumlah sebuah kolom dalam tabel dan memiliki sintaks berikut:
SUM(Column)
SUMX beriterasi pada setiap baris untuk mengevaluasi suatu ekspresi, sedangkan SUM langsung mengagregasi nilai dari satu kolom. Ini berarti SUMX dapat menangani perhitungan yang lebih kompleks yang melibatkan beberapa kolom.
Namun, sifat iteratif SUMX membuatnya lebih membutuhkan sumber daya, terutama pada dataset besar, dibandingkan SUM. Ingat hal ini jika Anda bekerja dengan model data besar, dan gunakan SUM untuk penjumlahan sederhana.
SUMX vs CALCULATE
CALCULATE memodifikasi konteks filter pada suatu perhitungan dan merupakan salah satu fungsi paling kuat di DAX. Ini adalah sintaks fungsi CALCULATE:
CALCULATE(Expression, Filter1, Filter2,...)
CALCULATE ideal untuk skenario di mana Anda harus melakukan perhitungan di bawah kondisi filter yang berbeda dari yang saat ini diterapkan pada laporan atau model. Di sisi lain, SUMX digunakan untuk perhitungan tingkat baris yang diikuti dengan agregasi.
Dalam skenario kompleks, kita dapat menggunakan CALCULATE bersama fungsi lain, seperti SUMX. Misalnya, Anda dapat menggunakan CALCULATE untuk menentukan konteks filter tertentu yang di dalamnya SUMX melakukan perhitungan tingkat baris dan agregasinya.
Mengimplementasikan SUMX di Power BI: Panduan Langkah demi Langkah
Dengan menggunakan data contoh Power BI (tersedia saat Anda memasang Power BI Desktop), kami akan mendemonstrasikan cara menggunakan fungsi SUMX dan cara menggabungkan SUMX dengan beberapa fungsi DAX lain yang berguna.
Berikut cuplikan data kami yang menampilkan penjualan bulanan untuk berbagai produk di berbagai segmen dan negara.

Langkah 1: Membuat measure menggunakan SUMX
Berikut contoh klasik kekuatan SUMX. Kita ingin menggunakan jumlah unit terjual, harga per unit, dan nilai diskon yang diberikan untuk menghitung total nilai penjualan.
SUMX(Sales, (Sales[Units Sold] * Sales[Sale Price])-Sales[Discounts])
Berikut tabel yang menunjukkan hasil fungsi SUMX kami. Seperti yang Anda lihat, total penjualan juga dapat diterapkan konteks filter—dalam hal ini, kami memfilter berdasarkan Tahun dan Produk.

Langkah 2: Menerapkan filter pada SUMX
Kita dapat menggunakan filter dengan fungsi SUMX dengan dua cara: dengan FILTER atau CALCULATE.
FILTER digunakan untuk menerapkan filter tertentu pada sebuah tabel atau ekspresi di dalam SUMX. Ini memungkinkan kontrol yang lebih terperinci atas baris-baris yang diiterasi oleh SUMX.
SUMX(FILTER(Sales, Sales[Discount Band] = "High"), Sales[Units Sold])
CALCULATE memodifikasi konteks filter untuk fungsi SUMX, memungkinkan agregasi bersyarat yang kompleks.
SUMX(Sales, CALCULATE(SUM(Sales[Units Sold]), Sales[Year] = 2020))
Langkah 3: Menggabungkan SUMX dengan fungsi lain
ALL dan ALLEXCEPT
Fungsi-fungsi ini digunakan untuk menghapus filter dari sebuah tabel atau semua tabel kecuali yang ditentukan. Keduanya sering digunakan di dalam CALCULATE dan dikombinasikan dengan SUMX untuk melakukan perhitungan pada dataset tanpa filter.
SUMX(ALL(Sales), Sales[Sale Price] * Sales[Units Sold])
VALUES
VALUES mengembalikan tabel satu kolom berisi nilai unik dari sebuah kolom. Anda dapat menggabungkannya dengan SUMX untuk perhitungan yang memerlukan iterasi atas nilai-nilai unik.
SUMX(VALUES(Sales[Country]), [Total Sales])
AVERAGEX, MINX, dan MAXX
Ini adalah fungsi iteratif lain yang mirip dengan SUMX tetapi digunakan untuk menghitung nilai rata-rata, minimum, atau maksimum. Fungsi-fungsi ini dapat disarangkan atau digunakan berdampingan dengan SUMX.
AVERAGEX(Customers, SUMX(RELATEDTABLE(Sales), Sales[Units Sold]))
IF dan SWITCH
Fungsi logika seperti IF dan SWITCH dapat digunakan di dalam SUMX untuk melakukan perhitungan kondisional.
SUMX(Sales, IF(Sales[Country] = "Mexico", Sales[Units Sold], 0))
USERELATIONSHIP
USERELATIONSHIP menentukan relasi tertentu yang akan digunakan dalam suatu perhitungan. Ini sangat berguna ketika terdapat beberapa relasi antara tabel.
SUMX(CALCULATETABLE(Sales, USERELATIONSHIP(Date[Date], Sales[Date])), Sales[Units Sold])
Kesimpulan
Dalam tutorial ini, kami membahas secara mendalam fungsi SUMX di Power BI dan menunjukkan cara mengimplementasikannya sendiri. Selain fleksibel dan kuat sebagai fungsi DAX, SUMX juga menunjukkan pentingnya memahami konteks dalam DAX. Untuk mempelajari lebih lanjut, lihat jalur keterampilan Power BI fundamentals kami.


Jika Anda baru mulai mempelajari Power BI dengan jalur karier Data Analyst in Power BI kami, Anda mungkin sudah mengenal fungsi dasar SUM dari kursus pengantar DAX (jika belum, lihat tutorial DAX singkat ini). Dalam kasus itu, Anda mungkin juga bertanya-tanya apa itu fungsi SUMX, bagaimana cara kerjanya, dan bagaimana Anda dapat menggunakannya dalam analisis Anda.
Tutorial ini akan membahas fungsi SUMX, menjawab semua pertanyaan tersebut, dan memandu Anda mengimplementasikannya di Power BI.
Saat mengikuti tutorial Power BI ini dan yang lainnya, ingatlah bahwa meskipun Anda mungkin tidak diwajibkan mempelajari pemrograman sebagai pengembang business intelligence atau Power BI, hal itu bisa menjadi nilai tambah besar bagi karier Anda. Baca artikel kami tentang apakah Anda sebaiknya belajar coding sebagai analis BI untuk mengetahui alasannya.