0

У меня есть неверный запрос на листе google (here's a copy). Я использую этот лист в качестве задней части для обратной связи с пользователем (через форму) и формируя из него лист отслеживания ошибок/функций, для проприетарного приложения.Запрос В скрипте Google Apps - Ошибка Arrayformula

Запрос в вопросе находится на вкладке Master, Колонка 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, вкладка Мастер дает эту ошибку в нарушившей ячейке столбца G: «Аргументы массива в IF являются разного размера "

Что мне нужно для формулы, посмотрите на категорию в столбце 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),"") 
)))) 

Лучшее, что я могу сказать, я как с использованием слишком специфичны диапазона с А2: О, и удвоение моих параметров с помощью как оператор IF (statement и WHERE) для поиска определенной строки.

Здесь все еще существует небольшая проблема, когда любой запрос, который выбирает один столбец (два нижних IF), будет вытаскивать дубликаты данных в две ячейки Я работал над этим, просто запустив пустую колонку для второго селектора.

Если у кого-нибудь есть лучшие методы, я буду рад их услышать :)

Смежные вопросы