Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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. Kita 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 mendasar 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 mengembalikan satu atau beberapa 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 menunjukkan 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. Mempelajari 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 menyelesaikan 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.
Kami akan berfokus pada pemahaman rumus DAX yang digunakan dalam perhitungan, khususnya, dalam ukuran 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 Ukuran dan Kolom Terkalkulasi.
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 file Sampel Penjualan Contoso untuk Power BI Desktop. File sampel ini sama dengan yang digunakan dalam artikel Tutorial: Membuat pengukuran 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.
Sintaksis
Sebelum Anda membuat rumus Anda sendiri, mari kita lihat sintaks rumus DAX. Sintaks menyertakan berbagai elemen yang membentuk rumus, atau lebih sederhana, bagaimana rumus ditulis. Misalnya, berikut adalah rumus DAX sederhana untuk pengukuran:
Rumus ini mencakup elemen sintaks berikut:
A. Nama pengukuran adalah 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 lebih lanjut 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.
Saat 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 ukuran bernama Total Sales, hitung (=) JUMLAH nilai di kolom [SalesAmount ] dalam tabel Penjualan.
Saat ditambahkan ke laporan, langkah ini menghitung dan mengembalikan nilai dengan menjumlahkan jumlah penjualan untuk setiap bidang lain yang kami sertakan, misalnya, Telepon Seluler di AS.
Anda mungkin berpikir, "Bukankah tindakan ini melakukan hal yang sama seolah-olah saya hanya menambahkan bidang SalesAmount ke laporan saya?" Yah, ya. Tapi, ada alasan yang baik untuk membuat ukuran 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 ukuran 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 lainnya. Anda akan mempelajari lebih lanjut tentang fungsi nanti.
Anda juga melihat bahwa nama kolom [SalesAmount] didahului oleh tabel Penjualan tempat 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 dapat 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 berada dalam tabel yang sama.
Nota
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 nama berisi karakter apa pun di luar rentang karakter alfanumerik ANSI, terlepas dari apakah lokal Anda mendukung set karakter atau tidak.
Penting 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, digunakan untuk membuat rumus yang benar secara sinonis 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
Unduh dan buka file Power BI Desktop Sampel Penjualan Contoso.
Dalam tampilan Laporan, di daftar bidang, klik kanan tabel Penjualan , lalu pilih Pengukuran Baru.
Di bilah rumus, ganti Ukur dengan memasukkan nama pengukuran baru, Penjualan Kuartal Sebelumnya.
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 kami jumlahkan berdasarkan argumen yang kami teruskan 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.
Setelah kurung buka ( untuk fungsi CALCULATE , ketik SUM diikuti dengan tanda kurung pembuka lain (.
Selanjutnya, kita akan meneruskan argumen ke fungsi SUM.
Mulai ketik Sal, lalu pilih Sales[SalesAmount], diikuti dengan tanda kurung penutup ).
Langkah ini membuat argumen ekspresi pertama untuk fungsi CALCULATE kami.
Ketik koma (,) diikuti dengan spasi untuk menentukan filter pertama, lalu ketik PREVIOUSQUARTER.
Anda menggunakan fungsi kecerdasan waktu PREVIOUSQUARTER untuk memfilter hasil SUM berdasarkan kuartal sebelumnya.
Setelah 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.
Tutup kedua argumen yang diteruskan ke fungsi PREVIOUSQUARTER dan fungsi CALCULATE dengan mengetik dua tanda kurung penutup )).
Rumus Anda sekarang akan terlihat seperti ini:
Penjualan Kuartal Sebelumnya = CALCULATE(SUM(Sales[SalesAmount]), PREVIOUSQUARTER(Calendar[DateKey]))
Pilih
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 ukuran 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:
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 menyertakan 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 membatasi 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 kemungkinan 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.
Sintaks QuickQuiz
Apa fungsi tombol ini pada bilah rumus?
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 perhitungan dengan menggunakan nilai tertentu, yang disebut argumen, dalam urutan atau struktur tertentu. Argumen bisa berupa fungsi lain, rumus, ekspresi, referensi kolom, angka, teks, nilai logis seperti TRUE atau FALSE, atau konstanta.
DAX mencakup kategori fungsi berikut: Fungsi Tanggal dan Waktu, Inteligensi 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 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 memiliki banyak fungsi yang mengembalikan tabel alih-alih nilai. Tabel tidak ditampilkan, tetapi digunakan untuk memberikan input ke fungsi lain. Misalnya, Anda dapat mengambil tabel lalu menghitung nilai 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 sel atau rentang sel sebagai referensi seperti yang dilakukan VLOOKUP di Excel. Fungsi DAX mengambil kolom atau tabel sebagai referensi. Perlu diingat, di Power BI Desktop Anda bekerja dengan model data relasional. Mencari nilai dalam tabel lain mudah, dan dalam kebanyakan kasus Anda tidak perlu membuat rumus apa pun 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 berbagai fungsi. Salah satu tempat terbaik untuk mempelajari detail tentang masing-masing fungsi DAX ada di Referensi Fungsi DAX.
Functions QuickQuiz
- Apa yang selalu dirujuk oleh fungsi?
- Bisakah rumus berisi lebih dari satu fungsi?
- 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 dipahami 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.
Saring konteks
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 sebagai pengganti 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 dapat dengan mudah terlihat pada 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 Toko:
Untuk lebih memahami rumus ini, kita dapat memecahnya, seperti rumus lainnya.
Rumus ini mencakup elemen sintaks berikut:
A. Nama pengukuran, Penjualan Toko.
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, Simpan, 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 belum sepenuhnya memahami konteksnya. Saat Anda membuat rumus Anda sendiri, Anda akan lebih memahami konteks dan mengapa itu sangat penting di DAX.
QuickQuiz Konteks
- Apa saja dua jenis konteks?
- Apa itu konteks filter?
- 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 tindakan 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 menyelesaikan masalah bisnis Anda sendiri. Ada banyak sumber daya DAX yang tersedia untuk Anda; yang paling penting adalah Referensi Ekspresi Analisis Data (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
Sintaksis:
- Memvalidasi dan memasukkan ukuran ke dalam model.
- Tanda kurung siku [].
Fungsi:
- Tabel dan kolom.
- Ya. Rumus dapat berisi hingga 64 fungsi berlapis.
- Fungsi teks.
Konteks:
- Konteks baris dan konteks filter.
- Satu atau beberapa filter dalam perhitungan yang menentukan satu nilai.
- Baris saat ini.