[Goal] When a user edits a cell, I want the script to count the number of cells that contains the text "No" from a certain range (Colum B to K). From there, based on the number cells that contain the text "No," I want to insert certain text in cells of Column A (Header Name: AD/NAD).
Here's a sample sheet that you can refer to to understand the look of it. https://docs.google.com/spreadsheets/d/17A10THQL7X_DvoxORvBfPmfs1C_wizKj41oV5CVT0j4/edit?usp=sharing
[Difficulty] I've built the script so that when the user edits the cells between Column B and K, it would count the number of cells that contain the text "No." However, it's not counting correctly at all and I don't understand why.
[Code Sample]
function onEdit(e) {
var dsatAnalysisSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("DSAT Analysis");
const range = e.range;
const row = range.getRow();
const column = range.getColumn();
const adNADColumn = "A";
const c1ColumnNum = 2;
const c2ColumnNum = 3;
const c3ColumnNum = 4;
const c4ColumnNum = 5;
const c5ColumnNum = 6;
const c6ColumnNum = 7;
const c7ColumnNum = 8;
const c8ColumnNum = 9;
const c9ColumnNum = 10;
const c10ColumnNum = 11;
if (column == c1ColumnNum) {
checkPointForADNAD(dsatAnalysisSheet, adNADColumn, row);
} else if (column == c2ColumnNum) {
checkPointForADNAD(dsatAnalysisSheet, adNADColumn, row);
} else if (column == c3ColumnNum) {
checkPointForADNAD(dsatAnalysisSheet, adNADColumn, row);
} else if (column == c4ColumnNum) {
checkPointForADNAD(dsatAnalysisSheet, adNADColumn, row);
} else if (column == c5ColumnNum) {
checkPointForADNAD(dsatAnalysisSheet, adNADColumn, row);
} else if (column == c6ColumnNum) {
checkPointForADNAD(dsatAnalysisSheet, adNADColumn, row);
} else if (column == c7ColumnNum) {
checkPointForADNAD(dsatAnalysisSheet, adNADColumn, row);
} else if (column == c8ColumnNum) {
checkPointForADNAD(dsatAnalysisSheet, adNADColumn, row);
} else if (column == c9ColumnNum) {
checkPointForADNAD(dsatAnalysisSheet, adNADColumn, row);
} else if (column == c10ColumnNum) {
checkPointForADNAD(dsatAnalysisSheet, adNADColumn, row);
}
}
function checkPointForADNAD(dsatAnalysisSheet, adNADColumn, row) {
var checkPointColumnNum = 11;
var firstValueColumn = "B";
var lastValueColumn = "K";
var noCountValue = 0;
var checkValueOptions = dsatAnalysisSheet.getRange(firstValueColumn + row + ":" + lastValueColumn + row).getValues();
Logger.log(checkValueOptions);
Logger.log(noCountValue);
for (i = 0; i < checkPointColumnNum; i++) {
Logger.log(noCountValue);
if (checkValueOptions[0][i] == "No") {
noCountValue = i + 1;
Logger.log(noCountValue);
}
}
if (noCountValue == 0) {
dsatAnalysisSheet.getRange(adNADColumn + row).setValue("NAD");
} else if (noCountValue == 1) {
dsatAnalysisSheet.getRange(adNADColumn + row).setValue("Mostly NAD");
} else if (noCountValue == 2) {
dsatAnalysisSheet.getRange(adNADColumn + row).setValue("Barely NAD");
} else if (noCountValue == 3) {
dsatAnalysisSheet.getRange(adNADColumn + row).setValue("Mostly AD");
} else if (noCountValue >= 4) {
dsatAnalysisSheet.getRange(adNADColumn + row).setValue("AD");
}
}