問題タブ [custom-function]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1733 参照

json - ImportJSON カスタム関数を使用してデータのサブセットを取得する

Trevor Lohrbeer のimportjson()カスタム関数を使用して、この JSON ソースから Google スプレッドシートにデータをインポートしています。

すべての情報を提供する必要はありません。具体的には、列 E、V、W、X、AA、AB、AC、AD のみが必要です。

このパラメーターで何をしているのかわからないことに気付く前に、いくつかのことを試しました。

上記のアイテムのみを取得するようにこの関数を変更するにはどうすればよいですか?

0 投票する
2 に答える
363 参照

json - 同じ名前の JSON データのフィルタリング

Google スプレッドシートで JSON を使用して Zip を検索し、郡を見つけています。郡だけ返してほしい。ImportJSON 関数が機能するように、すべての値を返すようにできます。

これが私の式です。参照のすべての順列を試しましたが、フォーマットする方法がわかりません。

これは、Google Maps Geocoding API からの JSON データです。郡の長い名前だけが必要です。この例では、「オレンジ カウンティ」です。

0 投票する
1 に答える
288 参照

javascript - Google Appsスクリプトは範囲引数をループします

Google Apps スクリプト エディターを試していますが、単純な for ループで奇妙な結果が得られます。

スプレッドシートがあるとします

ここに画像の説明を入力

スクリプトエディタで関数を書きます:

返される値は 9 であると予想されますが、代わりに 045 が返され、array.length が返されます。

グーグルで調べてみましたが、array.map 関数を使用していくつかの奇妙な回避策を見つけました。私は何か間違ったことをしていますか、それはプレーンなJavaScriptではないはずですか?

0 投票する
1 に答える
171 参照

javascript - Google Apps Script を使用して日付を比較するという面倒な問題

今日、GAS を使用して 2 つの日付を比較するという問題に直面しcurrentDateましscheduledDaterow[3]

私はすでに 5 時間費やしました (運が悪かったことを願っています)。ここで説明する最初のことは、セルがどのように埋めscheduledDateられるかです:結果をまたはとしてセルに表示します (表示形式の設定方法によって異なります)。=SubtractDaysFromDate('2016'!A54, 8)8'2016'!A5408/07/201608.07.2016

=SubtractDaysFromDate()ソースコードは次のとおりです。

これが私のスクリプトのソースコードです:

入力を確認するには、上記のリンクに移動して、2016(このシート=SubtractDatesFromDate()から減算する日付を取得する)という名前のシートとРассылка(このシートで私のスクリプトが実行される) を確認できます。

続行するには、私のスクリプトは、=SubtractDaysFromDate()呼び出されたシートのこれらの減算された日付 ( ) を持つすべてのセルを調べ、現在の日付が(つまり、このシートのすべてのセルを含む列)Рассылкаと等しいかどうかを確認してから、電子メールを送信します。scheduledDate=SubtractDaysFromDate()

scheduledDate問題は、 (結果の )の日付のごく一部=SubtractDaysFromDate()は正しく認識されますが、別の部分は認識されずに として取得されること01.01.1970です。

問題を説明するために、スクリプト ログを次に示します。

上記のコードを見ると、一部の日付では比較が完全に機能することが明らかです。

それらの他の部分については、そうではありません:

理解を深めるために、GS シートへのリンクを次に示します: https://docs.google.com/spreadsheets/d/1azDfWZWDSVTVVKLaJZlsRDbW21-Cps8Hx8M2kbclw-g/edit?pli=1#gid=2147296153

正しく機能させるために重要なことを見逃していないか確認していただけますか? によって計算された日付の一部が=SubtractDatesFromDate()スクリプトで正しく認識され、別の部分が正しく認識されないのはなぜですか?

どうすれば修正できますか?この問題を解決するための結果志向の試みはすべて高く評価されます。


編集しました。これは、既に編集したコードの一部です。

Mu の質問はrow[2]、シート内の値を取得し、それをリンク先Рассылкаの変数に書き込む方法です。適切な使用方法になりますか?for (var i = 0; i < bookingsData.length; ++i) {2016var mailingTopic = mailingData.row[2];

0 投票する
0 に答える
1015 参照

javascript - ImportJSON を使用する場合のデータの並べ替え

ImportJSON scriptの使用に基づいて、Google スプレッドシートを使用してアプリから調査データを抽出しています。

データが GS にロードされる前に、AZ でソートされたデータを取得する方法はありますか?

データがGSにあると、データをソートしようとすると、リンクはデータを元の形状に戻すだけです。

=ImportJSON("https://xxxxx.net/json?key=Mg.Clxt6A.TV1DFtPA0k8Ehpb0RDxyLH7xhU8", "/elements", ",noTruncate,Headers")

0 投票する
2 に答える
18705 参照

javascript - Google スプレッドシートの ImportXML 制限を超えるには

現在、「スクレイピングの問題」に取り組んでいます。特に、ウェブページから著者の名前を Google スプレッドシートに抽出したいと考えています。実際には関数=IMPORTXML(A2,"//span[@class='author vcard meta-item']")は機能していますが、スクレイピングするリンクの量を増やした後、無限にロードし始めます。

だから私は調査して、この問題はグーグルの限界があるという事実によるものであることを発見しました。

「簡単にコピー」できる制限またはスクリプトを超えることを知っている人はいますか? - 私は本当にコーディングの予感がありません。

0 投票する
1 に答える
1039 参照

google-apps-script - スプレッドシートを開くたびにカスタム関数の結果をキャッシュする

カスタム関数を使用してデータをロードした Google スプレッドシートがあります。カスタム関数は REST API を呼び出し、データを変換して表示します。

問題は、ドキュメントを開くたびに関数が呼び出され、すべての REST API 呼び出しが終了することです。

サービス呼び出しを手動でトリガーしてデータを更新し、その間に前回のデータを表示できるようにする必要があります。

どうすればそれを達成できますか?

0 投票する
1 に答える
266 参照

google-apps-script - Google スプレッドシートのカスタム関数を標準関数に置き換える

セルの範囲があり、列が特定の行の最大値を持つ回数を増やしたいと考えています。

サンプル:

期待される:

最大値にはアスタリスクが付いています。列のaスコアは 2 番目のデータ行に最大値があるdため 1、列のスコアも 1 番目のデータ行に最大値があるため 1、列のhスコアは 3 番目と 4 番目のデータに最大値があるため 2 です。行。残りの列はどの行にも最大値がないため、0 になります。

1行だけで、各列にこの式をコピーできますが、それで十分ですが、 max row-wise を適用するものが必要ですCOUNTIF(B2:B10, MAX($B2:$B10))

私はこの Google Apps スクリプトを作成しましたが、その応答性が気に入りません (セルに "読み込み中..." がほぼ 1 秒間表示されるのは、ネイティブ関数で得られる迅速さと比較して、ちょっと腹立たしいことです)。

そのコードを組み込み関数に置き換える方法についてのアイデアはありますか? 一定数の補助行または列を追加してもかまいません (つまり、データセットを拡張する場合、新しいデータ行または列ごとにヘルパー行または列を手動で追加したくありません)。 )。

各行の最大値を持つ列のヘッダーを収集する追加の列を追加できると思います。次に、各データ列について、ヘッダーがその補助列に表示される回数を数えますが、あまりきれいに見えません。