Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Tässä blogiviestissä tutkimme ratkaisuani . Tätä haastetta varten palasimme LuckyTemplatesin neitsytongelman Viikon haasteeseen, jossa loimme ikuisen lomakalenterin tiettyjen ja suhteellisten päivämäärien yhdistelmästä. Mutta tällä kertaa käytämme vain Power Queryä . Voit katsoa tämän opetusohjelman koko videon tämän blogin alaosasta.

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Jos olet jumissa itse ongelman erittelyssä, voit käydä uudelleen ja nähdä, onko jossain lähestymistavassa elementtejä, jotka voivat auttaa sinua tässä haasteessa.

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Kun luin kommentteja, olen nähnyt yhdistelmän ihmisiä hyödyntävän käyttöliittymää ja kirjoittavan mukautettuja toimintoja luodakseen ikuisen kalenterin. On ollut nautinnollista analysoida jokaista tekstiä, ja jos haluat saada inspiraatiota, kehotan sinua tekemään samoin.

Kun työskentelin itse tämän skenaarion läpi, päädyin luomaan useita ratkaisuja. Se, jonka kanssa menin, havainnollistaa parhaiten, kuinka voit paitsi jakaa ongelman pienempiin osiin , myös tehdä niistä näkyväksi . Tämä on erittäin hyödyllistä, jos kohtaat virheen tai odottamattomia tuloksia.

Sisällysluettelo

Lähtökohta ikuisen kalenterin luomiselle

Tämä raaka juhlapöytä on lähtökohtamme. Päivämäärän kokoamiseksi tarvitsemme vuoden, kuukauden ja päivän tiettyjä päivämääriä varten. Puuttuu vain vuosi.

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Mutta suhteellisia päivämääriä varten meidän on tehtävä hieman enemmän työtä. Ensinnäkin meidän on jaettava tämä päiväsarake sekä numeroiksi että viikonpäiväksi. Tarkastellaan näitä vaiheita.

Haetaan vuodet päivämäärätaulukosta

Jotta tämä ratkaisu olisi dynaaminen, haen vuodet päivämäärätaulukosta . Kaavapalkissa näet, että olen käyttänyt projektiota saadakseni yhden sarakkeen taulukon päivämäärätaulukostani. Tämä tietysti sisältää kaksoiskappaleita. Niiden poistamiseksi olen lisännyt Table.Distinct .

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Kun napsautan näiden taulukoiden vieressä olevaa valkoista tilaa, näet myös luettelon, jossa on päivämäärätaulukkokyselyssäni olevat erilliset vuodet.

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Meille annettiin kuukauden nimi , mutta tarvitsemme itse asiassa kuukausinumeron . Nyt kun yhdistämme vuoden kuukauden nimeen, voimme käyttää Date.From- funktiota palauttamaan kyseisen kuukauden ensimmäisen päivämäärän arvona.

Kun lisäät Date.Month , meille jää vain kyseisen päivämäärän kuukausinumero. Tammikuulle se palauttaa arvon 1. Helmikuulle se palauttaa 2:n ja niin edelleen.

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Numeron saaminen päiväsarakkeesta

Saadaksemme numeron päiväsarakkeesta päätimme olla jakamatta saraketta ja poimia sen sijaan arvon. Kuten näet kaavapalkista, käytimme Text.BeforeDelimiter- työkalua ja käytimme tätä välilyöntiä tunnistaaksemme kyseisen tekstijonon oikean ja vasemman osan.

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Jos tilaa ei ole, haluamme palauttaa sen, mitä päiväsarakkeessa on jäljellä. Joten ensimmäiselle tietueelle se palauttaa arvon 1. Toiselle tietueelle, joka sisältää kyseisen tilan, se palauttaa tekstimerkkijonon ensimmäisen osan, sanan Kolmas .

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Käytämme samanlaista lähestymistapaa päivämäärän nimen saamiseen, mutta käytämme funktiota List.PositionOf . Tämä palauttaa ensimmäisenä argumenttina välitetyn luettelon arvon nollapohjaisen poikkeaman, ja se palauttaa -1, jos arvoa ei näy luettelossa.

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Ensimmäisessä tietueessa se ohittaa arvon 1, jota ei ole luettelossamme. Tästä syystä se palauttaa arvon -1. Toiselle tietueelle se palauttaa arvon Monday .

Se välittää sen funktiollemme ja palauttaa arvon 1, koska se on luettelomme toinen kohde. Seuraavaksi korvaamme kaikki -1-arvot nollalla .

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Tässä vaiheessa olemme luoneet kaikki rakennuspalikat, joita tarvitsemme mukautetun toiminnon käynnistämiseksi.

Pysyvän lomakalenterin mukautetun toiminnon käyttäminen

Kaavapalkissa näemme, että funktiolla on neljä argumenttia: vuosi , kuukausi , numero ja viikonpäivä .

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Mutta miten se määrittää päivämäärän arvon? Käytämme List.PositionOf-funktiota uudelleen saadaksemme numerolle numeerisen arvon. Meillä on luettelo, joka sisältää ensimmäisen, toisen, kolmannen ja neljännen. Kun siirrämme numeron List.PositionOf -kohtaan , se palauttaa nollapohjaisen siirtymän.

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Jälleen, jos arvoa ei ole, se palauttaa -1. Joten ensimmäiselle tietueelle välitämme arvon 1. 1 ei ole tässä luettelossa, minkä vuoksi se palauttaa arvon -1. Toisen tietueen osalta välitämme arvon Third, joka on kolmas kohde luettelossamme. Tämä palauttaa arvon 2.

Päivämääräluettelon luominen

Luodaan nyt lista päivämääristä. Määritämme kyseisen kuukauden aloituspäivän, määritämme päivien lukumäärän kyseisessä kuukaudessa ja käytämme List.Dates- komentoa luodaksemme luettelon, joka sisältää kaikki kyseisen kuukauden päivät.

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Seuraavaksi käytämme List.Selectiä säilyttääksesi vain ne päivämäärät, jotka ovat tiettynä viikonpäivänä.

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Kun napsautamme näiden luetteloiden vieressä olevaa reunaa, voimme nähdä, että se sisältää vain nämä neljä kohdetta.

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Ehdollisen logiikan soveltaminen

Lopuksi käytämme ehdollista logiikkaa päivämäärän muodostamiseen tai hakemiseen. Jos viikonpäivä on nolla , mikä osoittaa, että meillä on tietty päivämäärä, voimme käyttää luontaista #date -arvoa päivämääräarvon muodostamiseen.

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Jos numero on yhtä kuin viimeinen, voimme käyttää List.Reverse -funktiota kääntämään järjestyksen luettelossa ja poimimaan ensimmäisen arvon.

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Jos haluamme muuttaa tämän nousevan järjestyksen laskevaksi, voimme aina poimia viimeisen päivämäärän kyseiseltä päivämääräalueelta. Ei ole väliä, onko luettelossa neljä vai viisi elementtiä. Kääntämällä tilauksen ja poistamalla ensimmäisen tuotteen, meillä on aina viimeinen päivämäärä.

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Kaikissa muissa tapauksissa käytämme List.Skip .

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Voimme poimia arvon tämän luettelon sijainnin perusteella. Kiitospäivänä numero on neljäs ja neljäs palauttaa 3:n. Tämä ohittaa luettelon kolme ensimmäistä arvoa ja palauttaa aina neljännen kohteen.

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Laitetaan kaikki yhteen ja siirrytään ratkaisukyselyyn. Lähdevaiheessa kutsumme RAW-lomien päivämäärätaulukkoa. Seuraavaksi lisäämme sarakkeen, joka palauttaa luettelon päivämäärineen.

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Perpetuaalisen lomakalenterin M-koodin tarkistaminen

Tarkistetaan sarakkeen M-koodi. Jokaiselle taulukon riville sisäkkäsimme taulukon, joka sisältää päivämäärätaulukosta erilliset vuodet. Sitten muutimme kyseisen vuosisarakkeen arvot kutsumalla mukautettua funktiota.

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Tietysti, jotta voimme kutsua mukautetun toiminnon, meidän on ensin suoritettava asetukset. Meidän on saatava kuukauden numero , numeroarvo ja tietysti viikonpäivä . Sitten siitä sisäkkäisestä taulukosta säilytimme luettelon päivämäärineen.

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Kun napsautamme sivulle valkoista tilaa, voimme nähdä luettelon esikatselun alla.

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Seuraava vaihe on laajentaa luetteloa ja lisätä CelebratedOnDate .

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Tätä logiikkaa käytimme tässä laskelmassa: jos päivämäärä on lauantai, vähennämme päivän niin, että laskeudumme perjantaina. Jos on sunnuntai, lisäämme päivän maanantaille laskeutumiseen. Jos se ei ole lauantai tai sunnuntai, haluamme nollan.

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Lopuksi viimeinen vaihe on vaihtaa tyyppejä.

Perpetual Holiday Calendar – POTW #12 (Power Query Solution)

Johtopäätös

Pikainen muistutus siitäon jatkuva sarja, joka tapahtuu joka 1. ja 3. keskiviikko LuckyTemplates-foorumilla. Ensimmäisellä viikolla julkaistu ongelma vaatii DAX-pohjaisen ratkaisun, kun taas 3. viikon ongelma vaatii Power Query -pohjaista ratkaisua.

Jos pidit tämän POTW:n kattamasta sisällöstä, tilaa LuckyTemplates TV-kanava saadaksesi lisää. Meillä on jatkuvasti valtava määrä sisältöä minulta ja useilta sisällöntuottajilta, jotka kaikki ovat omistautuneet parantamaan tapaa, jolla käytät LuckyTemplatesia ja Power Platformia.

Melissa


Päivämäärätaulukon luominen LuckyTemplatesissa

Päivämäärätaulukon luominen LuckyTemplatesissa

Ota selvää, miksi LuckyTemplatesissa on tärkeää pitää oma päivämäärätaulukko ja opi nopein ja tehokkain tapa tehdä se.

LuckyTemplates mobiiliraportointivinkkejä ja -tekniikoita

LuckyTemplates mobiiliraportointivinkkejä ja -tekniikoita

Tämä lyhyt opetusohjelma korostaa LuckyTemplates-mobiiliraportointiominaisuutta. Näytän sinulle, kuinka voit kehittää raportteja tehokkaasti mobiililaitteille.

Ammattimainen palveluanalyysiraportit LuckyTemplatesissa

Ammattimainen palveluanalyysiraportit LuckyTemplatesissa

Tässä LuckyTemplates Showcase -esittelyssä käymme läpi raportteja, jotka näyttävät ammattitaitoisen palveluanalytiikan yritykseltä, jolla on useita sopimuksia ja asiakkaiden sitoumuksia.

Microsoft Power Platform -päivitykset | Microsoft Ignite 2021

Microsoft Power Platform -päivitykset | Microsoft Ignite 2021

Käy läpi tärkeimmät Power Appsin ja Power Automaten päivitykset sekä niiden edut ja vaikutukset Microsoft Power Platformiin.

Yleiset SQL-funktiot: Yleiskatsaus

Yleiset SQL-funktiot: Yleiskatsaus

Tutustu joihinkin yleisiin SQL-toimintoihin, joita voimme käyttää, kuten merkkijono, päivämäärä ja joitain lisätoimintoja tietojen käsittelyyn tai käsittelyyn.

LuckyTemplates-mallin luominen: opas ja vinkkejä

LuckyTemplates-mallin luominen: opas ja vinkkejä

Tässä opetusohjelmassa opit luomaan täydellisen LuckyTemplates-mallin, joka on määritetty tarpeidesi ja mieltymystesi mukaan.

Kenttäparametrit ja pienet kertoimet LuckyTemplatesissa

Kenttäparametrit ja pienet kertoimet LuckyTemplatesissa

Tässä blogissa esittelemme, kuinka kerrostat kenttäparametreja pienillä kerroilla uskomattoman hyödyllisten näkemysten ja visuaalien luomiseksi.

LuckyTemplates-sijoitus ja mukautettu ryhmittely

LuckyTemplates-sijoitus ja mukautettu ryhmittely

Tässä blogissa opit käyttämään LuckyTemplates-sijoitus- ja mukautettuja ryhmittelyominaisuuksia näytetietojen segmentoimiseen ja luokitteluun kriteerien mukaan.

LuckyTemplatesissa näytetään vain tiettyyn päivämäärään asti kumulatiivinen kokonaissumma

LuckyTemplatesissa näytetään vain tiettyyn päivämäärään asti kumulatiivinen kokonaissumma

Tässä opetusohjelmassa käsittelen tiettyä tekniikkaa, jolla voit näyttää kumulatiivisen kokonaissumman LuckyTemplates-visuaaleissasi vain tiettyyn päivämäärään asti.

Bullet Charts: Kehittyneet mukautetut visuaalit LuckyTemplatesille

Bullet Charts: Kehittyneet mukautetut visuaalit LuckyTemplatesille

Opi luomaan ja mukauttamaan Bullet-kaavioita LuckyTemplatesissa, joita käytetään pääasiassa suorituskyvyn mittaamiseen suhteessa tavoitteeseen tai edellisiin vuosiin.