Нейросеть для формул Эксель: 350 ₽ за пустую строку
Нейросеть для формул Эксель: как учесть пустые ячейки и порог доставки. Шпаргалка с запросом в LibraChat, разбором формулы и проверкой пяти значений.
Денис
Продакт LibraChat
8 мин чтения
В строке ещё нет заказа, а доставка уже стоит 350 рублей. Я смотрю на пустую B2 и понимаю, что поспешил: короткая формула считает ровно то, что я написал. Пустую сумму я в условии пропустил. Нейросеть для формул Эксель пригодилась мне, когда я перестал просить «что-нибудь для доставки» и описал, какой результат нужен в каждом случае.
Правило небольшое: до 3000 рублей доставка стоит 350, от 3000 включительно бесплатна. Сумма заказа лежит в B2, стоимость доставки должна появляться в C2. Я начал с собственной записи `=ЕСЛИ(B2>=3000;0;350)`. Excel её принял. В пустой строке получилось 350.
С этого места у меня начинается шпаргалка для любой формулы с условием. Сначала решаю, что должна означать ячейка. Потом прошу запись и проверяю результат на нескольких известных значениях. И лишь после этого заполняю столбец.
Нейросеть для формул Эксель: назови результат до функции
«Посчитай доставку» оказалось недостаточно даже для моей маленькой таблицы. В C2 мог оказаться тариф, общая сумма заказа с доставкой или признак «доставка бесплатна». Все три ответа относятся к доставке. В рабочем журнале мне нужен только один.
Я записал назначение отдельно: «C2 показывает, сколько нужно заплатить за доставку заказа из B2». Товарная сумма в результат не входит. Если заказа ещё нет, показывать нечего. Поэтому пустая B2 должна оставлять C2 пустой на вид, а не выводить 350.
Это предложение полезнее знания названия функции. Его можно проверить без Excel. Сумма 4200? Доставка 0. Сумма 2999? Доставка 350. Суммы ещё нет? Результат пока не нужен. Когда я могу проговорить такие ответы, запрос к чату перестаёт быть гаданием.
На какой сумме меняется условие и включается ли равенство.
Что означает пустое исходное значение.
Какие данные вообще допускаются в этом столбце.
Последний пункт я раньше оставлял на потом. Напрасно. В нашем расчёте допустимы неотрицательные числа и пустая ячейка. Слово «отмена» или цена с пояснением текстом потребуют другого условия. Их обработка не появляется в формуле от одного названия столбца.
Когда вся задача состоит в сложении чисел, я не начинаю с условий: для этого есть отдельный разбор формулы суммы в Экселе. Здесь условие нужно именно потому, что одинаковый столбец содержит разные состояния заказа.
Запрос, после которого понятно, что проверять
В LibraChat я описал расположение ячеек и добавил пустую сумму к обычным числам. Получился такой запрос:
Нужна одна формула Excel для русской версии с разделителем аргументов точка с запятой. Сумма заказа числом в B2, доставка в C2. Если B2 пустая, C2 должна показывать пустую строку. Если сумма от 3000 включительно, доставка 0, иначе 350. Допустимы только неотрицательные числовые суммы и пустая ячейка; текст и отрицательные числа вне этого примера. Дай формулу для C2, затем короткое объяснение и ожидаемый результат для B2: пусто, 0, 2999, 3000, 4200. Не создавай файл, ответ текстом.
В ответе была формула:
```excel
=ЕСЛИ(B2="";"";ЕСЛИ(B2>=3000;0;350))
```
Она длиннее моей на одну проверку. Сначала внешний блок смотрит, пусто ли в B2. Если да, возвращает `""`: строку без символов. До сравнения с 3000 такой заказ не доходит. Если сумма есть, включается внутренний блок и выбирает стоимость доставки.
Я читаю запись снаружи внутрь: сначала существует ли сумма, потом какой к ней применяется тариф. В таком порядке мне легче найти пропущенное условие. Иначе взгляд сразу цепляется за знакомые 3000 и 350, а смысл пустой строки теряется.
Есть ещё одна небольшая деталь. Я просил «от 3000 включительно», поэтому в сравнении стоит `>=`. Если поставить только `>`, ровно 3000 не попадёт в бесплатную доставку. Слова в условии и знак в формуле должны говорить об одной границе.
Ноль здесь отдельный случай. Явно введённый 0 меньше 3000 и даёт 350. Если в твоём журнале нулевая сумма означает отменённый заказ, такой ответ тебе не подходит. Тогда сначала меняется описание заказа, а следом уже формула.
Пять значений вместо уверенности «вроде считает»
Я сделал новую книгу и проверил обе записи в установленном Excel. Менял B2, запускал пересчёт и смотрел C2. Первая запись моя, с одним сравнением; вторая получена из LibraChat. Разница обнаружилась там, где исходного числа вообще нет.
Сумма в B2 · Моя короткая запись · Формула из ответа · Что проверяется
Пусто — 350 — Пустая строка — Заказ ещё не заполнен
0 — 350 — 350 — Ноль введён явно
2999 — 350 — 350 — Сумма ниже порога
3000 — 0 — 0 — Равенство включено
4200 — 0 — 0 — Сумма выше порога
Получается, четыре проверки из пяти моя запись выдержала. Но принимать её всё равно рано. Одно неверно описанное состояние уже заполняет пустые строки платной доставкой. Если смотреть только на заказ 4200, эту разницу вообще не заметить.
Теперь я не считаю число удачных примеров доказательством правильности. Смотрю, представлены ли разные ситуации. Для порога нужны значения по обе стороны и сама граница. Для незаполненного журнала нужна пустота. Если возможна отмена, добавляется отдельная проверка отмены.
Внешне пустая C2 тоже требует внимания: в ней находится формула, возвращающая `""`. Это не физически очищенная ячейка. Если другой расчёт считает заполненные ячейки, ему может понадобиться собственное условие. Я отделяю проверку стоимости доставки от проверки всего журнала.
Такой набор исходов удобно держать рядом с формулой. При изменении порога повтори знакомые проверки. Не придётся восстанавливать из памяти, зачем в начале стоят две пары кавычек.
Если Excel спорит с точкой с запятой
В моём Excel сработала русская запись с `ЕСЛИ` и точкой с запятой. Английское название функции — `IF`. Но из языка интерфейса ещё нельзя вывести все настройки записи: разделитель аргументов связан с региональными параметрами.
Поэтому я передаю чату названия функций и разделитель отдельно. Это короткая техническая строка в запросе: «Русский Excel, аргументы разделяются точкой с запятой». Если твоя установка принимает запятые, сообщи именно это.
Сообщение «не вставляется» почти ничего не объясняет. Мне помогает такой порядок:
Прочитать точный текст ошибки Excel.
Посмотреть одну работающую формулу в этой же книге.
Сравнить названия функций и знаки между аргументами.
Попросить адаптировать запись к своему варианту.
Не меняю региональные настройки компьютера ради одной формулы. Проще привести полученную запись к тому синтаксису, который уже принимает Excel. Если функция новая для твоей версии программы, её доступность нужно выяснить отдельно: замена запятой этого вопроса не решит.
Перед протяжкой посмотри, куда переехал адрес
Одну строку я проверил. Теперь хочется заполнить C2:C100 и забыть о доставке. Перед этим копирую формулу только в соседнюю строку. При такой проверке ссылка B2 в моей книге стала B3. Всё логично: новая строка должна брать сумму нового заказа.
Это относительная ссылка. Для суммы она подходит. А если общий порог лежит в F1, его адрес при копировании должен оставаться прежним. Тогда потребуется абсолютная ссылка `$F$1`. Она фиксирует столбец и строку; значки доллара здесь к валюте отношения не имеют.
Я смотрю на изменившуюся запись, даже когда результат кажется правильным. У соседних заказов могут совпасть суммы. На одинаковых числах трудно заметить, что обе строки случайно читают одну ячейку. Для проверки беру разные суммы и заранее понимаю, какую доставку ожидаю.
Если собираешься передавать чату исходную книгу целиком, сначала сравни возможности работы с файлами в тарифах LibraChat. Для отдельной формулы мне хватило описания ячеек в сообщении: весь журнал для этого не нужен.
Нейросеть для формул Эксель: запрос для своей таблицы
Для следующей задачи я оставил себе заготовку. Она начинается с результата, поэтому подходит и для другого расчёта с условием:
Мне нужна формула для Excel. В [ячейке или столбце] находится [что именно, единицы]. В [ячейке результата] должно получаться [назначение значения]. Условие такое: [когда и что возвращать, включая равенство]. Если исходная ячейка пустая, [нужное поведение]. Допускаются [числа, даты или другие значения]. Язык функций [язык], разделитель [знак]. Предложи формулу и объясни её на следующих значениях: [свои входы и ожидаемые ответы].
Выбери один расчёт из своей книги и сформулируй его для чата LibraChat. Попробуй до отправки назвать хотя бы один ожидаемый ответ. Если он не получается, уточни условие, а не проси формулу подлиннее.
И оставь одну строку пустой. В моём расчёте именно она показала, что я собирался принять доставку за ещё не появившийся заказ.