1

У меня есть книга Excel (ну, технически Google Sheets), содержащая информацию о хранении на складе товаров. Я выяснил, как составить запросы, чтобы он собирал необходимую информацию с одного листа с несколькими записями ("поток сознания") и помещал ее на другой лист, где перечислялся только последний элемент для определенной позиции продукта.

Проблема, с которой я столкнулся, заключалась в том, что если не было найдено ни одного элемента с этим описанием, я бы оставил запись # N/A вместо того, чтобы оставить ячейку пустой. Исследования побудили меня обернуть запрос в вызов isna(), чтобы я мог вручную очистить любые ячейки # N/A, но теперь запрос вызывается дважды для каждого элемента, заметно замедляя вычисления.

Пример:

A = отметка времени B = проход C = раздел D = ряд E = позиция F = количество G = описание

=if(isna(QUERY('Form Responses 1'!$A$2:$G$10011, "select A where (B = "&B2&" AND C = "&C2&" AND D = '"&D2&"' AND E = '"&E2&"') ORDER BY A DESC LIMIT 1")), " ", QUERY('Form Responses 1'!$A$2:$G$10011, "select A where (B = "&B2&" AND C = "&C2&" AND D = '"&D2&"' AND E = '"&E2&"') ORDER BY A DESC LIMIT 1"))

Мои вопросы:

1) Есть ли более эффективный способ убрать # N/A клеток?

2) Если нет, могу ли я избежать вызова одного и того же запроса дважды (например, с помощью чего-то вроде временной переменной в формуле)?

Любые предложения "украсить" мои формулы приветствуются и приветствуются.

1 ответ1

1

Я использовал предложение Кайла об использовании IFERROR(), чтобы помочь очистить формулы и сделать их читаемыми.

Кажется, что более новые версии Excel имеют функцию IFNA(), но в настоящее время она недоступна в Google Sheets. Надеюсь, это будет реализовано в будущем.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .