- SpreadSheetでGASで書いた独自の関数を呼び出すことができる
- SpreadSheetの組み込み関数をGASのスクリプトで呼び出すことができない(シート内だけで呼び出せる)
という仕様になっているようです(ちょっと信じられないんですが。勘違いかもしれません)。つまりシートの検索で使ってみたいQuery関数などは直接呼び出せないということになっているようです。で、その回避方法を思いついたので、、、
まずQuery関数はArrayで結果を返してくれるんですが、これをシート内で呼び出した場合、結果が複数あるとシートに複数行にわけて出力されます。これが大きなお世話な機能なんですが、この結果を1つのセルにおさめることができたらよくて、ここで独自の関数を組み合わせれば解決します。例えば、下記のようにArrayをCSVに変換する関数を用意します。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function ArrayToCSV(array){ | |
var csv=""; | |
for(var i=0;i<array.length;i++){ | |
csv+=array[i]+","; | |
} | |
csv=csv.slice(0,-1); | |
return csv; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var spreadSheet = SpreadsheetApp.getActiveSpreadsheet(); | |
var documentSheet = spreadSheet.getSheetByName("Words"); | |
var range =documentSheet.getRange("F8"); | |
var query = '=ArrayToCSV(query(E12:F27,"select F where E > ' +"'cc'"+'"))'; | |
range.setFormula(query); | |
Browser.msgBox(range.getValue()); | |
range.setFormula(""); |
0 件のコメント:
コメントを投稿