對于我的費用跟蹤器,我在 Google 表格中的一項自定義功能允許用戶查看他們在服裝品牌上花了多少錢。這是來自 Google 表格的圖片:

以下函式用于實作此目的:
function perCentBrand(brand){
var sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var values = sh.getRange(2,1,sh.getLastRow()-1,sh.getLastColumn()).getValues();
var total = 0;
var sum = 0;
values.forEach(function(row){
total =row[1];
if (row[2].toLowerCase() == brand.toLowerCase()){sum =row[1]}
})
var val = "You spent a total of " (sum*-1) " on " brand " out of " (total*-1);
var ui = SpreadsheetApp.getUi();
ui.alert(val)
}
然而,這個函式也考慮了正數,這些正數應該是收入數字,而不是支出數字。因此,在運行該函式時,會顯示以下訊息:

由于考慮了正數,所以總數表示-270應該是什么時候90。如何使函式忽略正數?
編輯:
建議答案后提醒:

建議答案后的功能:
function perCentBrand(brand){
var sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var values = sh.getRange(2,1,sh.getLastRow()-1,sh.getLastColumn()).getValues();
var total = 0;
var sum = 0;
values.forEach(function(row)
{
if(row[1] < 0 )
{
total =row[1];
}
else if (row[2].toLowerCase() == brand.toLowerCase()){sum =row[1]}
})
var val = "You spent a total of " (sum*-1) " on " brand " out of " (total*-1);
var ui = SpreadsheetApp.getUi();
ui.alert(val)
}
uj5u.com熱心網友回復:
如果在 (row[1] < 0) 部分內部,則 row[2] 部分需要是單獨的。不是其他如果。
values.forEach(function(row) {
if (row[1] < 0) {
total =row[1];
if (row[2].toLowerCase() == brand.toLowerCase()) {
sum =row[1];
}
}
})
uj5u.com熱心網友回復:
試一試:
function perCentBrand(brand) {
const spreadSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const values = spreadSheet
.getRange(2, 1, spreadSheet.getLastRow() - 1, spreadSheet.getLastColumn())
.getValues();
let total = 0;
let sum = 0;
values.forEach((row) => {
const brandNamesMatch = row[2].toLowerCase() == brand.toLowerCase();
const valueIsAnExpense = row[1] <= 0;
if (valueIsAnExpense) {
const expenseValue = Math.abs(row[1]);
total = expenseValue;
if (brandNamesMatch) {
sum = expenseValue;
}
}
});
const alertText = `You spent $${sum} out of $${total} on ${brand}`;
const modal = SpreadsheetApp.getUi();
modal.alert(alertText);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/452734.html
上一篇:獲取下拉選單的值
