Ваша формула полностью рабочая, не могу представить, почему в Вашем файле он выдает ошибку. В моём файле можете подставить свою формулу и убедиться в этом.
Предлагаю свой вариант:
=ЕСЛИ(ИЛИ(B2>$D$9;C2="Да");B2-B2*$D$8;B2)
Объяснение:
=ЕСЛИ - проверяет, выполняется ли условие, и возвращает одно значение, если оно выполняется, и другое значение, если нет
ИЛИ() - проверяет, имеет ли хотя бы один из аргументов значение ИСТИНА, и возвращает значение ИСТИНА или ЛОЖЬ. Значение ЛОЖЬ возвращается только в том случае, если все аргументы имеют значение ЛОЖЬ.
Ваша формула полностью рабочая, не могу представить, почему в Вашем файле он выдает ошибку. В моём файле можете подставить свою формулу и убедиться в этом.
Предлагаю свой вариант:
=ЕСЛИ(ИЛИ(B2>$D$9;C2="Да");B2-B2*$D$8;B2)
Объяснение:
=ЕСЛИ - проверяет, выполняется ли условие, и возвращает одно значение, если оно выполняется, и другое значение, если нет
ИЛИ() - проверяет, имеет ли хотя бы один из аргументов значение ИСТИНА, и возвращает значение ИСТИНА или ЛОЖЬ. Значение ЛОЖЬ возвращается только в том случае, если все аргументы имеют значение ЛОЖЬ.
Прикрепляю готовый файл :)
1)Число точно больше 100, чтобы L было 3.
2)Какие бы числа мы не ставили на позициях единиц и десятков, результата они никакого не дадут, тк отрезаются командой div
3)Ближайшее необходимое число: 500
Дописал программу, чтобы проверить. Она выводит количество подходящих комбинаций при вводе всех чисел от 1 до 500.
var
x, L, M,count,i: integer;
begin
count:=0;
for i:=1 to 500 do
begin
x:=i; L := 0;M := 0;
while x > 0 do
begin
L := L + 1; x := x div 10;
if L mod 2 = 0 then
M := M + (x mod 10);
end;
//write(L,' ');write(M);
if (L=3) and (M=5) then inc(count);
end;
writeln(count);
end.