Вы разрешаете всем редактировать вашу таблицу? Надеюсь, вы сделали копию.
В любом случае я написал сценарий, который должен работать. Чтобы использовать это, вы помещаете эту формулу в E2. =genSerials(C2:D10, 1, "Matured", 2, true)
Второй аргумент - это столбец, содержащий статус. Третий аргумент - это текст, который должен быть в столбце состояния, за которым следует столбец для сортировки, а затем либо true, либо false, чтобы указать порядок сортировки.
function genSerials(range, statusCol, statusText, dataToSortCol, ascending) {
statusCol -= 1; dataToSortCol -= 1;
var sorted = range.filter(function(row) {return row[statusCol] === statusText && row[dataToSortCol] !== "";}).map(function(row) {return row[dataToSortCol];});
if(ascending) {
sorted.sort(function(a,b) {if(a > b) return 1; else if(b > a) return -1; else return 0;});
} else {
sorted.sort(function(a,b) {if(a > b) return -1; else if(b > a) return 1; else return 0;});
}
var result = [];
for(var i = 0; i < range.length; i++) {
var row = range[i];
if(row[statusCol] === statusText && row[dataToSortCol] !== "") {
var idx = sorted.indexOf(row[dataToSortCol]);
result.push([idx + 1]);
} else {
result.push([""]);
}
}
return result;
}
person
SpiderPig
schedule
17.04.2017