2016-09-16 7 views
0

In einer Google-Tabelle Ich habe diese Abfrage query:Pass Bereich Objekt als Parameter-Funktion in Google Blatt

= QUERY(Data!A1:M300, "select A,B,C,D where C <= date '" & TEXT(B1, "yyyy-MM-dd") & "' AND D >= date '" & TEXT(B1, "yyyy-MM-dd") & "'", 0) 

Was Ich mag würde jetzt tun ist, den erste Parameter der QUERY-Funktion dynamisch machen. Dazu schrieb ich diese kleine Funktion: wie diese

= QUERY(getDataRange("Data"), "select A,B,C,D where C <= date '" & TEXT(B1, "yyyy-MM-dd") & "' AND D >= date '" & TEXT(B1, "yyyy-MM-dd") & "'", 0) 

ich diesen Fehler

"Unable to parse query string for Function QUERY parameter 2: NO_COLUMN: A" 

ich nicht haben

function getDataRange(sheetName) { 

    if (sheetName == "") { 
    sheetName = SpreadsheetApp.getActiveSheet().getName() 
    } 

    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName) 

    if (sheet != null) { 

    output = sheet.getDataRange().getValues(); 

    } else { 

    output = SpreadsheetApp.getActiveSpreadsheet().getDataRange().getValues(); 

    } 

    return output 

} 

Nun, wenn ich diese Funktion als ersten Parameter übergeben bekommen QUERY habe einen Weg gefunden, einen dynamischen Bereich als ersten Parameter an die QUERY-Funktion zu übergeben, und ich bin sehr dankbar für jeden Hinweis.

+1

Versuchen Sie, Ihre select-Klausel: "wählen Col1, Col2, Col3, Col4 wo Col3 <= date‚" & TEXT (B1," yyyy-MM- dd ") &" 'UND Col3> = Datum' "& TEXT (B1," JJJJ-MM-TT ") &" '" – JPV

+0

Danke! Das hat den Trick gemacht. – Georg

+0

Ich fügte das oben als eine Antwort für zukünftige Besucher dieses Threads hinzu. Fühlen Sie sich frei, es zu akzeptieren oder zu verbessern. Prost, JP – JPV

Antwort

0

Versuchen Sie select-Klausel an sich ändernde:

"select Col1, Col2, Col3, Col4 where Col3 <= date '" & TEXT(B1, "yyyy-MM-dd") & "' AND Col3 >= date '" & TEXT(B1, "yyyy-MM-dd") & "'"