I call this column 'tmp'. Then move this column to the beginning so it becomes the index column. Then transform the column you want to shift with the expression
to ensure you don't loose any blank values further in the column. Then use the 'Join multi-valued cells...' command to combine all your data in the first row using a delimiter that is not present in your data (for example I will use the pipe symbol '|'). Then transform the column again with the expression
Then split the column using the 'Split multi-valued cells...' command (using thepipe symbol again). And finally remove the temporary column again. If your columns are called 'Col 1' and 'Col 2', this leads to the following JSON code (you can apply using the 'Apply...'in the 'Undo/redo' tab:
[
{
"op": "core/column-addition",
"description": "Create column tmp at index 1 based on column Col 1 using expression grel:if(row.index==0,1,null)",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"newColumnName": "tmp",
"columnInsertIndex": 1,
"baseColumnName": "Col 1",
"expression": "grel:if(row.index==0,1,null)",
"onError": "set-to-blank"
},
{
"op": "core/column-move",
"description": "Move column tmp to position 0",
"columnName": "tmp",
"index": 0
},
{
"op": "core/mass-edit",
"description": "Mass edit cells in column Col 2",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "Col 2",
"expression": "value",
"edits": [
{
"fromBlank": false,
"fromError": false,
"from": [
"2222"
],
"to": ""
}
]
},
{
"op": "core/text-transform",
"description": "Text transform on cells in column Col 2 using expression grel:if(isBlank(value),\"<empty>\",value)",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "Col 2",
"expression": "grel:if(isBlank(value),\"<empty>\",value)",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10
},
{
"op": "core/multivalued-cell-join",
"description": "Join multi-valued cells in column Col 2",
"columnName": "Col 2",
"keyColumnName": "tmp",
"separator": "|"
},
{
"op": "core/text-transform",
"description": "Text transform on cells in column Col 2 using expression grel:value.split(\"|\").slice(1).join(\"|\")",
"engineConfig": {
"facets": [],
"mode": "row-based"
},
"columnName": "Col 2",
"expression": "grel:value.split(\"|\").slice(1).join(\"|\")",
"onError": "keep-original",
"repeat": false,
"repeatCount": 10
},
{
"op": "core/multivalued-cell-split",
"description": "Split multi-valued cells in column Col 2",
"columnName": "Col 2",
"keyColumnName": "tmp",
"separator": "|",
"mode": "plain"
},
{
"op": "core/column-removal",
"description": "Remove column tmp",
"columnName": "tmp"
}
]