Googleアプリのスクリプトを使用して、スプレッドシートの1列のみから文字列値を取得します(後でif条件と比較するため)。私はインターネットを検索し、このリンクを見つけました-これが愚かに聞こえたら申し訳ありませんが、Googleアプリのスクリプトは初めてです- https://developers.google.com/apps-script/class_spreadsheet
var values = SpreadsheetApp.getActiveSheet().getRange(2, 3, 6, 4).getValues();
私はそれが役立つに違いないと思います、唯一の問題は、値を取得したい列が動的であるということですので、この列の範囲をどのように設定しますか
単に使用する場合:
var values = SpreadsheetApp.getActiveSheet().getDataRange().getValues()
行と列でインデックス付けされたシート内のすべてのデータの2次元配列を取得します。
したがって、列A、row1の値を取得するには、values[0][0]
、values[1][0]
列A、行2、values[0][2]
列C行1など...
Forループ(単一の列)で反復する必要がある場合:
for(n=0;n<values.length;++n){
var cell = values[n][x] ; // x is the index of the column starting from 0
}
Forループで(1行で)繰り返す必要がある場合:
for(n=0;n<values[0].length;++n){
var cell = values[x][n] ; // x is the index of the row starting from 0
}
行をループして列の値を取得するはるかに簡単な方法..
var values = SpreadsheetApp.getActiveSheet().getDataRange().getValues();
values.forEach( function(row) {
row[4] // column index as 4
});
以下は、動的な列の値を取得するために使用するスクリプトです。
var SS = SpreadsheetApp.getActiveSheet()
var Avals = SS.getRange("A1:A").getValues();
var numberOfValues = Avals.filter(String).length;
var RangeVals = SS.getRange(1,1,numberOfValues).getValues();
ただし、動的に変化する開始点に基づいて、どの開始行を変更する必要はありませんでした。それがどのように行われるかを見てみたいと思います。