私はこのコードをSheet1のSheet2のSheet2のSheet3から配列を取得するためのGoogleスクリプトに用意しています。しかし、今は配列は他の配列の下に1つだけ配置されています。私が必要とするのは、新しいスプレッドシートの例のように、次の5列に 'v'の新しい配列を配置することです。複数配列を横に並べてGoogleスクリプト
2番目に - これの前に、私は*や?のようなワイルドカードを使用できる検索式のフィルタを使用しました。私は新しい機能でワイルドカードや正規表現をどのように使うことができますか?
私は何か助けに感謝します。
function getval(){
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet2");
var sspodbor = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet3");
var range = ss.getRange("A2:A29");
var values = range.getValues();
var rangez = sheet.getRange("A1:A14");
var valuesz = rangez.getValues();
var z = []
for (var x = 0; x<valuesz.length; x++){
z.push(valuesz[x])
}
var v = [];
for (var q = 0; q < valuesz.length; q++){
for (var s = 0; s < values.length; s++){
if(values[s][5] == z[q]){
v.push([values[s][0],values[s][1],values[s][2],values[s][3],values[s][4]]);
}
//I am guessing that here must be a separating function
}
}
var range = sspodbor.getRange(4, 1, v.length,v[0].length);
range.setValues(v);
}
マイスプレッドシート:https://docs.google.com/spreadsheets/d/1o7ErbeFHA7yyxMC0HMn3Uj5ZBRcy2uAwa1UpolVpBFI/edit?usp=sharing
小さなもののカップル:最初のvar range = ss.getRange( "A2:A29");おそらくvar range = ss.getRange( "A2:F29")にする必要があります。第2に、var z = []はvar z = []でなければなりません。しかし、私の大きな疑問は、どのようにグループ化しているかです。 Sheet2には14の値しかありません。したがってqの14の値だけですが、あなたの例では16の列を表示します。だから、どうグループ化しているのですか? – Cooper
こんにちは、@クーパー!あなたが見たように、私は以前の答えからあなたの配列について何かを学んだ!私は非常に単純な方法でそれらをグループ化しました:q varとループでは、rangezから1つのセルを取ります。次にvarでループします。値の範囲の値が等しいかどうかをチェックします。そして次のq varを取ったとき、同じ値を0-4から次の列にプッシュする必要があります – Davagaz
ここでq値を含めてしまいました。if(values1 [s] [5] == z [q]){v .push([values1 [s] [0]、values1 [s] [1]、values1 [s] [2]、values1 [s] [3]、values1 [s] [4]、q]);}あなたの出力データは各グループに共通するように見えます。 – Cooper