У меня есть этот демонстрационный лист
https://docs.google.com/spreadsheets/d/1pGkTrudeDfv7Xkm7ZGM0fmQzSCqU05hFVhuczJ4cWCQ/edit?usp=sharing
я использую этот код для сортировки моих данных,
function SortColumns(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Ventas");
var range = sheet.getRange("A4:S");
var SORT_ORDER = [
{column: 19, ascending: false},
{column: 18, ascending: false},
{column: 13, ascending: false},
{column: 7 , ascending: false},
{column: 2 , ascending: true},
{column: 1 , ascending: true},
{column: 3 , ascending: true}
]
range.sort(SORT_ORDER);
}
который работает нормально
Что мне нужно,
если столбец M содержит «Entregado» для сортировки таким образом,
если содержит сортировку 'Cobrar' в другом порядке,
если содержит сортировку «Apartado» в другом порядке,
если содержит сортировку «Превента» в другом порядке,
и если содержит какие-либо другие значения, чтобы отсортировать их по-другому
это возможно?
спасибо!
Редактировать: я пытаюсь этот код, но он не работает, как ожидалось
function ColumnContainString(column,string) {
var column=column || 13;//used for initial testing
var string=string || 'test';//used for initial testing
var ss=SpreadsheetApp.getActive();
var sheet=ss.getSheetByName("Ventas");
var cA=sheet.getRange(4,column,sheet.getLastRow(),1).getValues();
for(var i=0;i<cA.length;i++) {
if(cA[i][0].toString().indexOf(string)>-1) {//you may wish to change this line to some regular expression to find only words
Logger.log(i+1);
return(i+1);
}
}
Logger.log('-1');
return -1;
}
function SortColumns(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Ventas");
var range = sheet.getRange("A4:S");
if(ColumnContainString(13,'Entregado')==-1) {
var SORT_ORDER = [
{column: 19, ascending: false}, // M
{column: 18, ascending: true}, // H
{column: 1 , ascending: true}, // Fecha
{column: 2 , ascending: true}, // Cliente
{column: 3 , ascending: true} // Sabor
]
range.sort(SORT_ORDER);
}
if(ColumnContainString(13,'Cobrar')==-1) {
var SORT_ORDER = [
{column: 18, ascending: true}, // H
{column: 13, ascending: true}, // Estatus
{column: 7 , ascending: false}, // Vendio
{column: 2 , ascending: true}, // Cliente
{column: 3 , ascending: true}, // Sabor
{column: 1 , ascending: true} // Fecha
]
range.sort(SORT_ORDER);
}
if(ColumnContainString(13,'Pendiente')==-1) {
var SORT_ORDER = [
{column: 18, ascending: true}, // H
{column: 13, ascending: true}, // Estatus
{column: 7 , ascending: false}, // Vendio
{column: 2 , ascending: true}, // Cliente
{column: 3 , ascending: true}, // Sabor
{column: 1 , ascending: true} // Fecha
]
range.sort(SORT_ORDER);
}
if(ColumnContainString(13,'Preventa')==-1) {
var SORT_ORDER = [
{column: 18, ascending: true}, // H
{column: 13, ascending: true}, // Estatus
{column: 7 , ascending: false}, // Vendio
{column: 2 , ascending: true}, // Cliente
{column: 3 , ascending: true}, // Sabor
{column: 1 , ascending: true} // Fecha
]
range.sort(SORT_ORDER);
}
if(ColumnContainString(13,'Apartado')==-1) {
var SORT_ORDER = [
{column: 18, ascending: true}, // H
{column: 13, ascending: true}, // Estatus
{column: 2 , ascending: true}, // Cliente
{column: 3 , ascending: true}, // Sabor
{column: 1 , ascending: true} // Fecha
]
range.sort(SORT_ORDER);
}
}