Даты могут быть немного сложнее. См. Этот вопрос , чтобы получить лучшее представление. Но этот сценарий, по крайней мере, поможет вам начать.
Этот Google Sheet демонстрирует пользовательскую формулу (AGEGROUP
) для сравнения даты ввода с таблицей "возрастные группы".
Примечание: Добавлять в лист "возрастные группы" можно только при необходимости.
Последняя строка со значением используется, чтобы рассмотреть, является ли кто-то слишком старым.
Первый ряд листа используется, чтобы увидеть, слишком ли молодой человек.
AGEGROUP()
примет ссылку на ячейку для поиска
Пример AGEGROUP(B2)
проверит ячейку B2, при условии, что она содержит дату, и вернет групповое назначение (U 5, U 6, U7 ...).
Поиск дат вручную (вместо ссылки на другую ячейку) может быть выполнен вложением DATE
внутри AGEGROUP
. Вы должны следовать правильным аргументам для DATE
(год, месяц, день).
Пример AGEGROUP(DATE(2010,1,21))
Я новичок в пользовательских функциях и не изучал варианты поддержки таких функций, как @param
или @return
и т. Д.
Сценарий приложений
/**
* Finds age group of the input value (date).
*
* @param {date} Input the date to compare to date ranges.
* @return Returns age groupd based on provided date.
* @customfunction
*/
function AGEGROUP(date) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var ages = ss.getSheetByName("age-groups");
var range = ages.getDataRange();
var values = range.getValues();
var i = 0;
var ranges = values.length;
var lastRow = ranges -1;
// loop through dateRanges
for(i; i < ranges; i++) {
// if date in AGEGROUP()
if(date >= values[i][1] && date <= values[i][2]) {
// return age group
return values[i][0];
}
// if child is too old
if(date > values[0][2]) {
return "Child is too young.";
}
// if child is too young
if(date < values[lastRow][1]) {
return "Child is too old.";
}
}
}