2016-02-25 2 views
-1

У меня есть база данных в листе с именем "ма-С": ма тянь (в $$) T100 65 T101 100 T102 20 ... и многие заказы на другом листе: T101 (1), T102 (2), T103 (3), ...Рассчитать заказ электронной коммерции в электронной таблице с помощью Google App Script

Поэтому я хочу создать новую функцию для расчета общей суммы заказов, используя базу данных " ма-СЕЙЧ».

Я написал функцию в скрипте приложений, но для отображения результата требуется слишком много времени, поэтому он не работает.

function tien(n) { 
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("ma-sach"); 
    var data = sheet.getDataRange().getValues(); 
    var last = sheet.getLastRow(); 
    var ma = new Array(last); 
    var tien = new Array(last); 
    for (var i = 0; i < last; i ++){ 
    ma[i] = data[i][0]; 
    tien[i] = data[i][1]; 
    while (n.search(ma[i]) !== -1){   
    var j = n.search(data[i][0]); 
    var sl = parseInt(n.charAt(j+5)); 
    kq = kq + data[i][1]*sl; 
    } 
    } 
return kq; 
} 

Можете ли вы показать мне, как исправить ошибку, чтобы она работала? Спасибо

ответ

0

Я, наконец, решил! Вот код для кого-то нуждается:

function tien(n) { 
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("ma-sach"); 
    var last = sheet.getLastRow(); 
    var data = sheet.getRange(1,1,last,2).getValues(); 
    var kq = 0; 
    var ma = new Array(last); 
    var tien = new Array(last); 
    n = n.replace(" ",""); 
    n = n.toUpperCase(); 
    if (n.search("BONUS") !== -1) { n = n.replace("BONUS",0)} 
    for (var i = 0; i < last; i++){ 
    ma[i] = data[i][0]; 
    tien[i] = data[i][1]; 
    while (n.search(ma[i]) !== -1){   
    var j = n.search(ma[i]);  
    n = n.replace(ma[i],"");  
     if (n.charAt(j)=="("){var sl = parseInt(n.charAt(j+1))}else{var sl = 1};  
    kq = kq + tien[i]*sl;  
    } 
    } 
    return kq; 
}