PY_*_*PY_ 2 sorting google-sheets google-apps-script
我有一个我定期更新的电子表格.由于所做的更改,我还必须在完成后重新排序电子表格.我需要使用多个条件进行排序,例如以下设置.我搜索了一些示例,但我的Google搜索技能让我失望了.
Sort range from A1:E59
[x] Data has header rows
sort by "Priority" A > Z
then by "Open" Z > A
then by "Project" A > Z
Run Code Online (Sandbox Code Playgroud)
如果您的单元格中没有通过公式自动计算的值,则Mogsdad的答案可以正常工作.但是,如果您确实使用了公式,那么该解决方案将擦除所有公式并将其替换为静态值.即便如此,它仍然比它需要的更复杂,因为现在有一种基于多列进行排序的内置方法.试试这个:
function onEdit(e) {
var priorityCol = 1;
var openCol = 2;
var projectCol = 3;
var sheet = SpreadsheetApp.getActiveSheet();
var dataRange = sheet.getDataRange();
dataRange.sort([
{column: priorityCol, ascending: true},
{column: openCol, ascending: false},
{column: projectCol, ascending: true}
]);
}
Run Code Online (Sandbox Code Playgroud)
您可以使用内置函数代替单独的函数,onEdit()当您更改任何值时,您的数据将自动排序.该sort()函数接受一系列标准,它按顺序依次应用.
请注意,使用此解决方案,电子表格中的第一列是第1列,而如果您正在进行直接数组访问,例如在Mogsdad的答案中,则第一列是第0列.因此,您的数字将不同.