要按照数据验证中输入的值的顺序对Google Sheet进行排序,您可以使用Google Apps Script来实现。以下是一个代码示例,假设您在单元格A1至A10中设置了数据验证。
function sortSheetByDataValidationOrder() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var range = sheet.getRange('A1:A10');
var values = range.getValues();
// 获取数据验证的选项列表
var dataValidation = range.getDataValidations();
var options = [];
for (var i = 0; i < dataValidation.length; i++) {
var rule = dataValidation[i][0];
if (rule != null && rule.getCriteriaType() == SpreadsheetApp.DataValidationCriteria.VALUE_IN_RANGE) {
var criteria = rule.getCriteriaValues()[0];
options.push(criteria.getSheet().getRange(criteria.getA1Notation()).getValues()[0][0]);
}
}
// 根据选项列表的顺序进行排序
options.sort(function(a, b) {
return values[options.indexOf(a)][0] - values[options.indexOf(b)][0];
});
// 根据排序后的选项列表重新排列数据
for (var j = 0; j < options.length; j++) {
var optionIndex = options.indexOf(values[j][0]);
if (optionIndex > -1) {
sheet.getRange(j + 1, 1).moveTo(sheet.getRange(optionIndex + 1, 1));
}
}
}
在Google Sheets中,选择“工具”->“脚本编辑器”来打开脚本编辑器。将以上代码粘贴到编辑器中,保存并运行该脚本。该脚本将按照数据验证中输入的值的顺序对A1至A10的范围进行排序。
下一篇:按照数据中不存在的键返回分组