Jeśli chcesz utworzyć niestandardową funkcję, która daje taki sam efekt, jak funkcja arkusza kalkulacyjnego, musisz użyć Google Apps Script w taki sposób, aby wykonywał obliczenia, zamiast próbować go użyć do ustawienia formuły do arkusza kalkulacyjnego (który, jak zaznaczył Serge, nie zadziała, ponieważ jest niedozwolony).
(także po prostu być jasne dla przyszłych czytelników, skryptów Google Apps i ich funkcje niestandardowe nie może wykonywać obliczenia za pomocą arkuszy kalkulacyjnych Google formuł. Oni wykonują obliczenia w javascript języku. Z drugiej strony, skrypt, poprzez setFormulas puszka można użyć do napisania formuły arkusza kalkulacyjnego w komórce, w której formuła arkusza kalkulacyjnego wykona obliczenia ... ale nie może tego zrobić, jeśli skrypt jest używany jako funkcja niestandardowa (tj. Jeśli jest wywoływana w komórce z znak = =), ale jeśli skrypt jest wywoływany z innych środków, takich jak element menu lub wyzwalacz, czy jest to wyzwalacz odpowiadający na edycję arkusza kalkulacyjnego lub . Timer)
Tak, można napisać javascript do funkcji niestandardowej obliczać tygodni, dni i taki scenariusz może być:
function ageInWeeks(date) {
var mil = new Date() - new Date(date).getTime()
var seconds = (mil/1000) | 0;
mil -= seconds * 1000;
var minutes = (seconds/60) | 0;
seconds -= minutes * 60;
var hours = (minutes/60) | 0;
minutes -= hours * 60;
var days = (hours/24) | 0;
hours -= days * 24;
var weeks = (days/7) | 0;
days -= weeks * 7;
return weeks +' wks, ' + days + ' days'
}
To może być wprowadzone do arkusza kalkulacyjnego w każdej komórce z wyjątkiem D19 jeśli odnosi się do D19, na przykład:
=ageInWeeks(D19)
gdzie komórka D19 zawiera datę z przeszłości.
(Zauważ, że funkcja zwyczaj może być wolniejszy niż oryginalnego wzoru arkusza kalkulacyjnego)
Dziękuję za dokładną odpowiedź! Kod działa idealnie. – tomazzlender