Lewati ke konten utama

Cara Menggunakan Fungsi SUMX di Power BI

Jelajahi fungsi SUMX di Power BI, sintaksnya, cara kerjanya, dan praktik terbaik yang perlu diperhatikan.
· 8 mnt Baca

Jelajahi bersama AI

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.

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.

image2.png

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.

image4.png

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.

image1.png

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.

Joleen Bothma

Penulis

Joleen Bothma

Topik

Terkait

blogs

Tutorial Korelasi di R

blogs

Spaghetti Plot dan Jalur Badai