我试图找到这个,但是我无法找出发布的其他问题的答案。我有两个条件用于对数据进行排序。一年中的月份,如果它是1、2或3。
我需要的是摘要页面,以计算特定排名每个月有多少输入
我希望所有这些都有意义,我试图尽我所能来阐明,我对此实在感到不知所措,并且没有任何类型的编码/脚本经验。 感谢您的帮助!
我使用下面的代码返回数据的日期和等级以及提取月份。 然后,它将使用if语句中的那几个月放入摘要页面。我不知道该怎么做,是在这里放一个计数公式。像这里的这段代码一样,我希望它类似于公式if = month = 1和tiers(ranks)= 1然后进行计数(它不能添加,因为如果添加,页面更新时它将添加到已经计算的数字中)
for(var i =8;i<=j;i++) { //loops through a data table to see dates and ranks
var dates = oppwon.getRange(i,22).getValue();
var tiers = oppwon.getRange(i,14).getValue();
var month = new Date(dates).getMonth()+1;
switch (true){
case((month==1)): //if it is january
if(tiers==1) // if it is rank 1
jan1.setValue();
if(tiers==2)
jan2.setValue();
答案 0 :(得分:2)
代替循环中的setValue,您应该考虑在变量/秒内进行计数,并且仅在循环完成后才对setValue进行计数。
以下建议的一些代码:
for(var i =8;i<=j;i++) { //loops through a data table to see dates and ranks
var dates = oppwon.getRange(i,22).getValue();
var tiers = oppwon.getRange(i,14).getValue();
var month = new Date(dates).getMonth()+1;
var countTiers = {}; //count by tiers of months
countTiers[`m${month}`][`t${tiers}`]++;
您最终将得到一个对象,例如循环后{m1:{t1:2,t2:1}}。
然后,您可以在所需列中设置Value作为最终计数。
答案 1 :(得分:1)
您可以定义一个函数
function countTiersByMonth ( dataTable, firstline, lastline ) {
var result = [ [0,0,0],[0,0,0],[0,0,0], [0,0,0],[0,0,0],[0,0,0], [0,0,0],[0,0,0],[0,0,0], [0,0,0],[0,0,0],[0,0,0] ];
var dates;
var tiers;
var month;
for(i = firstline; i<=lastline; i++) {
dates = dataTable.getRange(i,22).getValue();
tiers = dataTable.getRange(i,14).getValue();
month = new Date(dates).getMonth();
switch (tiers){ // we filter by tiers because it seems that you only care about
// tiers 1, 2, 3 wheras you care about all the months
case 1:
case 2:
case 3:
result[month][tiers-1]++; //+1 for the respective tier
// of the respective month
break; //other tiers are ignored
};
};
return result;
};
这将获取数据表,第一行(在示例中为8)和最后一条相关行(在示例中为“ j”),并输出一个包含12个元素的数组,每个月一个,每个元素包含3个元素,即您要计数的每一层。 如果需要,可以说5月的结果,您可以致电
tierlist = countTiersByMonth(oppwon, 8, j) // We do the counting here
print(tierlist[4][0]) // arrays start at 0, so May -> [4], Tier 1 -> [0]
print(tierlist[4][1]) // May, Tier 2
print(tierlist[4][2]) // May, Tier 3