Djeeni is gemaakt voor mensen die ervaring en vaardigheid in MS Excel hebben opgebouwd door het regelmatig te gebruiken voor verschillende gegevensverwerkingstaken. We willen wel dat je je vaardigheid kunt behouden en benutten en daarom hebben we Djeeni gebouwd om naadloos samen te werken met MS Excel en de krachtige ingebouwde functies ervan. In de onderstaande paragrafen leggen we aan de hand van praktische voorbeelden uit hoe en voor welk doel u Excel-functies kunt inbedden bij verschillende Djeeni-processtappen.
De meeste processen zijn niet lineair: ze kunnen herhaalde stappen bevatten (zie lijsten) of voorwaardelijke/optionele stappen die alleen moeten worden uitgevoerd als aan bepaalde voorwaarden is voldaan. Djeeni biedt de processtap If om de voorwaarden te beschrijven.
Een van de meest voorkomende voorwaarden is om te controleren of een cel leeg is. De beste praktijk is om de ISBLANK() Excel-functie te gebruiken, omdat deze met alle mogelijke celtypen werkt:
If Djeeni-naam: ifEmpty
Voorwaarde: ISBLANK([$wsWorksheet!B3]) 'controleer of cel Werkblad!B3 leeg is
In MS Excel kunt u met behulp van een formule een dynamische waarde aan een cel instellen. Een dergelijke formule voert een aantal berekeningen uit met behulp van a) waarden van een of meer andere cellen; en b) ingebouwde of door de gebruiker gedefinieerde functies. De formule is vast aan de cel bevestigd.
In Djeeni kun je alle kennis en ervaring die je hebt met formules en Excel-functies behouden. Voorbeeld: Laten we aannemen dat we de waarde van cel B4 op het werkblad wsMonthEnd moeten instellen door enkele waarden in het bereik G2:G20 op het werkblad wsERPData samen te vatten. In Djeeni gebruik je de bekende SUM-functie met dezelfde bereikparameter als in Excel binnen een [+….] Djeeni-formule:
Cell Set Cell: wsMonthEnd!B4 'NB: naar cellen wordt altijd verwezen met hun werkblad
Waarde: [+SUM([:wsERPData!G2:G20])] 'Er is een bereik opgegeven in [:....]
Maar Djeeni kan meer. U kunt de cel ook dynamisch definiëren met behulp van een Djeeni-formule. Voorbeeld: de som die we verzamelen moet op B4 worden gezet als deze kleiner is dan 10.000; anders zou het naar C4 moeten gaan:
Cell Set Cell: [+IF(SUM([:wsERPData!G2:G20])<10000,[$wsMonthEnd!B4],[$wsMonthEnd!C4])] 'Celadres is
Waarde: [+SUM([:wsERPData!G2:G20])] 'verwezen door [$.....]
Deze Djeeni-functie is erg handig bij gebruik in een werkmap, rij- of kolommenlijst. Voorbeeld: een orderwerkblad (wsExport) wordt geëxporteerd vanuit een IT-systeem en bevat duizenden rijen met verschillende datums (kolom B) en productcodes (kolom K) in een maand. Op basis van de datum en de productcode moet elke bestelling in drie vooraf gedefinieerde kolommen per week worden vermeld (in totaal 15 doelkolommen voor de hele maand). De oplossing op papier:
Doorloop de rijen van wsExport
Stel de bestelwaarde in na de laatste rij in de doelkolom waar de doelkolom wordt berekend door:
- het aantal weken vanaf het begin van de maand met behulp van de WEEKNUMMER-functie; plus
- de kolom binnen een week volgens de productcategorie met behulp van de IFS-functie
De oplossing in Djeeni (eerst de berekening van de doelkolom tijdelijk opslaan in cel wsTarget!ZZ1):
Row List Start Row: 2
End Row: #RowEnd
Cell Set Cell: wsTarget!ZZ1 'Tijdelijke cel om het berekeningsresultaat van de doelkolom op te slaan
Waarde: [+ WEEKNUM([$wsExport!B#],2)–WEEKNUM(DATE(YEAR([$wsExport!B#]),MONTH([$wsExport!B#]),1),2)+1 +
IFS([=wsExport!K#]<5000,0,[=wsExport!K#]<20000,1,[=wsExport!K#]>19999,2) ]
Cell Set Cell: wsTarget![=wsTarget!ZZ1][#RowEnd|[=wsTarget!ZZ1]]
Waarde: wsExport!C#
Row List Next
Als u bekend bent met draaitabellen in MS Excel, dan is deze functie van Djeeni een uitbreiding van de draaitabellen voor complexere gevallen.
Werken met datums is een van de moeilijkste taken in MS Excel op drie niveaus:
MS Excel doet veel ongedocumenteerde moeite om verschillende waarden te vinden en in stilte om te zetten in datums. Het maakt veel fouten: kan geen geldige datums vinden (vanwege de regionale instellingen); herkent data waarop er geen zijn; of interpreteert datums eenvoudigweg verkeerd (bijvoorbeeld tussen 5 maart en 3 mei), wat problemen veroorzaakt.
Op basis van deze problemen raden we u aan datums te gebruiken in Djeeni-processen volgens deze richtlijnen:
Er is een verborgen concept in MS Excel over wat het betekent om naar een cel te verwijzen. Wanneer naar een cel (bijvoorbeeld B3) wordt verwezen in een formule of binnen een functie, leest MS Excel de waarde van de cel en gebruikt deze waarde verder. Het lezen van de waarde betekent ook dat u moet beslissen of het een getal, een tekst of een datumwaarde is (het type van de waarde). Bepaalde functieparameters kunnen alleen tekst-, getal- of datumwaarden zijn en MS Excel geeft een foutmelding als de opgegeven waarde niet het juiste type heeft. Daarom is het belangrijk om te begrijpen hoe Djeeni-formules met cellen en celwaarden omgaan wanneer ze worden gecombineerd met Excel-functies.
In Djeeni hebben celverwijzingen altijd de vorm wsDjeeniName!ColumnRow, die voor MS Excel in twee vormen kan worden omgezet:
Aan de andere kant verwacht MS Excel “” rond tekstwaarden in functies. Voorbeeld: Als de waarde van de bovenstaande A2-cel moet worden vergeleken met 'Speelgoedboot', schrijft men in Djeeni: IF([=wsExport!A2] = “Speelgoedboot”,1,2); maar dit resulteert in een fout. Na verwerking van de Djeeni-formule zou MS Excel het volgende zien: IF(Speelgoedschip = “Speelgoedboot”,1,2).
Er zijn twee oplossingen:
Controleer altijd welke oplossing in de f past