Apa Itu Diri Dalam Python: Contoh Dunia Sebenar
Apa Itu Diri Dalam Python: Contoh Dunia Sebenar
Dalam catatan blog ini, kami akan meneroka penyelesaian saya kepada . Untuk cabaran ini, kami menyemak semula cabaran Problem of the Week pertama LuckyTemplates, di mana kami mencipta kalendar percutian kekal daripada gabungan tarikh tertentu dan relatif. Tetapi kali ini, kami hanya akan menggunakan Power Query . Anda boleh menonton video penuh tutorial ini di bahagian bawah blog ini.
Jika anda terperangkap pada pecahan masalah itu sendiri, anda boleh menyemak semula untuk melihat sama ada terdapat unsur dalam mana-mana pendekatan yang boleh membantu anda dengan cabaran ini.
Semasa membaca penyerahan, saya telah melihat gabungan orang yang memanfaatkan antara muka pengguna dan menulis fungsi tersuai untuk mencipta kalendar kekal. Sungguh menyeronokkan untuk menganalisis setiap entri, dan jika anda ingin mendapatkan inspirasi, saya menggalakkan anda melakukan perkara yang sama.
Apabila saya sendiri bekerja melalui senario ini, saya akhirnya mencipta pelbagai penyelesaian. Yang saya gunakan terbaik menggambarkan bagaimana anda bukan sahaja boleh memecahkan masalah kepada bahagian yang lebih kecil tetapi juga menjadikannya kelihatan . Ini sangat membantu jika anda menghadapi ralat atau hasil yang tidak dijangka.
Isi kandungan
Titik Permulaan Untuk Mencipta Kalendar Kekal
Jadual percutian mentah ini adalah titik permulaan kami. Untuk menyusun tarikh, kita memerlukan satu tahun, sebulan dan satu hari untuk tarikh tertentu. Yang hilang hanyalah tahun.
Tetapi untuk tarikh relatif, kita perlu melakukan lebih sedikit kerja. Sebagai permulaan, kita perlu membahagikan lajur hari itu kepada kedua-dua angka dan hari bekerja. Mari kita semak langkah-langkah tersebut.
Mendapatkan Tahun Dari Jadual Tarikh
Untuk menjadikan penyelesaian ini dinamik, saya akan mengambil tahun daripada jadual tarikh . Dalam bar formula, anda boleh melihat bahawa saya telah menggunakan unjuran untuk mendapatkan satu jadual lajur daripada jadual tarikh saya. Ini, sudah tentu, akan mengandungi pendua. Untuk mengalih keluarnya, saya telah menambahkan Table.Distinct .
Apabila saya mengklik ke tepi dalam ruang putih di sebelah mana-mana jadual ini, anda juga akan melihat senarai dengan tahun yang berbeza hadir dalam pertanyaan jadual tarikh saya.
Kami diberi nama bulan , tetapi kami sebenarnya memerlukan nombor bulan . Sekarang, apabila kita menggabungkan tahun kepada nama bulan, kita boleh menggunakan fungsi Date.From untuk mengembalikan yang pertama bulan itu sebagai nilai tarikh.
Dengan menambahkan Date.Month , kita hanya tinggal nombor bulan untuk tarikh tertentu itu. Untuk bulan Januari, ia mengembalikan 1. Untuk Februari, ia mengembalikan 2, dan seterusnya.
Mendapatkan Nombor Daripada Lajur Hari
Untuk mendapatkan angka daripada lajur hari, kami memutuskan untuk tidak membelah lajur dan sebaliknya mengekstrak nilai. Seperti yang anda boleh lihat dalam bar formula, kami menggunakan Text.BeforeDelimiter dan menggunakan ruang itu untuk mengenal pasti bahagian kanan dan kiri rentetan teks itu.
Jika tiada ruang, kami mahu mengembalikan apa sahaja yang tinggal dalam lajur hari. Jadi untuk rekod pertama, yang mengembalikan 1. Untuk rekod kedua yang mengandungi ruang itu, ia mengembalikan bahagian pertama rentetan teks, perkataan Ketiga .
Kami akan menggunakan pendekatan yang sama untuk mendapatkan nama tarikh, tetapi gunakan fungsi List.PositionOf . Ini mengembalikan offset berasaskan sifar bagi nilai dalam senarai yang diluluskan sebagai hujah pertama dan ia mengembalikan -1 jika nilai itu tidak muncul dalam senarai itu.
Untuk rekod pertama, ia melepasi nilai 1, yang tidak terdapat dalam senarai kami. Inilah sebabnya ia mengembalikan nilai -1. Untuk rekod kedua, ia mengembalikan nilai Isnin .
Ia menyerahkannya kepada fungsi kami dan mengembalikan 1 kerana ia adalah item kedua dalam senarai kami. Seterusnya, kami akan menggantikan semua nilai -1 dengan null .
Pada ketika ini, kami telah mencipta semua blok binaan yang kami perlukan untuk menggunakan fungsi tersuai.
Menggunakan Fungsi Tersuai Untuk Kalendar Cuti Abadi
Dalam bar formula, kita dapat melihat bahawa fungsi mengambil empat argumen: setahun , sebulan , angka dan hari bekerja .
Tetapi bagaimanakah ia menentukan nilai tarikh itu? Kami akan menggunakan List.PositionOf sekali lagi untuk mendapatkan nilai berangka bagi angka tersebut. Kami mempunyai senarai yang mengandungi pertama, kedua, ketiga dan keempat. Apabila kita menghantar nombor ke List.PositionOf , ia mengembalikan offset berasaskan sifar.
Sekali lagi, jika nilai tidak ada, ia mengembalikan -1. Jadi untuk rekod pertama, kami menghantar nilai 1. 1 tidak terdapat dalam senarai ini, itulah sebabnya ia mengembalikan nilai -1. Untuk rekod kedua, kami melepasi nilai Ketiga, iaitu item ketiga dalam senarai kami. Ini mengembalikan nilai 2.
Mencipta Senarai Tarikh
Sekarang mari kita buat senarai tarikh. Kami akan menentukan tarikh mula untuk bulan itu, menentukan bilangan hari dalam bulan itu dan menggunakan List.Dates untuk membuat senarai yang mengandungi semua hari dalam bulan itu.
Seterusnya, kami akan menggunakan List.Select untuk hanya mengekalkan tarikh tersebut pada hari bekerja tertentu.
Apabila kita mengklik ke sebelah sebelah mana-mana senarai ini, kita dapat melihat bahawa ia hanya mengandungi empat item ini.
Menggunakan Logik Bersyarat
Akhir sekali, kami akan menggunakan logik bersyarat untuk membina atau mendapatkan tarikh. Jika hari bekerja adalah null , menunjukkan kita mempunyai tarikh tertentu, kita boleh menggunakan #date intrinsik untuk membina nilai tarikh.
Jika angka bersamaan terakhir, maka kita boleh menggunakan fungsi List.Reverse untuk membalikkan susunan dalam senarai dan mengekstrak nilai pertama.
Jika kita ingin menukar tertib menaik ini kepada menurun, kita sentiasa boleh mengekstrak tarikh terakhir daripada julat tarikh tersebut. Tidak kira sama ada kita mempunyai empat atau lima elemen dalam senarai. Dengan membalikkan pesanan dan mengekstrak item pertama, kami sentiasa mempunyai tarikh terakhir.
Untuk semua kes lain, kami menggunakan List.Skip .
Kita boleh mengekstrak nilai berdasarkan kedudukan ini dalam senarai. Untuk hari Kesyukuran, angka adalah keempat, dan keempat mengembalikan 3. Ini akan melangkau tiga nilai pertama dalam senarai dan akan sentiasa mengembalikan item keempat.
Mari kita kumpulkan semuanya dan pergi ke pertanyaan penyelesaian. Untuk langkah sumber, kami memanggil jadual tarikh cuti RAW. Seterusnya, kami akan menambah lajur yang mengembalikan senarai dengan tarikh.
Menyemak Kod M Untuk Kalendar Cuti Abadi
Mari semak kod M untuk lajur. Untuk setiap baris dalam jadual, kami menyusun jadual yang mengandungi tahun yang berbeza daripada jadual tarikh. Kemudian kami menukar nilai dalam lajur tahun itu dengan memanggil fungsi tersuai.
Sudah tentu, untuk dapat menggunakan fungsi tersuai, kita perlu melakukan beberapa persediaan terlebih dahulu. Kita perlu mendapatkan nombor bulan , nilai nombor , dan sudah tentu, hari bekerja . Kemudian dari jadual bersarang itu, kami menyimpan senarai dengan tarikh.
Apabila kita mengklik ke tepi dalam ruang putih, kita boleh melihat pratonton senarai itu di bawah.
Langkah seterusnya ialah mengembangkan senarai itu dan menambah CelebratedOnDate .
Inilah logik yang kami gunakan dalam pengiraan ini: jika tarikh itu pada hari Sabtu, maka kami akan menolak satu hari supaya kami mendarat pada hari Jumaat. Jika hari Ahad, maka kita akan menambah hari untuk mendarat pada hari Isnin. Jika ia bukan hari Sabtu atau Ahad, maka kami mahu batal.
Akhir sekali, langkah terakhir ialah menukar jenis.
Kesimpulan
Sekadar peringatan ringkas bahawa ialah siri berterusan yang berlaku setiap hari Rabu ke-1 dan ke-3 di forum LuckyTemplates. Masalah yang disiarkan pada minggu pertama memerlukan penyelesaian berasaskan DAX, manakala masalah minggu ke-3 meminta penyelesaian berasaskan Power Query.
Jika anda menikmati kandungan yang diliputi dalam POTW ini, sila langgan saluran TV LuckyTemplates untuk maklumat lanjut. Kami mempunyai sejumlah besar kandungan yang keluar sepanjang masa daripada saya sendiri dan pelbagai pencipta kandungan, semuanya berdedikasi untuk menambah baik cara anda menggunakan LuckyTemplates dan Power Platform.
Melissa
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