There is a technique based on the usage of a Row ID column. Conceptually, since Row IDs are automatically added or deleted when a row is added or removed, this technique allows dynamic row indexing (or row numbering).
Add a basic Row ID column.
Add a basic lookup column that points to the Row ID column. You will get a column where each cell represents an array of all the Row IDs.
Add a computed Find Element Index. Point the first field to the lookup column (the arrays), the second field to the Row ID column (the element whose index you are finding), adjust the display of the number to 1 (no digits after the comma) and no units.
Now you should have a column of numbers starting at 0 and automatically incrementing by 1 on each new row.
Should you want the row numbering to start at 1 instead of 0, add a computed math column and add 1 (+1) to the index column.
Yes, that is the place in the Layout Editor where you can sort a collection. In that area, you can define what attribute (column) you wish to sort along and then adjust the sorting options accordingly.
For instance, the table of a collection could have Row Index, Name and Date of Birth columns. You could sort along the Row Index column (which would be the same as sheet order), or Name, or Date of Birth. Same collection, different sorting result depending on the sorting attribute.
The sorting part isn’t easily achieved. Nathanael’s method helps you add an index column, but that is a computed column and can’t be incremented or decremented.
If you can add a number column and add an index number every time you create a new record, then you increment/decrement and sort by that column when you move up or down the scales.
You must make sure that you also increment/decrement the items surrounding the items you are moving up or down to make it work.
Say you move Invoice from 4 to 3, then Service must be moved from 3 to 4 as a result.
In the end, it will likely be a combination of queries to get the “previous” and “next” row, then incremental actions.