I need to run a script which contains the logic: If isNumber, Then DoSomething.
I've run other such if then tests such as if blank, and if cell contains "x". It should be simple but I can't find a solution. I've tried getNumberFormat, innum, isnumber, etc.
function ifIsNumber() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getActiveSheet();
var substring1 = s.getRange("A1").getNumberFormat();
s.getRange("B1").setValue(substring1);
}
This code checks cell A1 and returns in cell B1 the string "0.###############", for both cells containing numbers AND text. How can I identify which cells are numbers?
This will check if A1 is a number:
function ifIsNumber() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getActiveSheet();
var substring1 = s.getRange("A1").getValue();
if (!isNaN(parseFloat(substring1)) && isFinite(substring1)) {
s.getRange("B1").setValue("Is a number");
} else {
s.getRange("B1").setValue("Not a number");
}
}
Google Apps Script could use most of the JavaScript methods and operators.
One alternative to check if an object is a number is to use typeof.
The following code will return the type of the value of the cell specified by the reference.
function typeofcellvalue(reference) {
var ss = SpreadsheetApp.getActive();
var rng = ss.getRange(reference);
var value = rng.getValue();
return typeof value;
}
Example of use as a custom function
=typeofcellvalue("A1")
If cell A1
number
. string
.If you want to do number stuff if the value is a number or a string representation of a number you can do the following:
if (!isNaN(myVar)){//myVar is either a number or a string representing a number
myNumericVar = +myVar;//convert myVar to number if necessary
//do number stuff
} else {
//do non-numeric stuff
}
See:
(Built-in) way in JavaScript to check if a string is a valid number
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With