Mempelajari dasar-dasar DAX di Power BI Desktop

Pengguna yang baru menggunakan Power BI Desktop dapat menggunakan artikel ini sebagai pengenalan cepat dan mudah tentang bagaimana Anda dapat menggunakan Ekspresi Analisis Data (DAX) untuk menyelesaikan banyak perhitungan dasar dan masalah analisis data. Kami akan membahas beberapa informasi konseptual, serangkaian tugas yang dapat Anda selesaikan, dan pemeriksaan pengetahuan untuk menguji apa yang telah Anda pelajari. Setelah menyelesaikan artikel ini, Anda harus memiliki pemahaman yang baik tentang konsep dasar yang paling penting di DAX.

Apa itu DAX?

DAX adalah kumpulan fungsi, operator, dan konstanta yang dapat digunakan dalam rumus, atau ekspresi, untuk menghitung dan menampilkan satu atau lebih nilai. DAX membantu Anda membuat informasi baru dari data yang sudah ada di model Anda.

Mengapa DAX begitu penting?

Sangat mudah untuk membuat file Power BI Desktop baru dan mengimpor beberapa data ke dalamnya. Anda bahkan dapat membuat laporan yang memperlihatkan wawasan berharga tanpa menggunakan rumus DAX sama sekali. Tetapi, bagaimana jika Anda perlu menganalisis persentase pertumbuhan di seluruh kategori produk dan untuk rentang tanggal yang berbeda? Atau, Anda perlu menghitung pertumbuhan tahun ke tahun dibandingkan dengan tren pasar? Rumus DAX juga menyediakan kemampuan ini dan banyak kemampuan penting lainnya. Pembelajaran cara membuat rumus DAX yang efektif akan membantu Anda mendapatkan hasil maksimal dari data Anda. Ketika Anda mendapatkan informasi yang Anda butuhkan, Anda dapat mulai memecahkan masalah bisnis nyata yang memengaruhi garis bawah Anda.

Prasyarat

Anda mungkin sudah terbiasa membuat rumus di Microsoft Excel, dan pengetahuan tersebut akan sangat membantu dalam memahami DAX. Tetapi bahkan jika Anda tidak memiliki pengalaman dengan rumus Excel, konsep yang dijelaskan di sini akan membantu Anda mulai membuat rumus DAX dan memecahkan masalah BI dunia nyata segera.

Kita akan fokus pada pemahaman rumus DAX yang digunakan dalam perhitungan, lebih khusus lagi, dalam pengukuran dan kolom terhitung. Anda harus sudah terbiasa menggunakan Power BI Desktop untuk mengimpor data dan menambahkan bidang ke laporan, dan Anda juga harus terbiasa dengan konsep dasar Pengukuran dan kolom Terhitung.

Contoh buku kerja

Cara terbaik untuk mempelajari DAX adalah dengan membuat beberapa rumus dasar, menggunakannya dengan data aktual, dan melihat hasilnya sendiri. Contoh dan tugas di sini menggunakan Sampel Penjualan Contoso untuk file Power BI Desktop. File sampel ini sama dengan yang digunakan dalam artikel Tutorial: Buat ukuran Anda sendiri di Power BI Desktop.

Mari kita mulai

Kami akan membingkai pemahaman kami tentang DAX di sekitar tiga konsep dasar: Sintaks, Fungsi, dan Konteks. Ada konsep penting lainnya dalam DAX, tetapi memahami ketiga konsep ini akan memberikan fondasi terbaik untuk membangun keterampilan DAX Anda.

Sintaks

Sebelum Anda membuat rumus Anda sendiri, mari kita lihat sintaks rumus DAX. Sintaksis mencakup berbagai elemen yang membentuk rumus, atau lebih sederhana, bagaimana rumus ditulis. Misalnya, berikut adalah rumus DAX sederhana untuk pengukuran:

Cuplikan layar rumus DAX dengan penunjuk ke elemen sintaks individual.

Rumus ini mencakup elemen sintaks berikut:

J. Nama ukuran, Total Penjualan.

B. Operator tanda sama dengan (=), yang menunjukkan awal rumus. Ketika dihitung, itu akan mengembalikan hasil.

C. SUM fungsi DAX, yang menambahkan semua angka di kolom Sales[SalesAmount]. Anda akan mempelajari selengkapnya tentang fungsi nanti.

D. Tanda kurung (), yang mengelilingi ekspresi yang berisi satu atau beberapa argumen. Sebagian besar fungsi memerlukan setidaknya satu argumen. Argumen meneruskan nilai ke fungsi.

E. Tabel yang dirujuk, Sales.

F. Kolom yang direferensikan, [SalesAmount], dalam tabel Penjualan. Dengan argumen ini, fungsi SUM mengetahui kolom mana yang akan diagregasi SUM.

Ketika mencoba memahami rumus DAX, seringkali membantu untuk memecah setiap elemen menjadi bahasa yang Anda pikirkan dan berbicara setiap hari. Misalnya, Anda dapat membaca rumus ini sebagai:

Untuk pengukuran bernama Total Penjualan, hitung (=) SUM nilai di kolom [SalesAmount] dalam tabel Penjualan.

Saat ditambahkan ke laporan, pengukuran ini menghitung dan mengembalikan nilai dengan menjumlahkan jumlah penjualan untuk setiap bidang lain yang kami sertakan, misalnya, Ponsel di AS.

Anda mungkin berpikir, "Bukankah pengukuran ini melakukan hal yang sama seolah-olah saya hanya menambahkan bidang Jumlah Penjualan ke laporan saya?" Baiklah. Tapi, ada alasan yang baik untuk membuat pengukuran kita sendiri yang menjumlahkan nilai dari bidang SalesAmount: Kita dapat menggunakannya sebagai argumen dalam rumus lain. Solusi ini mungkin tampak sedikit membingungkan sekarang, tetapi ketika keterampilan rumus DAX Anda tumbuh, mengetahui ukuran ini akan membuat rumus Anda dan model Anda lebih efisien. Bahkan, Anda akan melihat pengukuran Total Penjualan muncul sebagai argumen dalam rumus lain nanti.

Mari kita membahas beberapa hal lagi tentang rumus ini. Secara khusus, kami memperkenalkan fungsi, SUM. Fungsi adalah rumus pra-tulis yang memudahkan untuk melakukan perhitungan dan manipulasi kompleks dengan angka, tanggal, waktu, teks, dan banyak lagi. Anda akan mempelajari selengkapnya tentang fungsi nanti.

Anda juga melihat bahwa nama kolom [SalesAmount] didahului oleh tabel Penjualan di mana kolom berada. Nama ini dikenal sebagai nama kolom yang sepenuhnya memenuhi syarat karena menyertakan nama kolom yang didahului oleh nama tabel. Kolom yang dirujuk dalam tabel yang sama tidak mengharuskan nama tabel disertakan dalam rumus, yang bisa membuat rumus panjang yang mereferensikan banyak kolom lebih pendek dan lebih mudah dibaca. Namun, ini adalah praktik yang baik untuk menyertakan nama tabel dalam rumus pengukuran Anda, bahkan ketika dalam tabel yang sama.

Catatan

Jika nama tabel berisi spasi, kata kunci yang dipesan, atau karakter yang tidak diizinkan, Anda harus mengapit nama tabel dalam tanda kutip tunggal. Anda juga harus mengapit nama tabel dalam tanda kutip jika namanya berisi karakter apa pun di luar rentang karakter alfanumerik ANSI, terlepas dari apakah lokal Anda mendukung kumpulan karakter atau tidak.

Sangat penting bahwa rumus Anda memiliki sintaks yang benar. Dalam kebanyakan kasus, jika sintaks tidak benar, kesalahan sintaks dikembalikan. Dalam kasus lain, sintaks mungkin benar, tetapi nilai yang dikembalikan mungkin bukan yang Anda harapkan. Editor DAX di Power BI Desktop menyertakan fitur saran, yang digunakan untuk membuat rumus yang benar secara sintaksis dengan membantu Anda memilih elemen yang benar.

Mari kita buat contoh rumus. Tugas ini akan membantu Anda lebih memahami sintaks rumus dan bagaimana fitur saran di bilah rumus dapat membantu Anda.

Tugas: Membuat rumus pengukuran

  1. Unduh dan buka file Power BI Desktop Sampel Penjualan Contoso.

  2. Dalam tampilan Laporan, dalam daftar bidang, klik kanan tabel Penjualan, lalu pilih Pengukuran Baru.

  3. Di bilah rumus, ganti Ukur dengan memasukkan nama pengukuran baru, Penjualan Kuartal Sebelumnya.

  4. Setelah tanda sama dengan, ketik beberapa huruf pertama CAL, lalu klik dua kali fungsi yang ingin Anda gunakan. Dalam rumus ini, Anda ingin menggunakan fungsi CALCULATE.

    Anda akan menggunakan fungsi CALCULATE untuk memfilter jumlah yang ingin kita jumlahkan menurut argumen yang kita berikan ke fungsi CALCULATE. Jenis fungsi ini disebut sebagai fungsi bersarang. Fungsi CALCULATE memiliki setidaknya dua argumen. Yang pertama adalah ekspresi yang akan dievaluasi, dan yang kedua adalah filter.

  5. Setelah tanda kurung buka ( untuk fungsi CALCULATE, ketik SUM diikuti dengan tanda kurung buka lainnya (.

    Selanjutnya, kita akan meneruskan argumen ke fungsi SUM.

  6. Mulai ketik Sal, lalu pilih Sales[SalesAmount], diikuti dengan tanda kurung tutup ).

    Langkah ini membuat argumen ekspresi pertama untuk fungsi CALCULATE kami.

  7. Ketik koma (,) diikuti dengan spasi untuk menentukan filter pertama, lalu ketik PREVIOUSQUARTER.

    Anda akan menggunakan fungsi kecerdasan waktu PREVIOUSQUARTER untuk memfilter hasil SUM menurut kuartal sebelumnya.

  8. Setelah tanda kurung buka ( untuk fungsi PREVIOUSQUARTER, ketik Calendar[DateKey].

    Fungsi PREVIOUSQUARTER memiliki satu argumen, kolom yang berisi rentang tanggal yang berdampingan. Dalam kasus kami, itu adalah kolom DateKey di tabel Kalender.

  9. Tutup kedua argumen yang diteruskan ke fungsi PREVIOUSQUARTER dan fungsi CALCULATE dengan mengetik dua kurung tutup )).

    Rumus Anda akan nampak seperti ini:

    Penjualan Kuartal Sebelumnya = CALCULATE(SUM(Sales[SalesAmount]), PREVIOUSQUARTER(Calendar[DateKey]))

  10. Pilih tanda Ikon tanda centang centang di bilah rumus atau tekan Enter untuk memvalidasi rumus dan menambahkannya ke tabel Penjualan.

Anda berhasil! Anda baru saja membuat pengukuran kompleks dengan menggunakan DAX. Apa yang akan dilakukan rumus ini adalah menghitung total penjualan untuk kuartal sebelumnya, tergantung pada filter yang diterapkan dalam laporan. Misalnya, kita dapat menempatkan SalesAmount dan pengukuran Penjualan Kuartal Sebelumnya yang baru dari tabel Penjualan ke dalam bagan kolom Berkluster. Kemudian dari tabel Kalender tambahkan Tahun sebagai pemotong dan pilih 2011. Kemudian setelah itu, tambahkan QuarterOfYear sebagai Pemotong lain dan pilih 4, dan kita mendapatkan bagan seperti ini:

Bagan Penjualan kuartal sebelumnya dan SalesAmount

Perlu diingat, model sampel hanya berisi sejumlah kecil data penjualan dari 1/1/2011 hingga 19/1/2013. Jika Anda memilih setahun atau kuartal di mana SalesAmount tidak dapat dijumlahkan, atau ukuran baru Anda tidak dapat menghitung data penjualan untuk kuartal saat ini atau sebelumnya, tidak ada data untuk periode tersebut yang ditampilkan. Misalnya, jika Anda memilih 2011 untuk Tahun dan 1 untuk QuarterOfYear, tidak ada data yang ditampilkan untuk Penjualan Kuartal Sebelumnya karena tidak ada data untuk kuartal keempat 2010.

Anda diperkenalkan ke beberapa aspek penting dari rumus DAX:

  • Rumus ini mencakup dua fungsi. PREVIOUSQUARTER, fungsi inteligensi waktu, ditumpuk sebagai argumen yang diteruskan ke CALCULATE, fungsi filter.

    Rumus DAX dapat berisi hingga 64 fungsi berlapis. Ini tidak mungkin rumus akan pernah berisi begitu banyak fungsi berlapis. Bahkan, rumus seperti itu akan sulit untuk dibuat dan di-debug, dan mungkin juga tidak akan cepat.

  • Dalam rumus ini, Anda juga menggunakan filter. Filter mempersempit apa yang akan dihitung. Dalam hal ini, Anda memilih satu filter sebagai argumen, yang sebenarnya merupakan hasil dari fungsi lain. Anda akan mempelajari selengkapnya tentang filter nanti.

  • Anda menggunakan fungsi CALCULATE. Fungsi ini adalah salah satu fungsi paling kuat di DAX. Saat Anda menulis model dan membuat rumus yang lebih kompleks, Anda mungkin akan menggunakan fungsi ini berkali-kali. Meskipun diskusi lebih lanjut tentang fungsi CALCULATE berada di luar cakupan artikel ini, saat pengetahuan Anda tentang DAX tumbuh, beri perhatian khusus padanya.

Syntax QuickQuiz

  1. Apa fungsi tombol ini pada bilah rumus?

    Pilihan tombol

  2. Apa yang selalu mengelilingi nama kolom dalam rumus DAX?

Jawaban disediakan di akhir artikel ini.

Fungsi

Fungsi adalah rumus yang telah ditentukan sebelumnya yang melakukan penghitungan dengan menggunakan nilai tertentu, yang disebut argumen, dalam urutan atau struktur tertentu. Argumen bisa berupa fungsi lain, rumus, ekspresi, referensi kolom, angka, teks, nilai logika seperti TRUE atau FALSE, atau konstanta.

DAX mencakup kategori fungsi berikut: Tanggal dan Waktu, Kecerdasan Waktu, Informasi, Logis, Matematika, Statistik, Teks, Induk/Anak, dan Fungsi lainnya. Jika Anda terbiasa dengan fungsi dalam rumus Excel, banyak fungsi di DAX akan tampak mirip dengan Anda; namun, fungsi DAX bersifat unik dengan cara berikut:

  • Fungsi DAX selalu mereferensikan kolom lengkap atau tabel. Jika Anda hanya ingin menggunakan nilai tertentu dari tabel atau kolom, Anda bisa menambahkan filter ke rumus.

  • Jika Anda perlu menyesuaikan perhitungan berdasarkan baris demi baris, DAX menyediakan fungsi yang memungkinkan Anda menggunakan nilai baris saat ini atau nilai terkait sebagai semacam argumen untuk melakukan penghitungan berdasarkan konteks. Anda akan mempelajari selengkapnya tentang konteks nanti.

  • DAX menyertakan banyak fungsi yang mengembalikan tabel daripada nilai. Tabel tidak ditampilkan, tetapi digunakan untuk memberikan input ke fungsi lain. Misalnya, Anda dapat mengambil tabel lalu menghitung nilai yang berbeda di dalamnya, atau menghitung jumlah dinamis di seluruh tabel atau kolom yang difilter.

  • DAX mencakup berbagai fungsi kecerdasan waktu. Fungsi-fungsi ini memungkinkan Anda menentukan atau memilih rentang tanggal, dan melakukan penghitungan dinamis berdasarkan rentang tersebut. Misalnya, Anda dapat membandingkan jumlah di seluruh periode paralel.

  • Excel memiliki fungsi populer, VLOOKUP. Fungsi DAX tidak mengambil rentang sel atau sel sebagai referensi seperti yang dilakukan VLOOKUP dalam Excel. Fungsi DAX mengambil kolom atau tabel sebagai referensi. Perlu diingat, dalam Power BI Desktop Anda bekerja dengan model data relasional. Mencari nilai dalam tabel lain itu mudah, dan dalam kebanyakan kasus Anda tidak perlu membuat rumus sama sekali.

    Seperti yang Anda lihat, fungsi di DAX dapat membantu Anda membuat rumus yang kuat. Kami hanya menyentuh dasar-dasar fungsi. Seiring bertambahnya keterampilan DAX, Anda akan membuat rumus dengan menggunakan banyak fungsi yang berbeda. Salah satu tempat terbaik untuk mempelajari detail tentang masing-masing fungsi DAX ada di Referensi Fungsi DAX.

Fungsi QuickQuiz

  1. Apa yang selalu dirujuk oleh fungsi?
  2. Bisakah rumus berisi lebih dari satu fungsi?
  3. Kategori fungsi apa yang akan Anda gunakan untuk menggabungkan dua string teks menjadi satu string?

Jawaban disediakan di akhir artikel ini.

Konteks

Konteks adalah salah satu konsep DAX paling penting untuk dipahami. Ada dua jenis konteks dalam DAX: konteks baris dan konteks filter. Pertama-tama kita akan melihat konteks baris.

Konteks baris

Konteks baris paling mudah dianggap sebagai baris saat ini. Ini berlaku setiap kali rumus memiliki fungsi yang menerapkan filter untuk mengidentifikasi satu baris dalam tabel. Fungsi ini secara inheren akan menerapkan konteks baris untuk setiap baris tabel tempatnya difilter. Jenis konteks baris ini paling sering berlaku untuk pengukuran.

Konteks filter

Konteks filter sedikit lebih sulit dipahami daripada konteks baris. Anda dapat dengan mudah memikirkan konteks filter sebagai: Satu atau beberapa filter diterapkan dalam perhitungan yang menentukan hasil atau nilai.

Konteks filter tidak ada yang menggantikan konteks baris; sebaliknya, ini berlaku selain konteks baris. Misalnya, untuk lebih mempersempit nilai untuk disertakan dalam perhitungan, Anda dapat menerapkan konteks filter, yang tidak hanya menentukan konteks baris, tetapi juga menentukan nilai tertentu (filter) dalam konteks baris tersebut.

Konteks filter mudah dilihat dalam laporan Anda. Misalnya, saat Anda menambahkan TotalCost ke visualisasi, lalu menambahkan Tahun dan Wilayah, Anda menentukan konteks filter yang memilih subkumpulan data berdasarkan tahun dan wilayah tertentu.

Mengapa konteks filter begitu penting bagi DAX? Anda telah melihat bahwa konteks filter dapat diterapkan dengan menambahkan bidang ke visualisasi. Konteks filter juga dapat diterapkan dalam rumus DAX dengan menentukan filter dengan fungsi seperti ALL, RELATED, FILTER, CALCULATE, by relationships, dan dengan pengukuran dan kolom lainnya. Misalnya, mari kita lihat rumus berikut dalam ukuran bernama Penjualan Store:

Ukuran Penjualan Toko

Untuk lebih memahami rumus ini, kita dapat memecahnya, seperti halnya dengan rumus lainnya.

Rumus ini mencakup elemen sintaks berikut:

J. Nama pengukuran, Penjualan Store.

B. Operator tanda sama dengan (=), yang menunjukkan awal rumus.

C. Fungsi CALCULATE, yang mengevaluasi ekspresi, sebagai argumen, dalam konteks yang dimodifikasi oleh filter yang ditentukan.

D. Tanda kurung (), yang mengelilingi ekspresi yang berisi satu atau beberapa argumen.

E. Pengukuran [Total Penjualan] dalam tabel yang sama dengan ekspresi. Ukuran Total Penjualan memiliki rumus: =SUM(Sales[SalesAmount]).

F. Koma (,), yang memisahkan argumen ekspresi pertama dari argumen filter.

G. Kolom referensi yang sepenuhnya memenuhi syarat, Channel[ChannelName]. Ini adalah konteks baris kami. Setiap baris dalam kolom ini menentukan saluran, seperti Toko atau Online.

H. Nilai tertentu, Store, sebagai filter. Ini adalah konteks filter kami.

Rumus ini memastikan hanya nilai penjualan yang ditentukan oleh ukuran Total Penjualan yang dihitung hanya untuk baris di kolom Channel[ChannelName], dengan nilai Store yang digunakan sebagai filter.

Seperti yang dapat Anda bayangkan, mampu menentukan konteks filter dalam rumus memiliki kemampuan yang sangat besar dan kuat. Kemampuan untuk mereferensikan hanya nilai tertentu dalam tabel terkait hanyalah salah satu contoh tersebut. Jangan khawatir jika Anda tidak sepenuhnya memahami konteks segera. Saat Anda membuat rumus Anda sendiri, Anda akan lebih memahami konteks dan mengapa itu sangat penting di DAX.

QuickQuiz Konteks

  1. Apa saja dua jenis VPN?
  2. Apa itu konteks filter?
  3. Apa itu konteks baris?

Jawaban disediakan di akhir artikel ini.

Ringkasan

Sekarang setelah Anda memiliki pemahaman dasar tentang konsep terpenting di DAX, Anda dapat mulai membuat rumus DAX untuk pengukuran Anda sendiri. DAX memang bisa sedikit sulit untuk dipelajari, tetapi ada banyak sumber daya yang tersedia untuk Anda. Setelah membaca artikel ini dan bereksperimen dengan beberapa rumus Anda sendiri, Anda dapat mempelajari lebih lanjut tentang konsep dan rumus DAX lainnya yang dapat membantu Anda memecahkan masalah bisnis Anda sendiri. Ada banyak sumber daya DAX yang tersedia untuk Anda; yang paling penting adalah Referensi Data Analysis Expressions (DAX).

Karena DAX telah ada selama beberapa tahun di alat Microsoft BI lainnya seperti model Tabular Power Pivot dan Analysis Services, ada banyak informasi sumber hebat di luar sana. Anda dapat menemukan informasi selengkapnya dalam buku, laporan resmi, dan blog dari Microsoft dan profesional BI terkemuka. Pusat Sumber Daya DAX juga merupakan tempat yang tepat untuk memulai.

Jawaban QuickQuiz

Sintaks:

  1. Memvalidasi dan memasukkan ukuran ke dalam model.
  2. Tanda kurung [].

fungsi:

  1. Tabel dan kolom.
  2. Ya. Rumus DAX dapat berisi hingga 64 fungsi berlapis.
  3. Fungsi Teks.

konteks:

  1. Konteks baris dan konteks filter.
  2. Satu atau beberapa filter dalam perhitungan yang menentukan satu nilai.
  3. Baris saat ini.