ログインしているユーザーに基づいて別のスプレッドシートのデータをフィルタ処理するスプレッドシートをプログラムで作成する方法を探しています。Googleのスプレッドシート 'クエリ'機能をGoogle Appsスクリプトで使用できますか?
スプレッドシート内のクエリ機能を使用してこれを行うことができます。 しかし、アプリスクリプトからクエリ関数を呼び出す方法を見つけることができませんか?
これはできますか?サンプルコードに感謝します。おかげさまで
ログインしているユーザーに基づいて別のスプレッドシートのデータをフィルタ処理するスプレッドシートをプログラムで作成する方法を探しています。Googleのスプレッドシート 'クエリ'機能をGoogle Appsスクリプトで使用できますか?
スプレッドシート内のクエリ機能を使用してこれを行うことができます。 しかし、アプリスクリプトからクエリ関数を呼び出す方法を見つけることができませんか?
これはできますか?サンプルコードに感謝します。おかげさまで
いいえ、Google Apps Scriptから呼び出すことができるクエリ機能のAPIはありません。 (実際にこのようにスプレッドシート関数を呼び出す方法はありません。)
あなたはそれを自分で書くことなく、いくつかの同様の機能を得ることができます。 2D Arrays Libraryには、一致する行を検索するためのさまざまな「フィルタ」機能が含まれています。
おそらく、数式を使って、必要以上に何かを得ることができます。
function testFormula() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[1];
var cell = sheet.getRange("A1");
cell.setFormula("=QUERY('Sheet0'!A1:B5;\"SELECT A, B\"; 0)");
}
ウィリアム、提案をありがとう。私はすでにスクリプトを通じて更新されたセルで 'Query'を使用しています。しかし、その行動は私が必要とするものではありません。しかし、ありがとう。 – awsamar
私はその上の制約があるかどうかわからない...
function test() {
var req = query("=QUERY(shopT!B2:E; \"select min(E) where (B=3 or B=4 and D=2) group by C, D\")");
Logger.log(req);
}
function query(request) {
var sheet = sp.insertSheet();
var r = sheet.getRange(1, 1).setFormula(request);
var reply = sheet.getDataRange().getValues();
sp.deleteSheet(sheet);
return reply;
}
これは仕事をしなければならない何かのように聞こえます。ありがとう! – awsamar
Mogsdad、Arraysライブラリは便利ですが、依然としてクエリ関数ほど有効ではありません。私は、ユーザーダッシュボードを構築するために可視化/グラフAPIを使用しようとしています。ダッシュボードをパーソナライズするには、ログインしたユーザーに基づいてスプレッドシートからデータをフィルタリングする機能が必要です。しかし、フィルタでは、複数の列を比較する必要がありました。これは、クエリ関数 '... col5 = "&cell1&"またはcol6 = "&cell2&"で簡単です。 – awsamar