Kalendar Cuti Kekal – POTW #12 (Penyelesaian Pertanyaan Kuasa)

Kalendar Cuti Kekal – POTW #12 (Penyelesaian Pertanyaan Kuasa)

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.

Kalendar Cuti Kekal – POTW #12 (Penyelesaian Pertanyaan Kuasa)

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.

Kalendar Cuti Kekal – POTW #12 (Penyelesaian Pertanyaan Kuasa)

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.

Kalendar Cuti Kekal – POTW #12 (Penyelesaian Pertanyaan Kuasa)

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 .

Kalendar Cuti Kekal – POTW #12 (Penyelesaian Pertanyaan Kuasa)

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.

Kalendar Cuti Kekal – POTW #12 (Penyelesaian Pertanyaan Kuasa)

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.

Kalendar Cuti Kekal – POTW #12 (Penyelesaian Pertanyaan Kuasa)

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.

Kalendar Cuti Kekal – POTW #12 (Penyelesaian Pertanyaan Kuasa)

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 .

Kalendar Cuti Kekal – POTW #12 (Penyelesaian Pertanyaan Kuasa)

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.

Kalendar Cuti Kekal – POTW #12 (Penyelesaian Pertanyaan Kuasa)

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 .

Kalendar Cuti Kekal – POTW #12 (Penyelesaian Pertanyaan Kuasa)

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 .

Kalendar Cuti Kekal – POTW #12 (Penyelesaian Pertanyaan Kuasa)

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.

Kalendar Cuti Kekal – POTW #12 (Penyelesaian Pertanyaan Kuasa)

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.

Kalendar Cuti Kekal – POTW #12 (Penyelesaian Pertanyaan Kuasa)

Seterusnya, kami akan menggunakan List.Select untuk hanya mengekalkan tarikh tersebut pada hari bekerja tertentu.

Kalendar Cuti Kekal – POTW #12 (Penyelesaian Pertanyaan Kuasa)

Apabila kita mengklik ke sebelah sebelah mana-mana senarai ini, kita dapat melihat bahawa ia hanya mengandungi empat item ini.

Kalendar Cuti Kekal – POTW #12 (Penyelesaian Pertanyaan Kuasa)

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.

Kalendar Cuti Kekal – POTW #12 (Penyelesaian Pertanyaan Kuasa)

Jika angka bersamaan terakhir, maka kita boleh menggunakan fungsi List.Reverse untuk membalikkan susunan dalam senarai dan mengekstrak nilai pertama.

Kalendar Cuti Kekal – POTW #12 (Penyelesaian Pertanyaan Kuasa)

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.

Kalendar Cuti Kekal – POTW #12 (Penyelesaian Pertanyaan Kuasa)

Untuk semua kes lain, kami menggunakan List.Skip .

Kalendar Cuti Kekal – POTW #12 (Penyelesaian Pertanyaan Kuasa)

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.

Kalendar Cuti Kekal – POTW #12 (Penyelesaian Pertanyaan Kuasa)

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.

Kalendar Cuti Kekal – POTW #12 (Penyelesaian Pertanyaan Kuasa)

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.

Kalendar Cuti Kekal – POTW #12 (Penyelesaian Pertanyaan Kuasa)

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.

Kalendar Cuti Kekal – POTW #12 (Penyelesaian Pertanyaan Kuasa)

Apabila kita mengklik ke tepi dalam ruang putih, kita boleh melihat pratonton senarai itu di bawah.

Kalendar Cuti Kekal – POTW #12 (Penyelesaian Pertanyaan Kuasa)

Langkah seterusnya ialah mengembangkan senarai itu dan menambah CelebratedOnDate .

Kalendar Cuti Kekal – POTW #12 (Penyelesaian Pertanyaan Kuasa)

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.

Kalendar Cuti Kekal – POTW #12 (Penyelesaian Pertanyaan Kuasa)

Akhir sekali, langkah terakhir ialah menukar jenis.

Kalendar Cuti Kekal – POTW #12 (Penyelesaian Pertanyaan Kuasa)

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

Apa Itu Diri Dalam Python: Contoh Dunia Sebenar

Apa Itu Diri Dalam Python: Contoh Dunia Sebenar

Cara Menyimpan & Memuatkan Fail RDS Dalam R

Cara Menyimpan & Memuatkan Fail RDS Dalam R

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.

N Hari Perniagaan Pertama Dilawati Semula – Penyelesaian Bahasa Pengekodan DAX

N Hari Perniagaan Pertama Dilawati Semula – Penyelesaian Bahasa Pengekodan DAX

Dalam tutorial bahasa pengekodan DAX ini, pelajari cara menggunakan fungsi GENERATE dan cara menukar tajuk ukuran secara dinamik.

Pamerkan Cerapan Menggunakan Teknik Visual Dinamik Berbilang Thread Dalam LuckyTemplates

Pamerkan Cerapan Menggunakan Teknik Visual Dinamik Berbilang Thread Dalam LuckyTemplates

Tutorial ini akan merangkumi cara menggunakan teknik Visual Dinamik Berbilang Thread untuk mencipta cerapan daripada visualisasi data dinamik dalam laporan anda.

Pengenalan Untuk Menapis Konteks Dalam LuckyTemplates

Pengenalan Untuk Menapis Konteks Dalam LuckyTemplates

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.

Petua Terbaik Menggunakan Aplikasi Dalam Perkhidmatan Dalam Talian LuckyTemplates

Petua Terbaik Menggunakan Aplikasi Dalam Perkhidmatan Dalam Talian LuckyTemplates

Saya ingin menunjukkan cara perkhidmatan dalam talian LuckyTemplates Apps boleh membantu dalam mengurus laporan dan cerapan berbeza yang dijana daripada pelbagai sumber.

Analisis Perubahan Margin Keuntungan Lebih Masa – Analitis Dengan LuckyTemplates Dan DAX

Analisis Perubahan Margin Keuntungan Lebih Masa – Analitis Dengan LuckyTemplates Dan DAX

Ketahui cara untuk menyelesaikan perubahan margin keuntungan anda menggunakan teknik seperti mengukur percabangan dan menggabungkan formula DAX dalam LuckyTemplates.

Idea Pewujudan Untuk Cache Data Dalam DAX Studio

Idea Pewujudan Untuk Cache Data Dalam DAX Studio

Tutorial ini akan membincangkan tentang idea pewujudan cache data dan cara ia mempengaruhi prestasi DAX dalam memberikan hasil.

Pelaporan Perniagaan Menggunakan LuckyTemplates

Pelaporan Perniagaan Menggunakan LuckyTemplates

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

Apakah LuckyTemplates Gateway? Semua yang Anda Perlu Tahu

Apakah LuckyTemplates Gateway? Semua yang Anda Perlu Tahu