Processing the rows/columns one by one on a worksheet

A common task is to process data in a data source according to categories that can be found on another worksheet. A good example is having a list of departments managed in a worksheet and independently some reports that should be generated separately for every department using a common data source. Djeeni uses the concept of a row/column list to solve this task.

A row list is a loop between the Row List Start and Row List Next process steps. At Row List Start you specify the worksheet and the rows on the worksheet that should be processed. Djeeni will take the rows one by one and then performs the process steps inside the loop up to Row List Next. At that point Djeeni takes the next row in the row list and repeats the process steps again:

  Row List Start
    ...Process steps that use information from the current row in the row list...
  Row List Next

You can reach any cells in the current row by referring to the appropriate column letter and #. Example: if the cell in column D of the current row in the row list must be accessed then you can type D#.

A column list works the same way looping through columns. It uses also the # sign to refer to the current column: #3.

Example: Split data

Below is the process to split a data source on a worksheet into separate worksheets using the list of categories from yet another worksheet:

  WSheet Use: Djeeni name: wsData
  Row List Start: Djeeni name: wsCategories
    WSheet Filter Add: filter wsData column D using value wsCategories cell C#
      WBook New: Djeeni name: wsCategoryData
        Copy Range from wsData (filtered) to wsCategoryData
      WSheet Release wsCategoryData
    WSheet Filter Clear wsData
  Row List End

This is what happens:

Example: Enrich or update data on a worksheet

Another common task is to have a worksheet with data where you should either add a new column of values or replace values in an existing column based on a list that you get in another worksheet. There is a manual solution for this task in MS Excel using the 'magical' VLOOKUP (now XLOOKUP) function. Djeeni gives you an alternative automated solution using row lists:

  WSheet Use: Djeeni name: wsOriginalData
  Row List Start: Djeeni name: wsAdditionsUpdates
    WSheet Filter Add: filter wsOriginalData column D using value wsAdditionsUpdates cell C#
      Range Set: on wsOriginalData target column using value wsAdditionsUpdates cell B#
    WSheet Filter Clear wsData
  Row List End

This is what happens:

Read further about row lists here