我想要一個單元格來計算復選框設定為真的次數。我嘗試自己做,并寫了兩個不同的解決方案,但它們都沒有像我想要的那樣作業。
第一個:
function onEdit(e){
// count warnings
var warning1 = sheet1.getRange(6,10,lastRow,1).getValues();
var warning1count = sheet1.getRange(6,21,lastRow,1).getValues();
for(var i = 0; i < lastRow; i ){
if(warning1[i][0] == true){
sheet1.getRange(6 i,21,1,1).setValue(warning1count[i][0] 1);
}
}
}
每當整個作業表中發生某些變化時,這個值為 TRUE 的單元格就會增加 1,我不知道如何指定它以使其在設定為 TRUE 時添加一個并忽略我無法使用的所有其他編輯這里是對特定單元格的參考,因為我的每一行看起來都一樣,我想計算在其中任何一個中分別設定了多少次 true。
第二個:
/**
* Function to count warnings
*
* @param {cell} cell Original value
* @param {number} number New value
* @return How many times warning was given
* @customfunction
*/
function warning(cell, number){
var number = 0
if(cell == true){
number;
}
return number
}
它只在一個特定的單元格中作業,但它回傳 0 或 1,所以它基本上告訴我單元格是否設定為 true,我希望該值在它為 false 時保持不變,并在它設定為 true 時增加一。
編輯:另一篇文章沒有回答我的問題。它只參考了一個特定的單元格——我不能在我的情況下使用它。我有一個單元格范圍(J6:J),我想與另一個單元格范圍(U6:U)進行互動,但我只想在 J6 設定為 true 時更改 U6 中的值,與 U7-J7 等相同。我無法讓它作業,因為每當我使用范圍時,每當我編輯任何單元格時,它都會在整個范圍內發生變化,例如 - 如果我將 J6 設定為 true,它會在 U6 中給我 1,但是當我將 J7 設定為 true 時,它??會添加1 到 U6 和 U7,因為對應的單元格(J6 和 J7)都設定為真。我不知道如何讓 U6 只對 J6 做出反應。
我添加了一張照片以便更容易解釋,我基本上是希望右側的單元格計算左側單元格設定為 true 的次數。

uj5u.com熱心網友回復:
如副本中所寫,限制您的 onEdit:
/**
* @param {GoogleAppsScript.Events.SheetsOnEdit} e
*/
function onEdit(e) {
const requiredRange = {
//J6:J
startRow: 6,
endRow: Infinity,
startColumn: 10,
endColumn: 10,
},
requiredSheets = ['Sheet1'],
editedRange = e.range,
editedSheetName = editedRange.getSheet().getName(),
isEditedRangeInRequiredSheet = () =>
requiredSheets.some((sheetName) => editedSheetName === sheetName),
[editedRow, editedCol] = [editedRange.rowStart, editedRange.columnStart],
isEditedRangeInRequiredRange = () =>
editedRow >= requiredRange.startRow &&
editedRow <= requiredRange.endRow &&
editedCol >= requiredRange.startColumn &&
editedCol <= requiredRange.endColumn,
columnOffset = 12;
//exit code
if (
!isEditedRangeInRequiredSheet() &&
!isEditedRangeInRequiredRange() &&
!editedRange.isChecked()
)
return;
//else
const warningCountRange = editedRange.offset(0, columnOffset);
warningCountRange.setValue(warningCountRange.getValue() 1);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/496029.html
