問題タブ [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.
json - ImportJSON カスタム関数を使用してデータのサブセットを取得する
Trevor Lohrbeer のimportjson()
カスタム関数を使用して、この JSON ソースから Google スプレッドシートにデータをインポートしています。
すべての情報を提供する必要はありません。具体的には、列 E、V、W、X、AA、AB、AC、AD のみが必要です。
このパラメーターで何をしているのかわからないことに気付く前に、いくつかのことを試しました。
上記のアイテムのみを取得するようにこの関数を変更するにはどうすればよいですか?
json - 同じ名前の JSON データのフィルタリング
Google スプレッドシートで JSON を使用して Zip を検索し、郡を見つけています。郡だけ返してほしい。ImportJSON 関数が機能するように、すべての値を返すようにできます。
これが私の式です。参照のすべての順列を試しましたが、フォーマットする方法がわかりません。
これは、Google Maps Geocoding API からの JSON データです。郡の長い名前だけが必要です。この例では、「オレンジ カウンティ」です。
javascript - Google Apps Script を使用して日付を比較するという面倒な問題
今日、GAS を使用して 2 つの日付を比較するという問題に直面しcurrentDate
ましscheduledDate
たrow[3]
。
私はすでに 5 時間費やしました (運が悪かったことを願っています)。ここで説明する最初のことは、セルがどのように埋めscheduledDate
られるかです:結果をまたはとしてセルに表示します (表示形式の設定方法によって異なります)。=SubtractDaysFromDate('2016'!A54, 8)
8
'2016'!A54
08/07/2016
08.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) {
2016
var mailingTopic = mailingData.row[2];
javascript - ImportJSON を使用する場合のデータの並べ替え
ImportJSON scriptの使用に基づいて、Google スプレッドシートを使用してアプリから調査データを抽出しています。
データが GS にロードされる前に、AZ でソートされたデータを取得する方法はありますか?
データがGSにあると、データをソートしようとすると、リンクはデータを元の形状に戻すだけです。
=ImportJSON("https://xxxxx.net/json?key=Mg.Clxt6A.TV1DFtPA0k8Ehpb0RDxyLH7xhU8", "/elements", ",noTruncate,Headers")
javascript - Google スプレッドシートの ImportXML 制限を超えるには
現在、「スクレイピングの問題」に取り組んでいます。特に、ウェブページから著者の名前を Google スプレッドシートに抽出したいと考えています。実際には関数=IMPORTXML(A2,"//span[@class='author vcard meta-item']")
は機能していますが、スクレイピングするリンクの量を増やした後、無限にロードし始めます。
だから私は調査して、この問題はグーグルの限界があるという事実によるものであることを発見しました。
「簡単にコピー」できる制限またはスクリプトを超えることを知っている人はいますか? - 私は本当にコーディングの予感がありません。
google-apps-script - スプレッドシートを開くたびにカスタム関数の結果をキャッシュする
カスタム関数を使用してデータをロードした Google スプレッドシートがあります。カスタム関数は REST API を呼び出し、データを変換して表示します。
問題は、ドキュメントを開くたびに関数が呼び出され、すべての REST API 呼び出しが終了することです。
サービス呼び出しを手動でトリガーしてデータを更新し、その間に前回のデータを表示できるようにする必要があります。
どうすればそれを達成できますか?
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 秒間表示されるのは、ネイティブ関数で得られる迅速さと比較して、ちょっと腹立たしいことです)。
そのコードを組み込み関数に置き換える方法についてのアイデアはありますか? 一定数の補助行または列を追加してもかまいません (つまり、データセットを拡張する場合、新しいデータ行または列ごとにヘルパー行または列を手動で追加したくありません)。 )。
各行の最大値を持つ列のヘッダーを収集する追加の列を追加できると思います。次に、各データ列について、ヘッダーがその補助列に表示される回数を数えますが、あまりきれいに見えません。