Ваша формула полностью рабочая, не могу представить, почему в Вашем файле он выдает ошибку. В моём файле можете подставить свою формулу и убедиться в этом.
Предлагаю свой вариант:
=ЕСЛИ(ИЛИ(B2>$D$9;C2="Да");B2-B2*$D$8;B2)
Объяснение:
=ЕСЛИ - проверяет, выполняется ли условие, и возвращает одно значение, если оно выполняется, и другое значение, если нет
ИЛИ() - проверяет, имеет ли хотя бы один из аргументов значение ИСТИНА, и возвращает значение ИСТИНА или ЛОЖЬ. Значение ЛОЖЬ возвращается только в том случае, если все аргументы имеют значение ЛОЖЬ.
Прикрепляю готовый файл :)
Номер 1
использовать Робот
алг
нач
нц пока сверху свободно
вверх
кц
нц пока сверху стена
закрасить
влево
кц
нц пока сверху не стена
влево
кц
нц пока сверху стена
закрасить
влево
кц
вверх
вправо
нц пока снизу стена
закрасить
вправо
кц
нц пока снизу не стена
вправо
кц
нц пока снизу стена
закрасить
вправо
кц
кон
Номер 2
использовать Робот
алг
нач
нц пока сверху стена
закрасить
влево
кц
вправо
нц пока сверху стена
если справа не свободно то
вправо
все
если справа свободно то
вправо
если сверху стена то
закрасить
все
все
кц
влево
нц пока снизу не стена
вниз
кц
нц пока слева не стена и снизу стена
закрасить
влево
кц
кон