Wat is zelf in Python: voorbeelden uit de echte wereld
Wat is zelf in Python: voorbeelden uit de echte wereld
In deze zelfstudie wordt besproken hoe u een specifieke datum in uw LuckyTemplates-gegevensrapporten kunt kiezen of filteren . Het materiaal dat in deze tutorial wordt gebruikt, is afkomstig van het . U leert hoe u het probleem oplost en begrijpt de gebruikte methoden. Je kunt de volledige video van deze tutorial onderaan deze blog bekijken.
Inhoudsopgave
Het gegevensrapport in LuckyTemplates begrijpen
Dit is het voorbeeldgegevensrapport dat zal worden gebruikt. Het bestaat uit één tabelvisual en twee slicers.
Het doel is om een datumselectie te hebben boven de kolom Datum op de slicer. Dit betekent dat zodra een datum in de slicer is geselecteerd, de tabelvisualisatie de voorgaande dagen toont met een interval van 7 dagen. In dit voorbeeld zijn de geselecteerde gegevens in de datumslicer 12 mei 2007.
De tabel moet de vorige tonen met een verschil van 7 dagen tussen de datums.
U moet ook een wat als-parameter maken om dynamisch het aantal datums weer te geven op basis van de selectie. Als u 3 selecteert , zou de tabelvisual slechts 3 datums moeten tonen.
De tabel en visualisaties opnieuw maken
De eerste stap is het maken van een wat als -parameter . Ga in de LuckyTemplates-desktop naar het tabblad Modelleren en selecteer Nieuwe parameter .
Voeg een naam toe aan de parameter en stel het Gegevenstype in op Geheel getal . Stel vervolgens de minimum-, maximum-, verhogings- en standaardwaarden in zoals te zien is in de onderstaande afbeelding. Voeg de slicer toe aan de pagina door het vakje aan te vinken.
Nadat u op OK hebt gedrukt, wordt een slicer gegenereerd. Converteer de slicer naar een lijst door op de vervolgkeuzeknop te klikken en Lijst te selecteren.
Het volgende dat u moet doen, is een gedupliceerde datumtabel maken die zal worden gebruikt als een niet-verbonden datumtabel. Ga naar de Power Query-editor en dupliceer Dates .
Hernoem vervolgens de duplicaat DisDate en klik op Sluiten en toepassen.
De datumtabellen en slicers laden in LuckyTemplates
Nadat de gedupliceerde tabel in het LuckyTemplates-model is geladen, maakt u een slicer met de datumkolom uit de ontkoppelde datumtabel. Open de DisDate-tabel en sleep Date naar het canvas.
Verander de visualisatie vervolgens in een slicer.
Wijzig daarna het formaat van de slicer in List . De visualisatie ziet er dan zo uit.
Dupliceer vervolgens de slicer en wijzig het gegevensveld met de kolom Datum uit de tabel Datums.
Als u een datum selecteert in de snijmachine Datums, wordt het aantal zichtbare rijen in de matrix van de tabel Verkoop beperkt. Als u 14 maart 2005 selecteert, toont de matrix alleen die datum.
Het resultaat en de meting zullen niet werken als je deze opstelling gebruikt. De reden is dat nog voordat de maatregel begint te werken, de toegang tot de matrix al is gefilterd. Voor die gefilterde waarden kunt u geen datums met intervallen genereren.
Maateenheden creëren voor de selectieslicers
U moet een set-up van datums maken die de matrix niet direct filtert wanneer een selectie over een slicer wordt geplaatst. De filtering van de matrix moet via de DAX-code komen en niet rechtstreeks uit de slicers. Dus als u een datum selecteert uit de DisDate-slicer, zullen er geen wijzigingen in de matrix optreden.
Dit gebeurt omdat de DisDate-tabel geen relatie heeft met de Dates-tabel. Daarom is de losgekoppelde tafel essentieel.
Verwijder de slicer met de tabel Datums en maak de eerste meting. De meting haalt de waarde op die is geselecteerd uit de slicer Datums om weer te geven. De eerste variabele die u moet maken, is ValuesToShow . Vergelijk het vervolgens met de Datums om te tonen waarde en voer RETURN in om de geselecteerde waarden te retourneren.
Sleep die maat naar de matrix. Als u 6 selecteert in de snijmachine Datums om weer te geven, levert de kolom Meetwaarde in de matrix ook 6 op.
Maak vervolgens een andere variabele aan die de in de slicer geselecteerde datum van verbroken verbinding ophaalt.
Als u klaar bent, ziet u de waarde die is geselecteerd in de DisDate-slicer die wordt weergegeven in de kolom Meten.
Een berekende tabel maken
Maak een lijst met datums met intervallen van 7 dagen vanaf de geselecteerde datum in de slicer. Zorg er vervolgens voor dat de matrix het aantal dagen genereert op basis van de selectie Datums om weer te geven. Om dit te doen, moet u eerst een berekende tabel maken .
De berekende tabel helpt u te visualiseren hoe datums worden gegenereerd in de DAX-code. Ga naar de gegevensweergave en klik op Nieuwe tabel.
Voer de variabele SelectedDate in en stel deze gelijk aan de functie DATE . Voer vervolgens een datum tussen haakjes in. Maak vervolgens een andere variabele die het aantal datums specificeert dat u in de matrix wilt weergeven. Voer DatesToShow in en stel het gelijk aan het aantal datums.
Maak daarna een andere variabele die een lijst met datums genereert met intervallen van 7 dagen. Voer DatesList in en gebruik de functie GENERATESERIES . is een functie die een lijst met getallen genereert door verschillende argumenten door te geven.
Voer voor het eerste argument SelectedDate – (DatesToShow * 7) in als startwaarde. Voer vervolgens SelectedDate in als de eindwaarde. Voer voor het laatste argument 7 in voor de toenamewaarde of het interval tussen datums. Als u klaar bent, sluit u de functie en voert u RETURN en DateList in .
U ziet dan een tabel met zeven waarden vanaf 5 mei en teruggaand in stappen van zeven.
Nu zul je merken dat het te veel datums heeft gemaakt dan je nodig hebt. In het oorspronkelijke voorbeeldrapport was 31 maart de laatste datum die werd weergegeven met dezelfde datums om weer te geven en datumselecties.
Om dit op te lossen, kunt u de waarde van de DatesToShow-variabele wijzigen in 5 of 1 aftrekken van 6. In dit voorbeeld wordt 1 afgetrokken van 6.
Daarna zie je dat de waarden eindigen op 31 maart.
Datums in de filtercontext injecteren
Vervolgens moet u deze datums gebruiken en injecteren in een datumfiltercontext. U moet ook het verkoopbedrag in de filtercontext berekenen. Kopieer dus de GENERATESERIES- syntaxis en ga terug naar uw maat.
Voeg in de meting een nieuwe variabele toe en voer DatesToShow in . Stel die variabele vervolgens gelijk aan de GENERATESERIES- syntaxis. Wijzig de variabelen binnen de syntaxis van SelectedDate in DisSelectedDate en DatesToShow in ValuesToShow .
Maak ten slotte een variabele voor het resultaat. Vergelijk het met de CALCULATE- functie over de Total Sales en DatesToShow om alle datums die zijn ontvangen van de GENERATESERIES- syntaxis in de filtercontext te injecteren. Als u klaar bent, voert u Result in de RETURN -functie in.
U zult nu zien dat de matrix niet de datums laat zien waar de DAX-code om vraagt. Als u de Total Sales-maatstaf in de matrix brengt, ziet u dat de code zelf het Sales-bedrag retourneert.
Het probleem met de meting is dat de datum die is gemaakt in de GENERATESERIES- syntaxis een gegevenslijn heeft met de losgekoppelde datumtabel. Dit betekent dat de tabel Datum niet is gekoppeld aan de tabel Verkoop. Dat is de reden waarom de lijst met datums die werd toegepast in de filtercontext, de tabel Verkoop niet omvatte.
U moet de functie gebruiken om virtuele relaties te maken en de filtercontext toe te passen.
TREATAS gebruiken om de datum in LuckyTemplates Matrix vast te stellen
U moet de waarden die zijn ontvangen van de GENERATESERIES- syntaxis behandelen alsof ze deel uitmaken van de oorspronkelijke datumtabel. Dit is eigenlijk het bouwen van een afstamming met de Datum-kolom van de Datum-tabel die in het gegevensmodel staat.
Voer dus in de variabele Resultaat TREATAS in na de tabel Totale verkoop en geef de argumenten op. Geef voor het eerste argument de kolom of tabel op die de relatie niet heeft. In dit geval wordt de kolom DatesToShow gebruikt.
Geef voor het tweede argument de kolom op waaraan u de afstamming van de kolom in het eerste argument wilt toewijzen. In dit voorbeeld wordt de kolom Datum uit de tabel Datums gebruikt.
Maar zelfs met de correcties in de code geeft de kolom Meten in de matrix nog steeds niet de juiste waarden weer bij gebruik van de slicer. U kunt ook opmerken dat de waarden in de kolom zich herhalen.
Het probleem ligt in de manier waarop de code is geschreven. TREATAS past alle waarden toe in de filtercontext en overschrijft de bestaande filtercontext op de geselecteerde datum met alle waarden die zijn opgehaald uit de functie GENERATESERIES .
De KEEPFILTERS-functie gebruiken boven TREATAS
Om ervoor te zorgen dat het filter in het filter wordt geïnjecteerd zonder de bestaande filtercontext te overschrijven, moet u de functie KEEPFILTERS gebruiken. verandert de filtersemantiek van CALCULATE .
Voer KEEPFILTERS in voor de TREATAS- functie en bevestig de meting.
U zult nu zien dat de waarden in de kolom Meten niet worden herhaald.
Als u de maanden mei en april uitvouwt, ziet u dat de waarden in de kolom Meting gelijk zijn aan de waarden in de kolom Totale verkoop.
Verwijder de maateenheid Totale verkoop in de matrix en selecteer een getal in de slicer Te tonen datums. U ziet dan het equivalente aantal datums dat in de matrix wordt weergegeven.
Problemen met ontbrekende datums in de LuckyTemplates-matrix oplossen
Een ander probleem met dit rapport is dat wanneer u 8 selecteert in de DatesToShow- slicer, de matrix niet verandert.
Als u 9 selecteert in de slicer, toont de matrix slechts 8 datums. U zult ook merken dat 17 maart ontbreekt in de lijst met datums.
De reden is dat er op sommige dagen in de tabel Datum geen overeenkomende transacties in de tabel Verkoop zijn. De meting retourneert dus een spatie voor die datums. Omdat het blanco retourneert, verwijdert de code die achter de matrix loopt de lege rijen uit het resultaat.
LuckyTemplates gebruikt vervolgens het geretourneerde resultaat om de matrix te vullen. Dus aangezien sommige dagen blanco terugkeren, kunt u de verkopen en boekingen van die dagen niet zien in de matrix.
Als u iets wilt weergeven voor de dagen zonder verkoop in uw gegevens, gaat u terug naar de meting en verwijdert u de CALCULATE- syntaxis.
DAX gebruiken om ontbrekende datum in LuckyTemplates op te lossen
Maak een gegevenslijn door TREATAS te schrijven over de DatesToShow- en Date- kolom van de Dates- tabel. Controleer vervolgens of alle datums die door de TREATAS- functie worden geretourneerd, zijn opgenomen in de filtercontext.
Splits vanaf daar de uitvoering door meerdere variabelen. Wijzig de naam van de variabele van Result in CreateDataLineage om aan te geven dat het resultaat van TREATAS wordt opgeslagen .
Maak vervolgens een andere variabele die alle datums bevat die zichtbaar zijn in de filtercontext die uit de matrix komt. Voer VisibleDate in als de naam van de variabele en gebruik in de kolom Datum .
Het volgende dat u moet doen, is een kolom maken over het resultaat van de TREATAS- functie die het verkoopbedrag zou bevatten. Schrijf DatesWithSales als de naam van de variabele en gebruik over de variabele CreateDataLineage .
Maak binnen de functie een nieuwe kolom en noem deze Verkoopbedrag met de maateenheid Totale verkoop in de rijcontext om de contextovergang te initiëren.
Maak daarna een variabele die zou controleren of alle datums die zijn opgeslagen in de DatesWithSales- variabele zijn opgenomen in de filtercontext. Voer IsDateInFilterContext in als de naam van de variabele en gebruik de functie .
Schrijf vanaf daar DatesWithSales als het eerste argument van de functie. Voer vervolgens Dates[Date] IN VisibleDate in als het tweede argument om te controleren of de datum in de DatesWithSales -tabel is opgenomen in de VisibleDate- variabele.
De laatste variabele die u moet maken, is Resultaat . Gebruik de functie over de variabele IsDateInFilterContext . Schrijf [@Sales Amount] + 0 om de dagen op te nemen die voorheen niet waren opgenomen.
Daarna zie je de ontbrekende datum, 17 maart, in de matrix.
+0 gebruiken in de oorspronkelijke maat
De vorige stappen hebben u laten zien hoe u een meting kunt bouwen om alle datums op te nemen die geen transacties hebben in de Feitentabel. Als u nu de + 0 gebruikt in de oorspronkelijke meting die u hebt gemaakt, zijn de waarden in de kolom Meting allemaal 0.
De reden is dat de resultaatvariabele een blanco of een verkoopbedrag bevat. Dus als u 0 toevoegt, vervangt u de lege rij door 0. Onthoud dat samengevatte kolommen de lege rijen uit de dataset verwijderen. Retourneer ze naar LuckyTemplates zodat ze alleen beperkte rijen kunnen weergeven en niet de lege velden.
Maar aangezien 0 wordt toegevoegd, wordt de samenvattingskolom gedwongen om de rijen te behouden. Vervolgens wordt een tabel geretourneerd die alle datums bevat die voorkomen in de tabel Datums en wordt nul weergegeven waar deze van toepassing is of wanneer deze leeg is.
Dit is de reden waarom u de meting zodanig moet herschrijven dat u alleen 0 hoeft toe te voegen aan de datums die zichtbaar zijn in de filtercontext en die zijn opgenomen in de DatesToShow- variabele.
Power Automate-connectoren: getal, tekst en datum Tijd
Uitgebreide datumtabel Power Query M-functie
Power Query LuckyTemplates | Maak nieuwe records op basis van datumvelden
Conclusie
Als u een gegevensrapport wilt maken waarmee u een specifieke datum in een LuckyTemplates-matrix kunt selecteren , moet u berekende tabellen en DAX-functies gebruiken . DAX-functies en -metingen moeten zo worden geschreven dat ze gemakkelijk resultaten kunnen opleveren.
Wat is zelf in Python: voorbeelden uit de echte wereld
Je leert hoe je objecten uit een .rds-bestand in R opslaat en laadt. In deze blog wordt ook besproken hoe je objecten uit R naar LuckyTemplates importeert.
In deze tutorial over DAX-coderingstaal leert u hoe u de functie GENERATE gebruikt en hoe u de titel van een maat dynamisch wijzigt.
Deze zelfstudie behandelt hoe u de Multi Threaded Dynamic Visuals-techniek kunt gebruiken om inzichten te creëren op basis van dynamische gegevensvisualisaties in uw rapporten.
In dit artikel zal ik de filtercontext doornemen. Filtercontext is een van de belangrijkste onderwerpen waarover elke LuckyTemplates-gebruiker in eerste instantie zou moeten leren.
Ik wil laten zien hoe de online service LuckyTemplates Apps kan helpen bij het beheren van verschillende rapporten en inzichten die uit verschillende bronnen zijn gegenereerd.
Leer hoe u wijzigingen in uw winstmarge kunt berekenen met behulp van technieken zoals vertakking van metingen en het combineren van DAX-formules in LuckyTemplates.
Deze tutorial bespreekt de ideeën van materialisatie van datacaches en hoe deze de prestaties van DAX beïnvloeden bij het leveren van resultaten.
Als u tot nu toe nog steeds Excel gebruikt, is dit het beste moment om LuckyTemplates te gaan gebruiken voor uw zakelijke rapportagebehoeften.
Wat is LuckyTemplates Gateway? Alles wat u moet weten