私はコードアカデミーを介してJavaScriptコードの最低限の作業を行っています。私は家族のビジネスでスプレッドシートを構築するのにも役立ちます。また、2017年の新しいスプレッドシート(遅い!!)には、シート内の関数呼び出しを非常に扱いにくくする追加の機能があります。今すぐ使用する必要がある非常に単純なカスタム関数を試してみてください。問題に踏み込んで、問題の領域以外の最初のスクリプトからすべてを切り取ってください。一致する文字列
手数料(プラットフォーム、金額)は、それぞれ名前と数値が必要です。これらの値に基づいて私は手数料式を設定します。名前に一致する問題を発見しました。問題領域を除くすべてを削除した後、私が持っているすべては、次のとおりです。(セルE4から呼び出さ)
=commission(c4,d4)
、戻り値はFALSEです:
function commission(platform, amount) {
return platform=="AB";
};
はそれのようにスプレッドシートから実行されます。
C4はAB
(今は無関係) D4は1000年
問題が含まれているテキストが含まれている関数がtrueなどの条件を評価していなかったif(platform == "AB") {.......
で起こりました。私は、プラットフォームの価値を返すためにそれを書き直したとき、関数が呼び出されたe4のセルに「AB」が返されました。
変数は、c4の正しい内容をはっきりと読んで返しますが、条件文でこの値を認識しません。
JavaScriptで条件文を確認しましたが、==
と===
の両方を使用しています。違いがあるかどうかわからない、両方を試してみてください。単一引用符と二重引用符を試しました。
私はクロスポストを要求した良いシートフォーラムに投稿しました。
は、あなたが出力をconsole.loggingしようとしたことがありますか?毎回スプレッドシートを使用すると、c4列に余分なスペースやその他のものがあり、それが原因かもしれません。さもなければ、スプレッドシートのそのセクションと、関数に情報を渡す方法と、残りの関数を見る必要があると思います。 –
'==='は、MDNのドキュメントに書かれているように、より厳密な等価比較を行います。https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators –