Google Apps ScriptでString型文字列を数値に変換する方法(数値→文字列も)
Google Apps Script(GAS)でString型の文字列変数を数値型の変数に変換する方法を紹介します。
文字列→数値に変換することに加え、数値→文字列の変換についても解説していきます。
GASの文字列→数値の変換はNumber又はparseInt
Google Apps Script(GAS)で、文字列を格納するString変数を数値型の変数に変換するには2種類の方法が用意されています。
- Number(String)
- parseInt(String)
Number,parseIntの引数にString型の変数を指定すると、数値側の変数に変換されます。
function stringToNumber() {
//数字をダブルクオーテーションで文字列として定義する
let str = "123456";
//そのまま文字列としてログ表示
Logger.log(str);
//Number、parseIntで文字列を数値に変換
Logger.log(Number(str));
Logger.log(parseInt(str));
}
それぞれ数値型に変換して、ログ出力されます。
数値型に変換することで、+,-,*,/の四則演算が可能になります。
parseIntとNumberの違いは?
GASで文字列→数値に変換する方法として、parseIntとNumberの2つがあると紹介しましたが、この2つにはどういった違いがあるのでしょうか。
Numberは文字列が数値に合致するものの場合には、数値に変換を行います。
しかし、数字以外の文字が含まれていた場合、「数字ではない=Not a Number(NaN)」として、NaNという値になります。
一方、parseIntの場合は、文字列の中に数字以外が含まれていても、そこまでの数字部分のみを数値型変数に変換します。
例えば、「"123ABC"」という文字列をNumberとparseIntでそれぞれ変換すると、以下のようになります。
- Number(“123ABC"):NaN
- parseInt(“123ABC"):123.0
parseIntのほうが部分的にでも数値変換できるというメリットがありますが、誤った数値に変換されるというデメリットもあります。
また、「"ABC123″」といった文字列の場合は、parseIntでも変換できず、NaNの値になります。
GASの数値→文字列の変換はtoString()
逆に数値型の変数を文字列のString変数に変換する方法は、Google Apps Script(GAS)では「toString()」メソッドを使います。
function numberToString() {
//数値型の変数を定義する
let num = 123456;
//そのまま数値としてログ表示
Logger.log(num);
//toStringメソッドで数値を文字列に変換
Logger.log(num.toString());
}
文字列に変換することで、文字列としての連結が可能なります。
カンマ(,)入り数字の文字列を数値変換する方法は?
なお、Google Apps Script(GAS)で「123,456」のようなカンマが入った数字の文字列を、数値型の変数に変換するには一工夫が必要になります。
Numberメソッドで変換しようとすると、カンマが含まれていることで「数値ではない」と判定し、「NaN」となって変換できません。
parseIntメソッドの場合、カンマ(,)前までの数字は変換できますが、カンマ以降が無視されるので、「123」という変換結果となります。
こうしたカンマ区切りを防ぐためには、Stirngオブジェクトで置換を行うreplaceメソッドを利用します。
※GASのreplaceメソッドの解説記事はこちら↓
replaceメソッドで「,」を削除することで、文字列から数値の変換ができるようになります。
String.replace(“,","")
function commaStringToNumber() {
//カンマが入った数字を文字列として定義する
let str = "123,456";
//そのまま文字列としてログ表示
Logger.log(str);
//replaceメソッドでカンマを取り除いたあと、数値型に変換
Logger.log(Number(str.replace(",","")));
Logger.log(parseInt(str.replace(",","")));
}
replaceメソッドでは置換する文字がない場合は処理を行わず、エラーにはならないので、カンマ入り数字が入るケースに備え、設定しておくのがオススメです。
まとめ・終わりに
今回、Google Apps Script(GAS)で文字列を数値に変換、数値を文字列に変換する方法を解説しました。
文字列→数値はNumberやparseIntを使って変換し、数値→文字列はtoString()メソッドを使って変換します。
カンマが入っている数字を変換する場合には、文字列からカンマを取り除くことで数値に変換が可能です。
GASで文字列⇔数値の変換する際にはご参考ください。
※Google App Scriptでの文字列の各種処理・操作方法は以下の記事でまとめています。
ディスカッション
コメント一覧
お世話になります。
GASで値複写「CTRL+Shift+V」が出来ず困っております。
関数(=value(F2))で他のセル(\12,356など)を数字に変えて、その数字を値複写で別のセルに複写したいのですが、
マクロ記録で記録した後マクロ実施すると(#VALUE!)がコピ-されてしまいます。
どうやらGAS上での値を複写するとは「書式以外のセル内容を複写する」「関数ならば関数表記を複写する」となっているようで、「CTRL+Shift+V」とは異なるように感じております。
解決方法をご教授頂けませんでしょうか。
よろしくお願い致します。