0

我有一個在谷歌表(here's a copy)行爲不當的查詢。我使用這張表作爲用戶反饋(通過表單)的後端,併爲專有應用程序形成一個bug跟蹤器/功能請求表。查詢谷歌應用程序腳本 - Arrayformula錯誤

有問題的查詢是主選項卡上,G列:

=ARRAYFORMULA(
    IF(FormResponses!D2:D = "Bug report", 
    QUERY(FormResponses!A2:O, "SELECT E,F WHERE D ='Bug report'",0), 
    IF(FormResponses!D2:D = "Suggestion for Improvement", 
    QUERY(FormResponses!A2:O, "SELECT G,H WHERE D ='Suggestion for Improvement'",0), 
    IF(FormResponses!D2:D = "Feature Request", 
    QUERY(FormResponses!A2:O, "SELECT I WHERE D ='Feature Request'",0), 
    IF(FormResponses!D2:D = "Other", 
    QUERY(FormResponses!A2:O, "SELECT J WHERE D ='Other'",0), "") 
)))) 

它的工作原理,直到第二個項目與同一類的東西已經有了用武之地。

例子:有人提出一個「錯誤報告」,已經有列爲formResponses bug報告的項目,則製表大師給出了這樣的錯誤在G列的違規單元:「陣列參數IF是大小不同「

我需要的是公式查看Master的D列中的類別,然後從與該行匹配的」formResponses「中提取報表和其他詳細信息數據。我知道錯誤告訴我到底什麼是錯誤的,但我找不到解決方法。我這次做了什麼?

回答

0

我結束了使用此代碼固定我的問題:

=ARRAYFORMULA(
    IF(FormResponses!D:D = "Bug report", 
    QUERY(FormResponses!A:O, "SELECT E,F",0), 
    IF(FormResponses!D:D = "Suggestion for Improvement", 
    QUERY(FormResponses!A:O, "SELECT G,H",0), 
    IF(FormResponses!D:D = "Feature Request", 
    QUERY(FormResponses!A:O, "SELECT I,K",0), 
    IF(FormResponses!D:D = "Other", 
    QUERY(FormResponses!A:O, "SELECT J,K",0),"") 
)))) 

盡我所能知道的,我都使用過具體與A2的範圍:O,並通過使用我的參數翻倍這兩個IF(聲明和WHERE語句查找特定的字符串

這裏還有一個小問題,其中任何查詢選擇單個列(兩個底部的IF)將將重複的數據拉入兩個單元格。我已經解決了這個問題,只需讓它爲第二個選擇器提供一個空列即可。

如果有人有更好的方法,我會很高興聽到他們:)