2016-09-16 68 views
0

查詢功能在谷歌工作表我有這個疑問:通過區域對象作爲參數,在谷歌工作表

= 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) 

我想現在要做的是使查詢函數的第一個參數的動態。爲此,我寫了這個小功能:

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 

} 

現在,如果我通過這個函數作爲第一個參數,這樣的查詢

= 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) 

我得到這個錯誤

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

我沒有找到了一種將動態範圍傳遞給QUERY函數的第一個參數,我非常感謝任何提示。

+1

試着改變你選擇子句: 「選擇Col1中,Col2中,COL3,COL4其中COL3 <=日期「」 &TEXT(B1,「YYYY-MM- dd「)&」'AND Col3> = date'「&TEXT(B1,」yyyy-MM-dd「)&」'「 – JPV

+0

謝謝!這個伎倆。 – Georg

+0

我在上面添加了這個線程的未來訪問者的答案。隨時接受或upvote它。乾杯,JP – JPV

回答

0

試着改變你選擇子句:

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