- Что включить в промпт для формулы
- Локаль, язык функций и версия — разные настройки
- Как устроена проверка
- Задача 1. Сложить принятые часы проекта
- Задача 2. Найти оборудование и не скрыть повтор ID
- Задача 3. Посчитать текущую просрочку возврата
- Как попросить исправить формулу
- Универсальный шаблон промпта
- Что проверить перед переносом в рабочий файл
Чтобы нейросеть написала полезную формулу, ей нужно передать не только «что посчитать», но и правила для исключений: пустой ячейки, повторяющегося ID, неправильной даты. Затем формулу нужно исполнить в своей таблице и сравнить с заранее известными ответами. В этом практикуме показываем, как составить такой запрос, что проверить и как попросить исправление.
Мы подготовили три учебные задачи и 24 граничные строки: часы по проектам, поиск оборудования и просрочка возврата. Практическая часть выполнена в Google Таблицах. В Excel формулы не запускали; совместимость с конкретной версией Excel здесь не подтверждена. Из шести запланированных первых ответов удалось получить и исполнить пять. Полный запрос о просрочке завершился ошибкой загрузки ответа, в том числе после одного технического повтора. Этот пробел оставляем в результатах.
Что включить в промпт для формулы
Хорошее условие отвечает на восемь вопросов. В какой программе и версии будет работать формула? На каком языке записываются функции? Чем разделяются аргументы? Где находятся исходные данные? В какую ячейку вставить результат и куда его копировать? Какие типы данных используются? Что делать с пустыми значениями и исключениями? Какие ответы должны получиться на нескольких контрольных строках?
Адреса нужны не для формальности. При копировании вниз ссылка A2 должна стать A3, а справочник Catalog!$A$2:$B$8 — остаться на месте. Если не сказать, что формулу будут протягивать, можно получить вариант, правильный только для первой строки.
Пусто тоже требует определения. Пустая строка, числовой ноль, отсутствие совпадения и найденная запись без названия — разные состояния. Их не стоит объединять в один результат только потому, что так короче формула.
Локаль, язык функций и версия — разные настройки
В Google Таблицах локаль влияет на стандартные форматы чисел и дат, а язык функций выбирается отдельно. Поэтому русская локаль не означает, что формула обязательно должна начинаться с ЕСЛИ. В нашем листе выбраны Россия и английские имена функций; в полных запросах указан разделитель аргументов «;». Проверить настройки можно в «Файл → Настройки».
Настройки локали и языка функций в Google Таблицах
В Excel важна ещё и версия. Например, Microsoft отдельно предупреждает: XLOOKUP отсутствует в Excel 2016 и Excel 2019. Запрос «напиши формулу для Excel» не сообщает нейросети об этом ограничении. Назовите реальную версию и попросите вариант без неподдерживаемых функций, затем проверьте его в ней.
Официальная справка Microsoft о XLOOKUP
Не исправляйте любую ошибку слепой заменой запятых на точки с запятой: запятая может быть частью текста или десятичного числа. Передайте нейросети исходную формулу, фактические настройки и точный текст ошибки.
Как устроена проверка
Запуск проведён 18 октября 2026 года в ChatGPT Plus; в интерфейсе были указаны GPT-6 и Medium. Это фиксация видимых настроек, а не вывод о внутреннем устройстве модели. Формулы исполнялись в Google Sheets с локалью Россия и английскими функциями. Данные синтетические; эталоны и 24 строки зафиксированы до запуска. Проверка исходных значений дала 19 из 19 контрольных TRUE.
На каждую задачу предусмотрены два независимых запроса: короткий и полный. Затем короткую формулу один раз исправляли по обнаруженным расхождениям и снова проверяли на всех восьми строках. Первый вариант не заменяли исправленным в журнале. Для сроков использована фиксированная дата 18.10.2026, поэтому результат не должен меняться завтра.
Для оценки брали первый блок формулы из каждого первого ответа. Дополнительные варианты сохраняли, но не подставляли вместо него: например, ответ о часах также содержал альтернативу с обработкой пустого запроса. Поэтому 7/8 характеризует выбранный первый блок, а не все предложенные моделью варианты.
Это не сравнение «интеллекта» при равной информации: полный запрос сообщает дополнительные правила. Если короткий запрос не объясняет обработку дублей, выбор первого совпадения нельзя автоматически назвать нарушением инструкции. Мы проверяем, насколько результат подходит к заранее сформулированной рабочей задаче, и показываем цену недосказанности.
| Задача | Короткий | Полный | После одной правки короткого |
|---|---|---|---|
| Часы проекта | 7/8 | 8/8 | 8/8 |
| Поиск оборудования | 6/8 | 8/8 | 8/8 |
| Текущая просрочка | 6/8 | Нет полученного ответа | 8/8 |
Короткие запросы дали 19 совпадений из 24. Два полученных полных ответа дали 16 из 16; третья задача в эту оценку не входит. Исправленные короткие варианты дали 24 из 24. Все три исправленные формулы дополнительно сверены через FORMULATEXT; результаты и снимки трёх листов проверены. Технически недоступный полный ответ о просрочке не оцениваем как ноль баллов.
Задача 1. Сложить принятые часы проекта
На листе Hours столбец A содержит проект, B — статус, C — часы. Данные занимают строки 2–13. На листе HoursTest в A2:A9 находятся проекты для проверки. Нужно суммировать только статус «Принято»; пустые часы считать нулём. Совпадающие записи учитываются обе: это не задача удаления дублей. Пустой запрос должен давать пустую строку, неизвестный проект — числовой ноль. Пробел в конце названия значим.
| Проект | Статус | Часы |
|---|---|---|
| Альфа | Принято | 2 |
| Альфа | Принято | 3 |
| Альфа | Черновик | 9 |
| Бета | Принято | 0 |
| Гамма | Принято | |
| Дельта | Принято | 1,5 |
| Дельта | Принято | 2,25 |
| Эпсилон | Принято | 4 |
| Эпсилон | Принято | 4 |
| Принято | 7 | |
| Альфа | 6 | |
| Бета | Черновик | 8 |
Короткий запрос:
Напиши формулу для Google Таблиц: посчитай сумму часов по проекту только со статусом «Принято». Данные на Hours: A2:A13 — проект, B2:B13 — статус, C2:C13 — часы. Название нужного проекта в HoursTest!A2. Формулу вставлю в HoursTest!D2 и протяну вниз.
Первый ответ дал такую формулу. Русское имя функции сохраняем именно как в полученном ответе: она была исполнена на тестовом листе. Это наблюдение о конкретном запуске, а не совет смешивать языки функций.
=СУММЕСЛИМН(Hours!$C$2:$C$13;Hours!$A$2:$A$13;A2;Hours!$B$2:$B$13;"Принято")
На пустом запросе получилось 0 вместо предусмотренной пустой строки. Остальные семь проверок совпали. В коротком условии поведение для пустого проекта не было оговорено.
Полный запрос:
Нужна одна формула для Google Sheets (веб), локаль Россия, имена функций English, разделитель аргументов ;, десятичная запятая. Исходные диапазоны: Hours!A2:A13 — проект, B2:B13 — статус, C2:C13 — числовые часы или пусто. Запрос проекта в HoursTest!A2, результат в E2; буду копировать до E9. Зафиксируй исходные диапазоны, ссылку на строку запроса оставь относительной. Сложи часы только при совпадении проекта и статусе «Принято». Пустой запрос должен вернуть пустую строку. Нет совпадений — числовой 0; пустые часы — 0. Все строки, даже одинаковые, учитываются; текстовые пробелы в проекте значимы, TRIM не применять. Примеры: Альфа → 5; Бета → 0; Эпсилон → 8; пустой запрос → пусто; Альфа с пробелом на конце → 0. Дай формулу и коротко объясни ссылки. Не используй скрипты и не анализируй файл вместо формулы.
Полученная и исполненная формула:
=IF(A2="";"";SUMIFS(Hours!$C$2:$C$13;Hours!$A$2:$A$13;A2;Hours!$B$2:$B$13;"Принято"))
| Проект запроса | Эталон | Короткий | Полный |
|---|---|---|---|
| Альфа | 5 | 5 | 5 |
| Бета | 0 | 0 | 0 |
| Гамма | 0 | 0 | 0 |
| Дельта | 3,75 | 3,75 | 3,75 |
| Эпсилон | 8 | 8 | 8 |
| Омега | 0 | 0 | 0 |
| Пусто | Пустая строка | 0 | Пустая строка |
| Альфа[пробел] | 0 | 0 | 0 |
Пометка [пробел] в таблице обозначает один пробел в конце; вводить саму пометку не нужно. Полный вариант добавил проверку пустого запроса до SUMIFS и совпал с восемью эталонами. Дробные часы проверяют числовые данные, а две одинаковые записи Эпсилон — договорённость складывать все подходящие строки.
После единственного исправления короткого запроса формула совпала с полным вариантом: добавилась проверка пустого запроса. Проверка HoursTest!F2:F9 дала 8/8. Точный исправленный вариант:
=IF(A2="";"";SUMIFS(Hours!$C$2:$C$13;Hours!$A$2:$A$13;A2;Hours!$B$2:$B$13;"Принято"))

Задача 2. Найти оборудование и не скрыть повтор ID
В Catalog!A2:B8 записан справочник. В LookupTest!A2:A9 — искомые ID. Здесь повтор ключа имеет другой смысл, чем повтор строки с часами: формула должна остановиться с сообщением «Дубликат ID», а не выбрать первую запись. Это правило нужно передать явно.
| ID | Название |
|---|---|
| EQ-01 | Монитор |
| EQ-02 | Клавиатура |
| EQ-03 | Камера |
| EQ-03 | Штатив |
| EQ-04 | |
| EQ-05 | Микрофон |
| EQ-06 | Док-станция |
Короткий запрос:
Напиши формулу Google Таблиц, которая по ID оборудования найдёт название. Справочник Catalog!A2:A8 — ID, B2:B8 — название. Искомый ID в LookupTest!A2, результат вставлю в D2 и протяну вниз.
Первый ответ:
=IF(A2="";"";IFNA(VLOOKUP(A2;Catalog!$A$2:$B$8;2;FALSE);"Не найдено"))
Он корректно обработал известные и неизвестный ключи, но для EQ-03 вернул «Камера» — первое найденное название. По эталону нужен сигнал о дубликате. Для EQ-04 результат выглядел пустым, а проверка TYPE вернула 1. Дополнительные проверки дали ISNUMBER=FALSE, ISTEXT=FALSE и ISBLANK=TRUE. Поэтому по одному TYPE=1 нельзя объявлять этот результат числовым нулём, а визуальную пустоту — текстовой пустой строкой. Требуемого сообщения «Нет названия» не было, и эта строка не зачтена.
Полный запрос:
Нужна формула Google Sheets (веб), локаль Россия, имена функций English, разделитель ;. Catalog!A2:A8 — текстовые ID, B2:B8 — названия. Запрос LookupTest!A2, формулу вставлю в E2 и скопирую до E9. Исходные диапазоны абсолютные. Пустой ID → пустая строка. Не найден → «Не найдено». ID встречается более одного раза → «Дубликат ID», не выбирать первое совпадение. Ровно одно совпадение с пустым названием → «Нет названия». Иначе вернуть название. Пробелы значимы, ID не нормализовать. EQ-01 → Монитор; EQ-03 → Дубликат ID; EQ-99 → Не найдено; EQ-04 → Нет названия; пустой запрос → пусто. Дай формулу, затем объяснение порядка проверок. Скрипты не нужны.
Полученная формула:
=IF(A2="";"";IF(COUNTIF(Catalog!$A$2:$A$8;A2)>1;"Дубликат ID";IF(COUNTIF(Catalog!$A$2:$A$8;A2)=0;"Не найдено";IF(INDEX(Catalog!$B$2:$B$8;MATCH(A2;Catalog!$A$2:$A$8;0))="";"Нет названия";INDEX(Catalog!$B$2:$B$8;MATCH(A2;Catalog!$A$2:$A$8;0))))))
| ID | Эталон | Короткий | Полный |
|---|---|---|---|
| EQ-01 | Монитор | Монитор | Монитор |
| EQ-02 | Клавиатура | Клавиатура | Клавиатура |
| EQ-03 | Дубликат ID | Камера | Дубликат ID |
| EQ-99 | Не найдено | Не найдено | Не найдено |
| Пусто | Пустая строка | Пустая строка | Пустая строка |
| EQ-04 | Нет названия | Визуально пусто; TYPE=1 | Нет названия |
| EQ-05 | Микрофон | Микрофон | Микрофон |
| EQ-01[пробел] | Не найдено | Не найдено | Не найдено |
Полный вариант сначала проверяет пустой запрос и число совпадений, затем обращается к названию. Именно порядок проверок сохраняет различие между неизвестным ID, дубликатом и найденной записью без названия. В нашем наборе полный вариант дал 8 из 8 совпадений. Поддержку этой формулы в Excel отдельно не проверяли.
После одной правки короткой формулы добавились проверки отсутствующего и повторного ID, а также пустого названия. Этот вариант использует VLOOKUP и отличается от полного ответа с INDEX/MATCH; результат LookupTest!F2:F9 — 8/8:
=IF(A2="";"";IF(COUNTIF(Catalog!$A$2:$A$8;A2)=0;"Не найдено";IF(COUNTIF(Catalog!$A$2:$A$8;A2)>1;"Дубликат ID";IF(VLOOKUP(A2;Catalog!$A$2:$B$8;2;FALSE)="";"Нет названия";VLOOKUP(A2;Catalog!$A$2:$B$8;2;FALSE)))))

Задача 3. Посчитать текущую просрочку возврата
На DatesTest столбец A содержит срок возврата, B — фактическую дату возврата. В Control!A2 записана настоящая дата 18.10.2026. Нужна текущая просрочка: если оборудование уже вернули, результат равен нулю, даже если фактический возврат произошёл позже срока. Для исторического отчёта о задержках потребовалось бы другое правило.
Пустой срок должен вернуть пустую строку. Ошибочный текст и числовой ноль вместо даты — сообщение «Проверьте дату». Если срок корректен и возврата нет, просрочка равна разности контрольной даты и срока, но не меньше нуля. В учебном наборе даты без времени; корректность непустой даты фактического возврата отдельно не тестируется.
Короткий запрос:
Напиши формулу Google Таблиц для текущей просрочки возврата оборудования в днях: срок в DatesTest!A2, дата фактического возврата в B2, контрольная дата в Control!A2. Результат вставлю в DatesTest!E2 и протяну вниз. Если уже вернули, просрочка 0.
Первый ответ:
=IF(OR(NOT(ISNUMBER(A2));A2=0);"";IF(ISNUMBER(B2);0;MAX(0;Control!$A$2-A2)))
| Срок | Возврат | Эталон | Короткий |
|---|---|---|---|
| 17.10.2026 | Пусто | 1 | 1 |
| 18.10.2026 | Пусто | 0 | 0 |
| 19.10.2026 | Пусто | 0 | 0 |
| Пусто | Пусто | Пустая строка | Пустая строка |
| 15.10.2026 | 16.10.2026 | 0 | 0 |
| текст | Пусто | Проверьте дату | Пустая строка |
| Число 0 | Пусто | Проверьте дату | Пустая строка |
| 16.10.2026 | Пусто | 2 | 2 |
Формула объединила пустой срок и неправильный срок в один пустой результат. Шесть строк совпали с эталоном, две диагностические проверки — нет. В коротком запросе требование выводить предупреждение отсутствовало, поэтому это прежде всего недостающая часть условия.
Полный запрос, который можно адаптировать под свою таблицу:
Нужна формула Google Sheets (веб), локаль Россия, English function names, разделитель ;. DatesTest!A2 — срок возврата (настоящая дата, пусто, ошибочный текст или 0); B2 — дата фактического возврата либо пусто. Control!A2 содержит настоящую фиксированную дату 18.10.2026. Формулу вставлю в F2, скопирую до F9. Control!$A$2 абсолютная, A2/B2 относительные. Правило именно текущей, не исторической просрочки: если A2 пусто, вернуть пустую строку; если A2 не число или <=0, вернуть «Проверьте дату»; если B2 заполнена настоящей датой, вернуть числовой 0; иначе MAX(0; контрольная дата минус срок). Даты без времени, валидность B2 вне текущего набора не проверяем. TODAY не использовать. Примеры: срок 17.10.2026 и возврат пусто → 1; 18.10 → 0; 19.10 → 0; пустой срок → пусто; текст или 0 → Проверьте дату; срок 15.10 и возврат 16.10 → 0. Дай одну формулу и короткое объяснение.
Ответ на этот запрос не удалось получить: интерфейс показал «Не удалось загрузить этот ответ». Один разрешённый дословный технический повтор в новом разговоре тоже завершился ошибкой загрузки. Готовую полную формулу и оценку 8/8 здесь не приводим. Техническая недоступность ответа не означает ни правильность, ни неправильность неувиденной формулы. Исправленный короткий вариант получил 8/8 по журналу запуска, но это отдельная ветка проверки.
Это точная формула после одного исправления короткого запроса, а не ответ на недоступный полный запрос. Она отдельно проверяет пустой срок и некорректную дату. В DatesTest!G2:G9 получено 8/8:
=IF(ISBLANK(A2);"";IF(OR(NOT(ISNUMBER(A2));A2<=0);"Проверьте дату";IF(ISNUMBER(B2);0;MAX(0;Control!$A$2-A2))))
В этом варианте ISBLANK проверяет действительно пустую исходную ячейку. Если в вашей таблице пустота получается как результат другой формулы, добавьте такой случай в тесты: данный набор его не проверяет.

Как попросить исправить формулу
Сообщения «не работает» недостаточно. Укажите точную формулу, адрес, входные значения и их типы, ожидаемый результат, фактическое значение или ошибку. Не меняйте одновременно условие расчёта и данные: иначе не будет понятно, что именно исправилось.
Среда: [Google Sheets или точная версия Excel], язык функций [язык], разделитель [символ]. Формула: [вставьте дословно]. Ячейка результата: [адрес]. Входные данные: [ячейки, значения и типы]. Ожидалось: [ответ по правилу]. Получено: [значение или точный текст ошибки]. Исправь формулу, сохранив правила и адреса диапазонов. Объясни причину. После правки я повторю все тестовые строки.
В этом запуске по каждой короткой формуле был выполнен один цикл исправления; все три исправленных варианта дали по 8 совпадений. Но успех правки не заменяет историю первого ответа. Сохраняйте оба варианта и повторяйте весь набор, включая ранее успешные строки: исправление одной границы может сломать другую.
Не просите просто завернуть всё в IFERROR с пустым результатом. Ошибка синтаксиса, неизвестный ключ и неправильная дата требуют разных решений. Если важное предупреждение исчезло, таблица стала тише, но не обязательно правильнее.
Универсальный шаблон промпта
Напиши одну формулу для [программа и версия]. Локаль: [страна]. Язык функций: [язык]. Разделитель аргументов: [; или ,]. Данные: [лист, диапазоны, смысл столбцов, типы]. Результат: [ячейка]. Формулу буду копировать [куда]. Правило расчёта: [условие простыми словами]. Пустые значения: [поведение]. Ноль, нет совпадений, повтор ключа, ошибочные данные: [отдельные правила]. Контрольные примеры: [вход → ожидаемый ответ]. Дай формулу и короткое объяснение. Если правило неоднозначно, сначала спроси. Не меняй данные и не используй скрипт вместо формулы.
Передавайте минимальный пример, а не всю рабочую таблицу. Для создания формулы часто достаточно названий столбцов, адресов и нескольких искусственных строк. Реальные персональные или коммерческие данные замените безопасными учебными значениями.
Что проверить перед переносом в рабочий файл
Сначала проверьте обычную строку, затем пустую, нулевую, неизвестный ключ, повтор, дробное значение и границу даты. Убедитесь, что числа действительно числа, а даты — даты. Внешне одинаковые ячейки могут хранить разные типы, как показал случай с пустым названием оборудования.
После этого проверьте копирование вниз: исходные диапазоны не должны уезжать. Сверьте все ожидаемые ответы и отдельно убедитесь, что пустая строка не подменена нулём. Для своей задачи добавьте случаи, которых здесь нет: регистр ID, символы * и ?, ошибки внутри исходных ячеек, время в датах или некорректную дату фактического возврата.
Наш результат ограничен небольшим набором. Два полученных полных запроса дали 16 из 16 совпадений; третий полный ответ недоступен. После одного исправления каждой короткой формулы зафиксированы 24 из 24 совпадений, и формулы дополнительно сверены с ячейками через FORMULATEXT. Главный практический вывод — заранее описывать исключения и проверять исполняемый результат, сохраняя и неудачные, и недоступные ответы.
Если нужна не отдельная формула, а анализ загруженного файла, пригодится разбор работы с CSV. Если выбираете сервис для табличных задач, смотрите отдельное сравнение ChatGPT Plus и DeepSeek. Здесь задача уже: превратить своё правило в формулу, которую можно проверить.
Разбор ChatGPT для Excel и CSV
