按单元格中倒数第二个字母排序数据,然后按第一个 - Google Apps Script / Google Sheets
Sort Data By the 2nd Last Letter in a cell then the first- Google Apps Script / Google Sheets
在显示的图像中(突出显示亮绿色 G:H),我希望根据倒数第二个字母而不是第一个字母对数据进行排序。这意味着 F01A1 在列表中的位置应该比 E09C1 高,然后在 A 列中被选中。
如何让数据按第 G:H 列单元格中倒数第二个字母排序?
尝试第 1 行:
=ARRAYFORMULA(QUERY({G:H, RIGHT(H:H, 2)}, "select Col1,Col2 order by Col3", 0))
既然您提到了 Google Apps 脚本,您可以使用以下 custom function 对数据进行排序:
function CUSTOMSORT(input) {
input.sort(function(a, b) {
if (a[0].slice(-2) < b[0].slice(-2)) {
return -1;
} else if (a[0].slice(-2) > b[0].slice(-2)) {
return 1;
}
return 0;
})
return input;
}
定义后,您可以像使用任何工作表内置函数一样使用此函数。例如,如果要对 A1:A10
中的数据进行排序,只需像这样调用函数:
=CUSTOMSORT(A1:A10)
参考:
在显示的图像中(突出显示亮绿色 G:H),我希望根据倒数第二个字母而不是第一个字母对数据进行排序。这意味着 F01A1 在列表中的位置应该比 E09C1 高,然后在 A 列中被选中。
如何让数据按第 G:H 列单元格中倒数第二个字母排序?
尝试第 1 行:
=ARRAYFORMULA(QUERY({G:H, RIGHT(H:H, 2)}, "select Col1,Col2 order by Col3", 0))
既然您提到了 Google Apps 脚本,您可以使用以下 custom function 对数据进行排序:
function CUSTOMSORT(input) {
input.sort(function(a, b) {
if (a[0].slice(-2) < b[0].slice(-2)) {
return -1;
} else if (a[0].slice(-2) > b[0].slice(-2)) {
return 1;
}
return 0;
})
return input;
}
定义后,您可以像使用任何工作表内置函数一样使用此函数。例如,如果要对 A1:A10
中的数据进行排序,只需像这样调用函数:
=CUSTOMSORT(A1:A10)