De rijen/kolommen één voor één verwerken op een werkblad

Een veel voorkomende taak is het verwerken van gegevens in een gegevensbron volgens categorieën die op een ander werkblad te vinden zijn. Een goed voorbeeld is het beheren van een lijst met afdelingen in een werkblad en onafhankelijk van elkaar enkele rapporten die afzonderlijk voor elke afdeling moeten worden gegenereerd met behulp van een gemeenschappelijke gegevensbron. Djeeni gebruikt het concept van een rijen-/kolomlijst om deze taak op te lossen.

Een rijenlijst is een lus tussen de processtappen Rijlijst Start en Rijlijst Volgende. Bij Rijenlijst Start specificeert u het werkblad en de rijen op het werkblad die verwerkt moeten worden. Djeeni neemt de rijen één voor één en voert vervolgens de processtappen uit in de lus tot aan Rijenlijst volgende. Op dat punt neemt Djeeni de volgende rij in de rijenlijst en herhaalt de processtappen opnieuw:

   Row List Start
     ...Processtappen die informatie uit de huidige rij in de rijlijst gebruiken...
   Row List Next

U kunt alle cellen in de huidige rij bereiken door naar de juiste kolomletter en # te verwijzen. Voorbeeld: als de cel in kolom D van de huidige rij in de rijenlijst moet worden geopend, typt u D#.

Een kolommenlijst is gebruikt voor het doorlopen van kolommen op dezelfde manier als rijenlijst voor rijen. Het gebruikt ook het #-teken om naar de huidige kolom te verwijzen: #3.

Voorbeeld: gegevens splitsen

Hieronder ziet u het proces om een gegevensbron op een werkblad op te splitsen in afzonderlijke werkbladen met behulp van de lijst met categorieën uit nog een ander werkblad:

   WSheet-use: Djeeni-naam: wsData
   Row List start: Djeeni-naam: wsCategories
     WSheet Filter Add: filter wsData kolom D met behulp van waarde wsCategories cel C#
       WBook Nieuw: Djeeni-naam: wsCategoryData
         Kopieer bereik van wsData (gefilterd) naar wsCategoryData
       WSheet-release wsCategoryData
     WBladfilter Wis wsData
   Row list end

Dit is wat er gebeurt:

  • De rijenlijst neemt de rijen van het categorieënwerkblad één voor één
  • Voor elke rij wordt het gegevenswerkblad (waar kolom D categorienamen bevat) gefilterd op de categorienaam in kolom C van de huidige rij (#) op wsCategoryData
  • Het nieuwe werkblad wordt gemaakt in een nieuwe werkmap (als alternatief kan een nieuw werkblad worden toegevoegd aan een bestaande werkmap)
  • Het gefilterde gegevensbereik wordt gekopieerd naar het nieuw gemaakte werkblad
  • Het werkblad wordt vrijgegeven zodat het volgende werkblad kan worden gemaakt
  • Het filter wordt gewist zodat het volgende filter kan worden toegepast
  • De volgende rij in de rijenlijst wordt bezet en de lus begint opnieuw

Voorbeeld: gegevens op een werkblad verrijken of bijwerken

Een andere veel voorkomende taak is om een werkblad met gegevens te hebben waarin u een nieuwe kolom met waarden moet toevoegen of waarden in een bestaande kolom moet vervangen op basis van een lijst die u in een ander werkblad krijgt. Er is een handmatige oplossing voor deze taak in MS Excel met behulp van de 'magische' VLOOKUP-functie (nu XLOOKUP). Djeeni biedt u een alternatieve geautomatiseerde oplossing met behulp van rijenlijsten:

   WSheet-use: Djeeni-naam: wsOriginalData
   Begin rijlijst: Djeeni-naam: wsAdditionsUpdates
     WSheet Filter Add: filter wsOriginalData kolom D met behulp van waarde wsAdditionsUpdates cel C#
       Range Set: in de wsOriginalData-doelkolom met de waarde wsAdditionsUpdates cel B#
     WSheet Filter Clear wsData
   Row List End

Dit is wat er gebeurt:

  • Het originele gegevenswerkblad wordt geopend
  • De rijenlijst neemt de rijen van het categorieënwerkblad één voor één
  • Voor elke rij wordt het gegevenswerkblad (waar kolom D een ID-waarde bevat) gefilterd op dezelfde ID-waarde in kolom C van de huidige rij (#) op wsAdditionsUpdates
  • De waarde van cel B# van het wsAdditionsUpdates-werkblad wordt toegevoegd/bijgewerkt op het wsOriginalData-werkblad
  • Het filter wordt gewist zodat het volgende filter kan worden toegepast
  • De volgende rij in de rijenlijst wordt bezet en de lus begint opnieuw

Lees meer over rijenlijsten here