2014-09-29 4 views
0

Я пытаюсь суммировать значения диапазона, но по какой-то причине это не суммирование. Любая идея почему? Я не очень хорошо в JavaScript, но у меня есть некоторые знания ...Значения диапазона

function bag(input) { 
    var sheet = SpreadsheetApp.getActiveSpreadsheet() 
    var AllValues = sheet.getRange(input).getValues(); 
    var FValue = ""; 
    var TotalGold = 0; 
    var TotalSilver = 0; 
    var TotalBronze = 0; 
    for(i = 0; i < AllValues.length; i++) { 
     var total = AllValues[i][0].split(" "); 

     for(i = 0; i < total.length; i++){ 
      if (total[i].indexOf("g") >= 0) { 
       var value = total[i].replace("g",""); 
       var gold = value * 1; 
       TotalGold = TotalGold + gold; 
      } 
      else if (total[i].indexOf("s") >= 0) { 
       var value = total[i].replace("s",""); 
       var silver = value * 1; 
       TotalSilver = TotalSilver + silver; 
      } 
      else if (total[i].indexOf("b") >= 0) { 
       var value = total[i].replace("b",""); 
       var bronze = value * 1; 
       TotalBronze = TotalBronze + bronze; 
      } 
      else { 
       return null; 
      } 
     } 
    } 
    return TotalGold + "g " + TotalSilver + "s " + TotalBronze + "b"; 
} 

ответ

0

Оказывается, вы переписав значение i вложенной итерации. Выберите другой идентификатор. Например: for (var j = 0; j < total.length; j++) { ... }

+0

спасибо, сейчас он работает. Я также должен был вынуть событие else, потому что если бы на диапазоне какая-то empety-ячейка, он вернет empety. Кстати, в формуле мне нужно использовать = bag («c5: c8»), например, как я могу сделать не нужно «в formular just = bag (c5: c8) ... спасибо – user3801128

Смежные вопросы