あるスプレッドシートでシートをスキャンし、IF に一致するすべての行を見つけて、一致する行のみを別のスプレッドシートに書き込む Google スプレッドシートで実行するスクリプトを作成しようとしています。私はスクリプトにまったく慣れていませんが、何かをつなぎ合わせました。正確にはわかりません。それはぎこちない混乱ですが、私はそれが機能することに近づいているように感じます.
私が遭遇する問題:(JavaScriptのなめを知らないことを超えて):
ソースシートの全範囲を検索しているとは思えません。最初の真の条件を見つけて、それをターゲット シートに書き込み続けます。以上。オーバー。オーバー。
以下を使用して同様の結果が得られました。
for(n=0;n<data.length;++n){
if (data[n][13]=="yes"&&data[n][16]!="yes"){ ;
target.push(data[n]);
最終的には、いくつかの重複するチェックと関数を書きたいと思っていますが、その本質を解決したいと考えています。
肉:
function test() {
var source = SpreadsheetApp.openById("0A....nc");
var sh = source.getSheetByName("NA");
var data=sh.getDataRange().getValues()
var target=new Array();
for(i=0;i<data.length;++i){
for (j=0;j<data[i].length;++j){
if (data[i][13]=="yes"&&data[i][16]==""){ ;
target.push(data[i]);
}
}
if(target.length>0){
var ss = SpreadsheetApp.openById("0A....Gc");
var sh2=SpreadsheetApp.setActiveSheet(ss.getSheetByName("Sheet5"));
var xx = sh2.getLastRow();
sh2.getRange(xx+1,1,target.length,target[0].length).setValues(target);
}
}
}
誰でも提供できる助けをありがとう!
編集:私が望むように何かを動作させることができました。
function testtest() {
var source = SpreadsheetApp.openById("0A....Wc");
var sh = source.getSheetByName("Sheet1");
var data = sh.getDataRange().getValues()
var ss = SpreadsheetApp.openById("0A....mc");
var sh2 = ss.getSheetByName("Sheet1");
var xx = sh2.getLastRow();
var target=new Array();
for(i=0;i<data.length;++i){
if (((data[i][13]=='yes')||(data[i][13]=='YES')||(data[i][13]=='Yes')) && !((data[i][16]=='yes')||(data[i][16]=='YES')||(data[i][16]=='Yes'))){
target.push(data[i]);}
}
var newData=new Array();
for(i in target){
var sh2D = sh2.getDataRange().getValues();
var row = target[i];
var duplicate = false;
for(j in sh2D){
if(row.join() == sh2D[j].join()){
duplicate = true;
}
}
if(!duplicate){
newData.push(row);
}
}
if(newData.length>0){
var dest = sh2.getRange(xx+1,1,newData.length,newData[0].length);
dest.setValues(newData);
}
}
はい、ずさんです。現在、新しいターゲット シートのセルを更新し、その変更をマスター リストに変換できるように取り組んでいます。実際には、作業が完了したときに列に「はい」を追加してから、マスターを更新します (25 人以上の人によって常に並べ替えられるシートで)。
ああ、大文字と小文字や余分なスペースに関係なく「はい」を検索する方法を誰かが知っていれば、IF 行をクリーンアップするのに役立ちます。