Thank you for the detailed responses and questions that include pictures - it is extremely helpful!
Since you want to put it into a new datatable but keep all the headers the same, you should use Datatable.Clone() before going into your for each loop so the datatable is ready to go. This is done with a simple assign activity right before the for each row loop:
Assign MyNewTable = ExtractDataTable.Clone
In your if statement, NextRowIndex should be an integer variable. The right side would be:
ExtractDataTable.IndexOf(row) + 1 This is getting the index of the current row and adding one. However, since you’re doing a for each loop, you can just get the index from the activity itself - the properties has an optional output called row index (or somethign similar). You can just output to a variable and call it CurrentRowIndex or something similar. For my example below, i will assume you don’t separately assign NextRowIndex and only use the CurrentRowIndex (since that’s what i recommend).
In the TRUE side of your if statement you can use 2 invoke method activities to import the rows into the new datatable. See here for a good example with screenshots on how to do it: Copy Row from one DataTable to another
The parameters for the first row would be just like the screenshots linked above. The second one you should alter the ‘value’ of the paramater from row -->
ExtractDataTable.Rows(CurrentRowIndex + 1)