Apa Itu Diri Dalam Python: Contoh Dunia Sebenar
Apa Itu Diri Dalam Python: Contoh Dunia Sebenar
Dalam blog hari ini, kami akan meneroka mengapa anda tidak boleh menggunakan fungsi DAX untuk mendapatkan Purata Setiap Kategori dan menyediakan beberapa penyelesaian alternatif untuk mendapatkan hasil yang sama yang anda inginkan. Anda boleh menonton video penuh tutorial ini di bahagian bawah blog ini .
Mendapatkan Purata Setiap Kategori dalam DAX adalah sangat rumit. Dengan menggunakan fungsi CALCULATE untuk menyelesaikan pengiraan ini, pengguna DAX baharu mungkin mendapati kod DAX lebih sukar untuk difahami daripada yang sepatutnya. Berita baiknya ialah terdapat penyelesaian yang lebih mudah untuk masalah ini.
Isi kandungan
Gambaran Keseluruhan Fungsi CALCULATE DAX
Beberapa bulan yang lalu, saya membentangkan pada untuk LuckyTemplates. Ia dipanggil DAX Counterculture di mana saya memberikan beberapa pandangan alternatif tentang DAX.
Salah satu yang utama berkaitan dengan penggunaan fungsi CALCULATE. Saya bercakap tentang mengapa anda tidak perlu menggunakan CALCULATE terutamanya jika anda baru menggunakan DAX.
CALCULATE adalah fungsi yang sangat kompleks untuk difahami dan digunakan. Ia membuat andaian tertentu tentang model data anda dan boleh menyebabkan anda menghadapi banyak masalah.
Saya juga menggali langkah pantas Microsoft untuk Running Total kerana ia tidak berfungsi dalam situasi jadual tunggal dan ia memerlukan skema bintang untuk berfungsi dengan betul.
Jadi, saya menunjukkan alternatif yang lebih mudah yang berfungsi sama ada skema bintang atau model jadual tunggal tanpa perlu MENGIRA.
KIRA Formula DAX
Blog ini akan menyelidiki langkah pantas yang dipanggil Purata Setiap Kategori . Jika anda berada dalam desktop LuckyTemplates, mulakan dengan pergi ke anak tetingkap Medan dan buat ukuran pantas baharu .
Dalam tetingkap Quick Measure yang akan timbul, pilih Purata setiap kategori dalam menu lungsur Pengiraan . Kemudian, seret ? Nilai dalam medan teks Nilai Asas dan Bulan dalam medan Kategori .
Kemudian klik OK dan anda akan mendapat visual yang kelihatan seperti ini.
Dalam paksi-x ialah suku-suku—Suku 1, 2, 3, dan 4.
Dan perkara yang anda mahu lakukan ialah jumlahkan nilai untuk setiap bulan yang ditunjukkan di bawah dan kemudian ambil purata merentas nilai tersebut. Pendek kata, Purata Setiap Kategori, yang menjadi topik blog kami.
Model data kami untuk ini sangat mudah. Kami mempunyai jadual dengan Tarikh , Nilai yang dijana secara rawak dan Bulan , Isih Bulan dan Suku dalam lajur yang berasingan.
Dan kami mempunyai perkara yang sama dalam jadual tarikh kami dengan Jadual Kalendar, Bulan, Susun Bulan dan Suku. Ini bermakna kita boleh memilih Suku Tahun atau Bulan daripada jadual tarikh atau jadual pertama.
Berita baik dengan Purata Setiap Kategori ialah ia sebenarnya berfungsi tanpa mengira sama ada anda mempunyai model jadual tunggal atau skema bintang.
Dalam visual ini, kami menggunakan Suku dari jadual pertama…
…sementara yang ini menggunakan Suku Tahun daripada jadual tarikh kami. Ia berfungsi sama ada cara.
Tetapi masalah dengan Purata Setiap Kategori hanyalah kod DAX.
Kod DAX ini pelik, kerana walaupun anda seorang pakar DAX, ia mungkin akan mengelirukan anda pada pandangan pertama. Ia secara anehnya dibina dengan penyata CALCULATE tanpa klausa penapis dan hanya membungkus penyata jumlah.
Malah, ini adalah salah satu kegusaran saya apabila saya melihat orang keluar di forum yang menggunakan CALCULATE yang hanya membungkus jumlah tanpa sebab. Tetapi dalam kes ini, ia sebenarnya mempunyai sebab.
Ia membingungkan fikiran saya apabila saya melihatnya kerana ia hanyalah petunjuk segera bahawa mereka tidak tahu apa yang mereka lakukan dengan fungsi CALCULATE. Jadi saya cadangkan untuk menjauhkan diri daripadanya.
Kod DAX Untuk Purata Setiap Kategori
Kod DAX yang ditunjukkan di atas menggunakan . Fungsi ini tiada dalam segmen CALCULATE, yang sekali lagi, menjadikannya pelik. Sepatutnya, fungsi ini dibina untuk digunakan dalam penyata CALCULATE berdasarkan dokumentasinya.
Kod ini juga menggunakan , yang saya tidak bersetuju. Mereka tidak boleh menggunakan VALUES kerana nilai yang berbeza mempunyai kecenderungan untuk mengembalikan baris kosong jika terdapat baris yang tidak sepadan. Itu boleh menyebabkan anda menghadapi banyak masalah, tetapi itu adalah subjek untuk video lain.
Pada asasnya, apa yang berlaku di sini ialah mereka menggunakan fungsi VALUES untuk mendapatkan semua kategori kami. Contohnya pada Suku Tahun 1, iaitu Januari, Februari dan Mac. VALUES juga mengembalikan jadual tetapi mereka menggunakan pernyataan KEEPFILTER untuk menjadikannya sah sebagai parameter pertama dalam .
Mereka juga mengekalkan fungsi CALCULATE untuk dilaksanakan dalam konteks KEEPFILTERS. Oleh kerana cara AVERAGEX berfungsi, ia mengambil ungkapan kedua dan melaksanakannya dalam konteks ungkapan pertama.
Apa Masalahnya, Kemudian?
Secara keseluruhan, ia berfungsi dengan baik tetapi tidak untuk seseorang yang baru mengenali DAX. Saya percaya Microsoft benar-benar merindui bot apabila mereka mencipta langkah pantas ini kerana langkah pantas sepatutnya untuk orang yang baru mengenali DAX.
Langkah pantas ialah idea yang bagus, seperti "Mari tulis beberapa ukuran biasa dengan pengiraan yang berbeza untuk anda kerana anda baru menggunakan DAX dan anda tidak tahu semua yang perlu diketahui tentang DAX." Tetapi mengapa mereka membinanya dengan cara yang aneh dan rumit?
Bagaimanakah seseorang yang baru mengenali DAX sepatutnya melihat perkara ini dan mengetahui apa yang berlaku walaupun mungkin profesional DAX menggaru kepala mereka sedikit mengenai perkara ini?
Jadi bagi saya, mereka terlepas peluang keemasan untuk membantu orang ramai mempelajari DAX dengan langkah pantas mereka dengan menegaskan bahawa mereka menyertakan CALCULATE dan perlu melompat melalui gelung untuk mendapatkan CALCULATE di sana.
Penyelesaian yang Lebih Mudah
Menggunakan Fungsi SUMMARIZE
Seperti yang saya nyatakan sebelum ini, ada cara yang lebih baik dan lebih mudah untuk melakukannya.
Mula-mula, buat pembolehubah jadual menggunakan VAR_Table . Kemudian, kami akan menggunakan untuk mengambil Jadual, meringkaskannya mengikut Bulan, mencipta lajur Nilai dan meringkaskan nilai kami.
Akhir sekali, kami akan mengambil purata nilai kami menggunakan fungsi AVERAGEX .
Kod ini lebih mudah dan lebih logik. Ia tidak termasuk CALCULATE, yang anda tidak perlukan lagi.
Anda mungkin terjumpa artikel blog di luar sana yang mengkritik SUMMARIZE. Blog mengatakan cara SUMMARIZE berfungsi secara dalaman agak rumit.
Ia juga mencadangkan anda boleh menyebabkan diri anda menghadapi masalah dalam satu kes tertentu tetapi anda tidak akan pernah menghadapinya. Itu hanya akan berlaku jika pengiraan anda melibatkan pengiraan yang sangat kompleks dan jadual yang sangat besar. Hanya dengan itu SUMMARIZE akan memberikan anda hasil yang mengenyangkan.
Sekurang-kurangnya itulah yang didakwa oleh artikel blog. Dan tidak mengapa jika anda ingin menjauhkan diri dari SUMMARIZE. Dalam kes itu, gunakan fungsi sebaliknya.
Menggunakan Fungsi GROUPBY
Tiada siapa yang mempunyai masalah menggunakan fungsi GROUPBY jadi mari kita pelajari cara menggunakannya juga. Sekali lagi, buat pembolehubah Jadual menggunakan VAR_Table. Kemudian, kami GROUPBY Bulan dan mencipta lajur Nilai.
Seterusnya, kami menggunakan menggunakan CURRENTGROUP , iaitu cara GROUPBY berfungsi. Mari kita jumlahkan Nilai kita dan sekali lagi ambil AVERAGEX merentasinya.
Kod kami sepatutnya kelihatan seperti ini.
Membandingkan Keputusan: SUMMARIZE lwn GROUPBY lwn CALCULATE DAX Fungsi
Sekarang, mari lihat sama ada pintasan yang kami lakukan mengembalikan hasil yang sama.
Seperti yang anda boleh lihat dalam imej di bawah, kedua-dua SUMMARIZE yang dilabelkan sebagai Better Average Setiap Kategori dan GROUPBY yang dilabelkan sebagai Better Average Setiap Kategori 2 mengembalikan nombor yang sama.
Kedua-dua formula kami mengembalikan 3.4K untuk Q1, 3.6K untuk Q2, 3.4K untuk Q3 dan 3.5K untuk Q4. Dan sekali lagi, mereka berfungsi dalam model data jadual tunggal menggunakan Quarters untuk jadual kami.
Mereka juga berfungsi dalam skema bintang di mana kami menggunakan Suku dalam jadual tarikh kami.
Langkah Pantas – Cara Menggunakannya Dalam Model LuckyTemplates
Menggunakan Fungsi Kira Di Dalam LuckyTemplates
Cara Berkesan Untuk Menggunakan Fungsi GROUPBY Dalam LuckyTemplates
Kesimpulan
Kita tidak perlu memaksa diri kita ke dalam logik konteks yang berpintal hanya untuk mendapatkan KIRA ke dalam formula kita. Hanya gunakan fungsi DAX standard yang mudah dan anda boleh mencapai perkara yang sama.
Malah, mungkin dalam 80% – 90% kes, langsung tiada sebab untuk bersusah payah menggunakan CALCULATE untuk apa-apa sahaja. Sebaliknya, anda boleh menggunakan fungsi SUMMARIZE dan GROUPBY yang lebih mudah dan logik.
Jika anda ingin meneroka fail PBIX ini, saya telah menerbitkannya ke Galeri Langkah Pantas dan menamakan fail Purata Lebih Baik Setiap Kategori . Hanya tatal ke bawah halaman untuk mencari fail PBIX yang boleh anda muat turun dan anda bermain dengan diri anda sendiri.
Semua yang terbaik,
Greg Deckler
Apa Itu Diri Dalam Python: Contoh Dunia Sebenar
Anda akan belajar cara menyimpan dan memuatkan objek daripada fail .rds dalam R. Blog ini juga akan membincangkan cara mengimport objek dari R ke LuckyTemplates.
Dalam tutorial bahasa pengekodan DAX ini, pelajari cara menggunakan fungsi GENERATE dan cara menukar tajuk ukuran secara dinamik.
Tutorial ini akan merangkumi cara menggunakan teknik Visual Dinamik Berbilang Thread untuk mencipta cerapan daripada visualisasi data dinamik dalam laporan anda.
Dalam artikel ini, saya akan menjalankan konteks penapis. Konteks penapis ialah salah satu topik utama yang perlu dipelajari oleh mana-mana pengguna LuckyTemplates pada mulanya.
Saya ingin menunjukkan cara perkhidmatan dalam talian LuckyTemplates Apps boleh membantu dalam mengurus laporan dan cerapan berbeza yang dijana daripada pelbagai sumber.
Ketahui cara untuk menyelesaikan perubahan margin keuntungan anda menggunakan teknik seperti mengukur percabangan dan menggabungkan formula DAX dalam LuckyTemplates.
Tutorial ini akan membincangkan tentang idea pewujudan cache data dan cara ia mempengaruhi prestasi DAX dalam memberikan hasil.
Jika anda masih menggunakan Excel sehingga sekarang, maka inilah masa terbaik untuk mula menggunakan LuckyTemplates untuk keperluan pelaporan perniagaan anda.
Apakah LuckyTemplates Gateway? Semua yang Anda Perlu Tahu