【发布时间】:2020-01-27 21:19:29
【问题描述】:
我正在尝试创建一个公式来计算 Google 表格上的净推荐值。我的公式有效,但只有当我指定确切的范围时。我的问题是,随着时间的推移,这个特定的工作表会随着数据的增长而增长,我不想继续重新选择范围。我想要做的是选择整行,让它自动更新 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;
}
【问题讨论】:
-
numArr参数从何而来? -
@AndrewLohr 它来自我在谷歌表格中突出显示的范围。例如,A2:A25
-
抱歉,我不熟悉 google 表格集成 - 您是否完全控制 numArr 参数?从你所说的,听起来谷歌表只是把它传给你。无论您突出显示一个范围还是整行,数组的结构是否相同?
-
是的,您可以控制阵列。调用函数时,使用光标选择范围
-
您能否编辑您的问题,如何调用 NPS 函数?
标签: javascript google-apps-script google-sheets