{{ transformations:EnumerateRowsAction.png}} ====== ENUMERATE ROWS ====== Category: Transform / Basic\\ \\ =====Description===== This action adds a new column with row numbers.\\ Rows can be enumerated: *for the entire table *inside groups defined by combinations of values in particular columns (row numbers restart from 1 inside each group) *to a specified value (once this value is reached, enumeration restarts at 1) \\ =====Use cases===== *Create unique row IDs for datasets that do not already possess a unique key field. *To define an original record order with which to re-sort records downstream. *Prepare datasets for pivoting by setting a defined number of rows and row groupings (repetitions). \\ =====Action settings===== ^Setting^Description^ |Enumerate in groups|Select this option to restart row numbering at each unique value in the selected column(s). | |Repeat after*|Enter or set a maximum value after which the count resets to 1. Check the //Add column with repetition count// to\\ add a column (named "Repetition") that displays the count of the repetition.| |Column list|This list appears when the //Enumerate in groups// is selected. Select which columns are taken into account to\\ form unique values when numbering columns. Column numbering will restart at 1 for each unique value or value\\ combination across all selected columns.| * Setting can be specified using a [[:parameters|parameter]].\\ \\ =====Examples===== **Source table:** ^Province ^City ^Amount ^Total Tax ^ |ON |Toronto | 1000| 125| |ON |Ottawa | 1000| 125| |ON |Brampton | 2000| 250| |QC |Montreal | 2000| 270| |QC |Quebec City | 2000| 270| \\ After transformation (enumeration for entire table). ^RowNo ^Province ^City ^Amount ^Total Tax ^ | 1|ON |Toronto | 1000| 125| | 2|ON |Ottawa | 1000| 125| | 3|ON |Brampton | 2000| 250| | 4|QC |Montreal | 2000| 270| | 5|QC |Quebec City | 2000| 270| \\ After transformation (enumeration for each Province). ^RowNo ^Province ^City ^Amount ^Total Tax ^ | 1|ON |Toronto | 1000| 125| | 2|ON |Ottawa | 1000| 125| | 3|ON |Brampton | 2000| 250| | 1|QC |Montreal | 2000| 270| | 2|QC |Quebec City | 2000| 270| \\ After transformation (enumeration for each Province-Amount pairing). ^RowNo ^Province ^City ^Amount ^Total Tax ^ | 1|ON |Toronto | 1000| 125| | 2|ON |Ottawa | 1000| 125| | 1|ON |Brampton | 2000| 250| | 1|QC |Montreal | 2000| 270| | 2|QC |Quebec City | 2000| 270| \\ After transformation (Repeat after "2"). ^RowNo ^Province ^City ^Amount ^Total Tax ^ | 1|ON |Toronto | 1000| 125| | 2|ON |Ottawa | 1000| 125| | 1|ON |Brampton | 2000| 250| | 2|QC |Montreal | 2000| 270| | 1|QC |Quebec City | 2000| 270| \\ After transformation (Repeat after "2", Add column with repetition count). ^RowNo ^Repetition ^Province ^City ^Amount ^Total Tax ^ | 1| 1|ON |Toronto | 1000| 125| | 2| 1|ON |Ottawa | 1000| 125| | 1| 2|ON |Brampton | 2000| 250| | 2| 2|QC |Montreal | 2000| 270| | 1| 3|QC |Quebec City | 2000| 270| \\ ====Community examples==== * [[https://community.easymorph.com/t//1332/3|String manipulation (REVERSE)]] ([[https://community.easymorph.com/uploads/short-url/67c52KIJt323kknw2Q4vOvlAJ05.morph|Project]]; Module: //Main//; Group: //Tab 1//; Table: //Using actions//; Action position: //4//) * [[https://community.easymorph.com/t//1351/1|How to order columns by a list of columns]] ([[https://community.easymorph.com/uploads/short-url/bKeuXUgwKo1alDrA03LY5z3tPJv.morph|Project]]; Module: //Main//; Group: //Tab 1//; Table: //Reordered columns//; Action position: //2//) * [[https://community.easymorph.com/t//1649/14|Update existing data in a database table]] ([[https://community.easymorph.com/uploads/short-url/hauw3ZALjf9UqXAOP8prtLUNbxH.morph|Project]]; Module: //Main//; Group: //Tab 1//; Table: //Sample data//; Action position: //4//) * [[https://community.easymorph.com/t//1849/4|Iterate through a set of column]] ([[https://community.easymorph.com/uploads/short-url/5icrGfTGgzbmG2l5AuSiqb43QvR.morph|Project]]; Module: //Main//; Group: //Tab 1//; Table: //in.csv//; Action position: //2//) * [[https://community.easymorph.com/t//2454/4|.txt to .csv - Multiple Line & Character Length HELP!]] ([[https://community.easymorph.com/uploads/short-url/m3PqCDwhBrNEG2xW23QqEvl8RbX.morph|Project]]; Module: //Main//; Group: //Group 1//; Table: //SAMPLE.txt//; Action position: //4//) \\ =====See also===== *[[transformations:enumerategroups|Enumerate groups]] *[[transformations:sequence|Sequence]]