2017-01-05 2 views
1

Wenn die Nummer in Spalte A in der Zeichenfolge in Spalte B gefunden wird, dann die gesamte entsprechende Zeile ausblenden. Die Liste ist ziemlich lang, sieht die Daten etwas wie folgt aus:Suchspalte für Zeichenfolge und Ausblendzeile

Column A  Column B 
1234   3456/4532 
5678   3456/333/1234 
2222   3456/6666

Row 2 sollte versteckt erhalten. Kann nicht scheinen, es herauszufinden.

function test() 
{ 
    var sh = SpreadsheetApp.getActiveSheet(); 
    var data = sh.getDataRange().getValues(); // read all data in the sheet 
    for(n=0;n<data.length;++n) // iterate row by row and examine data 
    { 
    if(data[n][0].toString().match(data[n][1])==data[n][1]) 
    { 
     sh.hideRows(n); 
    } 
    } 
} 

Antwort

1

Try this:

for(var i=0; i<data.length; i++) 
    { 
    for(var j=0; j<data.length; j++) 
    { 
     if(data[j][1].toString().indexOf(data[i][0]) >= 0) 
     { 
     sh.hideRows(j+1); 
     } 
    } 
    } 

Eine Sache zu beachten:

Die Variable 'sh' (dh SpreadsheetApp.getActiveSheet()) wird in 'sh' Blatt speichern mit dem Index ausgehend (1, 1), die die A1-Zelle ist, während "Daten" Variable speichert die Tabelle als 2D-Array innerhalb "Daten" und es wird A1 als (0,0) betrachten.

Also, wenn Sie sh.hideRows() verwenden, sollten Sie die zweite Reihe des Blattes als Index '2' und nicht '1' nehmen. Deshalb habe ich 'j + 1' benutzt.

+0

Danke! Hat super funktioniert! – John

+0

Sie können es als Antwort akzeptieren, wenn es Ihre Frage löst. :) –

Verwandte Themen