データ セットのフィルター基準を取得することは可能ですか。たとえば、列の 1 つが「部門」で、データをフィルター処理して「IT」のみを表示したとします。フィルタリングされた基準「IT」を取得するにはどうすればよいですか。他の操作を行うには、フィルタリングされた基準を GAS に取り込む必要があります。
ありがとう。
データ セットのフィルター基準を取得することは可能ですか。たとえば、列の 1 つが「部門」で、データをフィルター処理して「IT」のみを表示したとします。フィルタリングされた基準「IT」を取得するにはどうすればよいですか。他の操作を行うには、フィルタリングされた基準を GAS に取り込む必要があります。
ありがとう。
単純なフィルターについては、この例を試してください。最初の列から情報をフィルタリングします (XXX を意味のあるものに変更します)。
function onOpen(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var filterMenuEntries = [{name: "filter Column1", functionName: "filter"}];
ss.addMenu("choose filter", filterMenuEntries);
}
function filter(){
var sheet = SpreadsheetApp.getActiveSheet();
var rows = sheet.getDataRange();
var numRows = rows.getNumRows();
var values = rows.getValues();
for (var i=1; i <=numRows -1; i++){
var row =values[i];
// Column value
var myValue = row[0];
// filter value
if (myValue == "XXX"){
sheet.hideRows(i+1);
}
}
}
Google スプレッドシートには既に FILTER 式があります (私はいつもこのページを使用して、その方法を思い出させてくれます)。たとえば、データが次のように見える場合
A
1 Department
2 IT Department (Edinburgh)
3 Department of IT
4 Other Department
フィルタリングされたリストを取得するには、式を使用できます
=FILTER(A:A;FIND("IT",A:A)>0)
(作業例はこちら)
アプリ スクリプトで何かを完全に実行したい場合は、Romain Vialard がフィルター機能を備えたマネージド ライブラリを作成しました。2D Array2 ライブラリをインストールして使用する手順は次のとおりです。