Я пытаюсь создать формулу для расчета Net Промоутерский балл в Google Sheets. У меня есть формула работает, но только когда я указываю точный диапазон. Моя проблема в том, что этот лист c со временем будет расти вместе с данными, и я не хочу повторного выбора диапазона. Что я хочу сделать, это выбрать всю строку и просто позволить ему автоматически обновлять счет NPS. Моя проблема с этим подходом состоит в том, что каждая пустая ячейка считается нулем, что портит мои проценты. Как я могу заставить мою функцию игнорировать пустые ячейки ???
Вот моя попытка:
/**
This is a custom formula that calculates the Net Promoter Score.
@customFunction
*/
function NPS(numArr) {
var detractors = new Array();
var passive = new Array();
var promoters = new Array();
var i = 0;
for (i = 0; i < numArr.length; i++) {
if (isNaN(numArr[i])) {
console.log(numArr[i]);
} else {
if (numArr[i] >= 9) {
promoters.push(numArr[i]);
} else if (numArr[i] === 7 || numArr[i] === 8) {
passive.push(numArr[i]);
} else if (numArr[i] <= 6) {
detractors.push(numArr[i]);
}
}
}
var promoPercentage = promoters.length / numArr.length;
var detractorsPercentage = detractors.length / numArr.length;
return (promoPercentage - detractorsPercentage) * 100;
}