1

私は少しGoogle Scriptで作業していますが、私の問題の解決策を見つけることができません。私がしようとしているのは、スプレッドシート上の2つのセルの内容に私の関数calculateRates()を乗算することです。ここに私のコードです:番号を返さないGoogleスクリプト

/** 
@customFunction 
*/ 
function calculateRates(hourDecimal, personRate) { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); //Access spreadsheet 
    var sheet = ss.getSheets()[0]; //Access sheet 

    var range = sheet.getDataRange(); //Access all cells 

    var values = range.getValues(); //Call to get value of certain cell 

    var totalEarned = hourDecimal * personRate; 
    Logger.log(totalEarned); 

    return totalEarned; 
} 

それに伴う問題は、私は、スプレッドシート上の関数のパラメータとして一緒に乗算するための2つのセルを指定した後、読み込みエラーがあるということです「結果は数値ではありませんでした。」私は私のスプレッドシート上で正しい機能を持っていることを知っているので、問題にはなりません。ご協力いただきありがとうございます!

+0

あなたはスプレッドシートのUIから関数を呼び出していますか?あなたが '= calculateRates(B1、C1)'と入力した場合の例ですか?また、あなたは引数として設定したセルを掛けるだけで、実際には関数の最初の4行を使わないか、もっとコードがありますか?最後に、これらの値は手動で入力されるか、または何らかの機能の結果として得られますか? – ocordova

+0

はい、私はスプレッドシートから関数を呼び出しています。より多くのコードがありますが、機能している別の機能ですが、この機能は問題があります。申し訳ありませんが、私は初心者ですので、私が思うすべてのスプレッドシートオブジェクトを思い出す必要があるかどうかはわかりません。値については、一方の値は手動で入力され、もう一方の値は関数の結果として入力されます。 – jgnibo

答えて

3

このエラーは、すべての数値ではない値(例:数値および文字列)を使用して計算を実行しようとすると発生します。

のGoogleスプレッドシートのデータを格納するセルの値に応じて、値をタイプNumberBooleanDateであってもよく、又はString(空のセルは、空の文字列が返されます)。これらの値がCustom Functionsによって使用される場合、Apps ScriptはそれらをJavaScriptの適切なデータ型として扱います。

"2 2"または"3/2"のようなスペースや数字以外の文字がセルに含まれている場合は、その値が文字列として扱われることを考慮する必要があります。計算の前にこれらの特殊文字を抽出します。

+0

今は動作しているように見えます。セルの内容を浮動小数点に変換して、そのトリックを行いました。ありがとう! – jgnibo

関連する問題