How to count the number of cells which contain specific text using Google sheet scripts?
Currently I\'am using the following script to count the number of cells which co
Use TextFinder class.
/**
* @customfunction
* @return count of given text in spreadsheet
* @param {string} text text to search
* @param {boolean} mec whether to match entire cell
* @param {boolean} mc whether to match case
*/
function COUNT_SS(text = 'NOT COMPLETE', mec = true, mc = true) {
return SpreadsheetApp.getActive()
.createTextFinder(text)
.matchEntireCell(mec)
.matchCase(mc)
.findAll()
.length;
}
=COUNT_SS()
=COUNTIF(Sheet1!C1:C1000;"=NOT COMPLETE")
How about this:
function COUNT_TEXT_ACROSS_SHEETS(sheetNames, range, text) {//text=['Complete','Not Complete']
var nA=sheetNames.split(',');
var tA=text.split(',');
var count = 0;
var cObj={};
cObj[tA[0]]=0;
cObj[tA[1]]=0;
nA.forEach(function(name) {
var sh=SpreadsheetApp.getActive().getSheetByName(name);
var vA = sheet.getRange(range).getValues();
vA.forEach(function(r) {
r.forEach(function(c) {
var idx0=c.indexOf(tA[0]);
var idx1=c.indexOf(tA[1]);
if(idx0!=-1 && idx1==-1)cObj[tA[0]]+=1;
if(idx0!=-1 && idx1!=-1)cObj[tA[1]]+=1
});
});
});
return Utilities.formatString('Count-%s:%s Count-%s:%s',tA[0],cObj[tA[0]],tA[1],cObj[tA[1]]);
};