Вы можете определить функцию
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 элемента, по одному на каждый уровень, который вы хотите посчитать.Если хотите, скажем, результаты за май, звоните
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