Lembar contekan fungsi power bi
Power BI adalah salah satu alat intelijen bisnis yang paling tangguh dan andal di luar sana. Salah satu fitur Power BI yang paling kuat adalah DAX (Data Analysis Expressions), yang merupakan ekspresi formula yang dirancang untuk analisis data tingkat lanjut. Rumus DAX berisi fungsi, operator, pernyataan, dan lainnya. Lembar contekan ini dirancang untuk menjadi pendamping praktis Anda saat bekerja dengan DAX di Power BI Show
Klik untuk mengunduh lembar contekan Sumber. datacamp. com Ini adalah kelanjutan dari artikel saya sebelumnya DAX Cheat sheet — Bagian 1. Dalam artikel ini, saya telah mendalami beberapa fungsi intelijen waktu DAX yang penting. Dokumentasi Microsoft dapat ditemukan di sini. Saya telah membahas ekspresi DAX berikut
Saya telah menggunakan campuran Power BI dan DAX Studio untuk mendemonstrasikan ukuran DAX khusus Contoh data Saya akan menggunakan model sampel Adventure Works DW 2020 yang dapat diunduh dari situs Microsoft. Saya telah menempatkan salinan PBIX di repo Github saya, tautannya ada di sini Skema Basis DataDataUntuk merasakan seperti apa datanya, saya telah menyajikan 5 baris teratas dari masing-masing tabel dalam database ini PelangganWilayah penjualanPengecerOrder penjualanPenjualanTanggalSebagian besar pengukuran DAX kustom yang disajikan di bawah ini ditulis di sekitar kolom Penjualan[Jumlah Penjualan]. Saya juga menambahkan tabel tanggal baru MyCalendar Tabel tanggal khusus di Power BI Untuk memahami cara kerja fungsi DAX intelijen Tanggal dan Waktu, kita akan mulai dengan membuat tabel Tanggal kustom. Model AdventureWorks juga dilengkapi dengan tabel tanggal. Ini adalah tabel bernama Tanggal dan ditautkan ke tabel Penjualan melalui kolom DateKey Apa itu tabel Tanggal dan mengapa kita membutuhkannya?Tabel tanggal sama seperti tabel lainnya di Power BI tetapi dengan beberapa persyaratan wajib seperti yang ditentukan oleh Power BI di sini
Mengapa tidak menggunakan tabel Tanggal yang sudah disertakan dengan AdventureWorks?2 alasan. Kami ingin mengeksplorasi kesempatan belajar ini untuk membuat tabel tanggal yang cukup canggih. Dan, dengan tidak bergantung pada hubungan, kita dapat mempelajari cara menikah dengan tujuan umum Tabel tanggal untuk melaporkan data berdasarkan tanggal waktu (Jumlah Penjualan dalam contoh ini) Bagaimana cara membuat tabel tanggal menggunakan DAX?Ada dua fungsi Power BI yang berguna untuk membuat tabel tanggal. Ini adalah CALENDAR dan CALENDARAUTO Saya telah mengambil inspirasi dari tutorial yang luar biasa ini untuk membuat tabel tanggal khusus dan menamainya sebagai MyCalendar MyCalendar = VAR myExtendedCalendar = ADDCOLUMNS( Struktur tabel MyCalendarMengatur properti pengurutan untuk kolom TeksKami hampir sampai. Tapi, ada satu langkah penting yang harus dilakukan. Kolom teks seperti Bulan, Hari Minggu, dan Kuartal perlu mengetahui urutan pengurutan. Perhatikan kolom Bulan. Saat kolom ini dipilih sebagai Kolom dalam visual Matriks, urutan pengurutan secara default akan berdasarkan abjad, yaitu. e. Desember datang sebelum Januari. Ini tidak benar. Kami ingin order Jan, Feb, March, April ,. Desember. Untuk mencapai ini, kita perlu menentukan MonthNumber sebagai kolom pengurutan untuk kolom Bulan Kami telah menyelesaikan pekerjaan dasar kami. Kami sekarang siap untuk memulai eksplorasi kami untuk memahami perilaku yang mendasari ekspresi DAX Hitung jumlah hari Minggu dalam periode waktu apa pun (FIRSTTDATE, LASTDATE, DATESBETWEEN) ObjektifIni adalah skenario mainan. Diberikan potongan waktu apa pun, bagaimana kita menemukan jumlah hari Minggu dalam periode itu? visual matriksukuran DAXNumberOfSundays = _Untuk kedua contoh yang disajikan di atas, kami menggunakan ukuran tunggal NumberOfFriday13th = 2. Ukurannya agnostik dari panjang periode waktu. Filter ROW di setiap visual memiliki semua informasi tentang baris dari tabel NumberOfFriday13th = 3. Kami menggunakan ekspresi NumberOfFriday13th = 4 dan NumberOfFriday13th = 5 untuk menemukan batas periode waktu di setiap sel. Ekspresi NumberOfFriday13th = _6 memberi kita tabel dari semua NumberOfFriday13th = 7 dalam batas-batas ini. Hitungan hari Minggu diekstrak dengan menggunakan ekspresi NumberOfFriday13th = 8Hitung jumlah kejadian hari Jumat tanggal 13 dalam periode waktu apa pun (FIRSTTDATE, LASTDATE, DATESBETWEEN) ObjektifIni adalah skenario mainan. Dalam contoh ini, kami menghitung kemunculan semua hari yang merupakan hari Jumat dan merupakan hari ke-13 setiap bulan. Ukuran DAX secara semantik identik dengan yang kami tulis untuk menghitung hari Minggu dalam periode waktu mana pun visual matriksukuran DAXNumberOfFriday13th = Menggunakan Pemotong untuk memilih jangka waktuUkuran DAX yang sama sekarang dapat digunakan untuk menampilkan hitungan "Friday the 13th" untuk jangka waktu yang dipilih secara acak Total penjualan dalam periode apa pun (FIRSTTDATE, LASTDATE,RELATED, FILTER) ObjektifMengingat waktu apa pun — hitung total penjualan dalam periode ini. Kami akan mencapai ini menggunakan 3 pendekatan berbeda
Opsi-1 Seret dan lepas di luar kotak (tanpa ukuran)Ini menjadi perhitungan yang cukup sederhana, kita dapat menarik dan melepaskan kolom Jumlah Penjualan dari Total Penjualan dan kemudian memilih opsi Sum dari menu konteks Opsi-2 Mengukur kueri mana yang menggunakan tabel Tanggal Pekerjaan PetualanganEkspresi FIRSTDATE dan LASTDATE pada tabel Tanggal di luar kotak memberi kita batasan periode waktu dalam konteks saat ini. DATESBETWEEN memberi kita semua tanggal dari tabel tanggal dan kita menggunakan ini untuk menyediakan filter dalam ekspresi CALCULATE TotalSalesInPeriodUsingAdWorksDate = Opsi-3 Mengukur kueri mana yang menggunakan tabel kustom MyCalendarVisual Matrix menggunakan tabel tanggal MyCalendar untuk merender hierarki. Oleh karena itu, dalam ukuran ini kami menggunakan FIRSTDATE dan LASTDATE untuk mendapatkan batas-batasnya. Ekspresi CALCULATE mengubah konteksnya dengan memfilter tabel tanggal Adventure Works TotalSalesInPeriodUsingMyCalendar = Penjualan dalam periode apa pun sebagai persentase dari Total Penjualan pada Tahun keuangan tersebut (FIRST DATE, LAST DATE,RELATED, FILTER) ObjektifTampilkan penjualan dalam periode waktu apa pun sebagai persentase dari total penjualan tahunan pada tahun finansial tersebut. Tahun keuangan akan dipilih menggunakan Pemotong pada kolom Kalender[Tahun Keuangan]. ukuran DAX% OfAnnualSalesInPeriod = //Step 1 - Calculate total sales in selected financial year HasilPenjualan kumulatif dalam sebulan (DATESMTD, HITUNG, FILTER, SUMX) ObjektifKami ingin menganalisis pertumbuhan penjualan yang progresif dari hari pertama bulan yang ditentukan hingga hari terakhir di bulan itu. Contoh. Penjualan kumulatif untuk tanggal 3 Juni akan menjadi jumlah penjualan pada tanggal 1 Juni dan 2 Juni. Ada beberapa cara untuk mencapai hal ini Ekspresi DAX DATESMTD akan menghasilkan tabel baru dengan semua tanggal dari awal bulan hingga hari konteks saat ini. Bagaimana ini berguna? . Kami akan melanjutkan dengan hati-hati di sini. Sebelum kita langsung menghitung penjualan, kita akan mencoba mendapatkan tanggal kumulatif untuk hari tertentu dalam sebulan. Setelah ini diperoleh, cukup mudah untuk melakukan langkah selanjutnya, i. e. menghitung penjualan kumulatif Langkah 1-DAX ekspresi untuk menghasilkan hitungan hari dalam bulan ini hingga saat iniDengan menggunakan ukuran DAX berikut, kami menampilkan total hari berjalan dari awal hingga tanggal saat ini. e. g. Pada tanggal 4 Februari hitungan kumulatif menjadi 4 (1 Februari, 2, 3, 4). Demikian juga untuk tanggal 5 Februari, totalnya menjadi 5. Mengapa kita membutuhkan total hari berjalan? DatesMtdDemo1 = Langkah 2-Penjualan kumulatif dalam sebulan — dengan cara yang sulitPada langkah sebelumnya kami memperoleh hitungan kumulatif hari dalam sebulan. Kami akan menggunakan informasi ini untuk MEMFILTER Penjualan. Dalam pengukuran DAX berikut, kami menggunakan DATESMTD untuk mendapatkan semua nilai tanggal dari awal bulan hingga hari ini dalam sebulan. Kolom Tanggal[Tanggal] difilter menggunakan daftar hari kumulatif. Nilai kumulatif Penjualan[Jumlah Penjualan] kemudian dihitung dengan menggunakan daftar hari DatesMtdDemo2 = Dalam ilustrasi berikut kami melakukan perbandingan berdampingan penjualan kumulatif pada hari terakhir bulan di sisi kiri dan total penjualan di bulan itu di sebelah kanan. Perhatikan bahwa total kumulatif pada 28 Feb (sisi kiri) sama dengan total keseluruhan bulanan pada Feb (sisi kanan) Penjualan kumulatif dalam sebulan — cara yang lebih mudah (TOTALMTD) ObjektifTujuan kami tetap sama seperti yang dinyatakan di bagian sebelumnya. Tapi, ada cara yang lebih sederhana untuk mencapai tujuan ini ukuran DAXUkuran DAX berikut mengharapkan hari ini bulan ini dalam konteks saat ini TotalMonthToDate = TOTALMTD(SUMX(Sales, [Sales Amount]),'Date'[Date]) Bagaimana kita bisa yakin bahwa TOTALMTD menghasilkan nilai yang sama dengan yang diperoleh pelanggan mengukur DatesMtdDemo2 yang kita tulis di bagian sebelumnya? Penjualan harian kumulatif dalam setiap bagian waktu (FIRSTTDATE,LATDATE,ALLSELECTED,RELATED) Objektif
Pengukuran DAX kustomCumulativeSalesInAnyPeriod = Perbandingan penjualan periode sekarang dengan periode yang sama tahun sebelumnya (DATEADD,FIRSTDATE,LASTDATE) secara berdampingan Pertimbangkan skenario di mana kami ingin membandingkan penjualan pada periode di tahun 2020 dan periode yang sama di tahun 2019. Fungsi DATEADD memungkinkan hal ini Pengukuran DAX untuk menghitung penjualan pada periode yang sama tahun laluNumberOfSundays = _0visual matriksVisual bagan kolom tergugusLonjakan penjualan bulanan (BULAN SEBELUMNYA) ObjektifKami ingin membandingkan pertumbuhan/penurunan penjualan dari bulan ke bulan. Mengingat tahun yang dipilih, kami ingin memplot histogram di mana setiap bulan kami ingin melihat perbedaan Penjualan di bulan itu w. r. t bulan sebelumnya ukuran DAXNumberOfSundays = _1Bagan kolom tergugusSTARTOFMONTH,ENDOFMONTH Dokumentasi Microsoft untuk STARTOFMONTH dan ENDOFMONTH dapat ditemukan di sini dan di sini. Untuk memahami cara kerja fungsi ini, mari kita menulis kueri DAX di tabel MyCalendar dan menampilkan hasilnya setiap bulan kueri DAX StudioNumberOfSundays = _2Hasil DAX StudioPenjualan harian sebagai persentase dari total penjualan bulanan (STARTOFMONTH, ENDOFMONTH) ObjektifKami ingin memplot penjualan harian sebagai persentase dari total penjualan di bulan itu untuk setiap bagian waktu tertentu ukuran DAXNumberOfSundays = _3VisualHARI BERIKUTNYA, SEBELUM USDDAY Dokumentasi Microsoft untuk NEXTDAY dan PREVIOUSDAY dapat ditemukan di sini dan di sini. Ini paling baik dipahami melalui kueri berikut yang ditulis di DAX Studio. Dalam kueri ini kami meringkas pertama berdasarkan Tahun, diikuti oleh Bulan dan kemudian menampilkan hasil HARI SEBELUMNYA/ HARI BERIKUTNYA kueri DAX StudioNumberOfSundays = _4Penyimpangan dari dokumentasi MicrosoftSaya mengamati sedikit perbedaan dalam perilaku fungsi NEXTDAY sesuai dokumentasi Microsof. Saat menulis artikel ini, kata dokumentasi MS Lonjakan Penjualan Harian (HARI SEBELUMNYA) ObjektifDiberikan setiap potongan waktu (mis. g a Month) plot perubahan harian dalam Penjualan. Contoh. Jika ini diplot pada bagan kolom, maka bilah untuk tanggal 5 Juni harus menunjukkan perbedaan antara penjualan pada tanggal 5 Juni dan 4 Juni. Ukuran kustomNumberOfSundays = _5VisualMULAI TAHUN, ENDOF TAHUN Dokumentasi Microsoft untuk STARTOFYEAR dan ENDOFYEAR dapat ditemukan di sini dan di sini. Ini paling baik dipahami melalui kueri berikut yang ditulis di DAX Studio. STARTOFYEAR dan ENDOFYEAR memiliki parameter kedua yang defaultnya adalah 31 Desember. Ini adalah akhir tahun keuangan Kueri studio DAX dengan akhir tahun defaultKami memeriksa perilaku saat kami tidak menentukan akhir tahun default apa pun (mis. e. 31 Desember) NumberOfSundays = _6Hasil dengan akhir tahun defaultEkspresi DAX saat menggunakan akhir tahun kustomNumberOfSundays = _7Hasil dengan akhir tahun khususKami sekarang menentukan akhir tahun khusus (15 Maret). 'Akhir tahun' mendefinisikan akhir tahun fiskal. Bagaimana perilaku berubah? PeringatanEkspresi DAX yang disajikan di atas menunjukkan kerentanan rumus STARTOFYEAR dan ENDOFYEAR terhadap parameter 'akhir tahun'. Jika ada kebutuhan akhir tahun khusus untuk memenuhi standar akuntansi keuangan, maka setiap perhitungan yang melibatkan STARTOFYEAR dan ENDOFYEAR harus memiliki parameter 'akhir tahun'. Hal ini membuat saya merasa lebih aman untuk menentukan periode keuangan melalui tabel tanggal khusus, seperti pada contoh MyCalendar[FinancialYear] dan juga pada tabel Date[Fiscal Year] Adventure Works DATESYTD Fungsi DATESYTD bekerja dengan cara yang mirip dengan DATESMTD. Fungsi menghasilkan tabel tanggal dengan tanggal mulai dari hari pertama tahun hingga tanggal saat ini dalam konteksnya. Perilaku fungsi ini sensitif terhadap parameter “year_end_date”. Secara default ini diatur ke 31 Desember. Kapan DATESYTD berguna? . (Lihat bagian DATESMTD). Mari kita tulis kueri DAX berikut untuk lebih memahami perilaku fungsi ini kueri DAX StudioNumberOfSundays = _8Perbedaan antara PARALLELPERIOD dan DATEADD Fungsi PARALLELPERIOD dan DATEADD tampak serupa. Namun, ada perbedaan penting. Dokumentasi Microsoft untuk PARALLELPERIOD dan DATEADD masing-masing dapat ditemukan di sini dan di sini. Perhatikan cetakan kecil dalam dokumentasi PARALLELPERIOD Fungsi PARALLELPERIOD mirip dengan fungsi DATEADD kecuali bahwa PARALLELPERIOD selalu mengembalikan periode penuh pada tingkat perincian yang diberikan, bukan periode parsial yang dikembalikan DATEADD. Misalnya, jika Anda memiliki pilihan tanggal yang dimulai pada 10 Juni dan berakhir pada 21 Juni di tahun yang sama, dan Anda ingin menggeser pilihan tersebut maju satu bulan, maka fungsi PARALLELPERIOD akan mengembalikan semua tanggal dari bulan berikutnya (Juli Mari kita menulis beberapa kueri DAX khusus untuk memahami perbedaannya. Di DAX berikut, kami membuat tabel KALENDER hanya dengan bulan Jan dan Feb (hingga 25) di tahun 2017. Kami merangkum hasilnya berdasarkan WEEKNUM dan menampilkan hasil FIRSTDATE/LASTDATE pada PARALLELPERIOD dan DATEADD. Kami meningkatkan PARALLELPERIOD/DATEADD dengan interval 1 bulan Studio DAXNumberOfSundays = _9HasilRentang pergerakan 10 hari (min-max) dari penjualan harian (FIRSTTDATE, DATEADD,RELATED,FILTER, SUMMARIZE, MAXX, MINX) ObjektifKami ingin melakukan analisis jendela bergerak dalam jangka waktu tertentu. Untuk setiap hari dalam periode ini, lihat kembali N hari dan hitung beberapa statistik selama jangka waktu N hari ini. Statistik tersebut dapat berupa penjualan harian rata-rata — umumnya dikenal sebagai “rata-rata bergerak” atau “rata-rata bergulir”. Demikian juga, kita juga bisa menghitung "moving range", yaitu. e. perbedaan antara penjualan harian tertinggi dan terendah selama jangka waktu N hari Pengukuran DAX kustomNumberOfFriday13th = 0HasilRata-rata pergerakan 10 hari dari penjualan harian (FIRSTDATE, DATEADD,RELATED,FILTER, SUMX) ObjektifMengambil inspirasi dari 'rentang pergerakan 10 hari', kami akan mencoba melakukan 'rata-rata pergerakan 10 hari'. Prinsipnya identik Apa fungsi dalam power bi?Fungsi adalah rumus yang telah ditentukan sebelumnya yang melakukan penghitungan dengan menggunakan nilai tertentu, yang disebut argumen, dalam urutan atau struktur tertentu . Argumen dapat berupa fungsi lain, rumus lain, ekspresi, referensi kolom, angka, teks, nilai logika seperti BENAR atau SALAH, atau konstanta.
Bagaimana Anda menggunakan fungsi di power bi?Mengaktifkan fungsi kustom sebagai kolom baru
. Di dalam jendela Aktifkan Fungsi Kustom, masukkan Tabel Output sebagai nama kolom Baru. Pilih nama fungsi Anda, Transform file, dari dropdown kueri Fungsi. Inside the Add Column tab in the ribbon, select Invoke Custom Function from the General group. Inside the Invoke Custom Function window, enter Output Table as the New column name. Select the name of your function, Transform file, from the Function query dropdown.
Apa fungsi DAX yang paling umum digunakan di power bi?Tipe fungsi DAX . Fungsi Tanggal dan Waktu. Fungsi waktu tanggal melakukan perhitungan pada nilai tanggal dan waktu. . Fungsi Kecerdasan Waktu. . Fungsi Informasi. . Fungsi Logika. . Fungsi Matematika dan Trigonometri. . Fungsi Statistik. . Fungsi Teks. . Fungsi Orangtua-Anak Apa itu rumus DAX?Data Analysis Expressions (DAX) adalah bahasa ekspresi formula yang digunakan di Analysis Services, Power BI, dan Power Pivot di Excel . Rumus DAX menyertakan fungsi, operator, dan nilai untuk melakukan penghitungan lanjutan dan kueri pada data dalam tabel dan kolom terkait dalam model data tabular. |