User Tools

Site Tools


transformations:enumerate

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
transformations:enumerate [2014/10/03 21:53] – created dmitrytransformations:enumerate [2022/11/12 22:56] (current) – udpate with new Repeat after setting (v5.3.1) craigt
Line 1: Line 1:
-===== Enumerate rows =====+{{ transformations:EnumerateRowsAction.png}} 
 +====== ENUMERATE ROWS ====== 
 +Category: Transform / Basic\\
  
-This transformation adds a new column with row number for all rows starting from top. It doesn't have parameters.+\\  
 +=====Description===== 
 +This action adds a new column with row numbers.\\
  
-**Example**+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).
  
-Before transformation +\\  
-^Province  ^Amount  ^Total Tax  +=====Action settings===== 
- ON   1000| 125+^Setting^Description
- OM  | 1500|  187.5+|Enumerate in groups|Select this option to restart row numbering at each unique value in the selected column(s). 
-|  QC      2000| 270|+|Repeat after<sup>*</sup>|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.| 
 +<sup>*</sup> Setting can be specified using a [[:parameters|parameter]].\\
  
-After transformation +\\  
-^RowNo ^Province  ^Amount  ^Total Tax  ^ +=====Examples===== 
-|  1|  ON  | 1000|   125| + 
-|  2|  OM  | 1500|  187.5| +**Source table:** 
-|  3|  QC  |     2000| 270|+^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]]
transformations/enumerate.txt · Last modified: 2022/11/12 22:56 by craigt

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki