RublevskiiP,
Вы используете текстовую функцию и как бы не форматировали ячейку, это будет текст.
Исправить это можно вот так
Код
=VALUE(CONCATENATE(IF((C5>=20000)*(C5<30000);C5*5%/100%;IF(C5<20000;"";IF(C5>20000;"")));IF((C5>=30000)*(C5<40000);C5*6%/100%;IF(C5<30000;"";));IF(C5>=40000;C5*7%/100%;IF(C5<40000;""))))
а чтоб убрать ошибки при пустых значениях
Код
=IFERROR(VALUE(CONCATENATE(IF((C5>=20000)*(C5<30000);C5*5%/100%;IF(C5<20000;"";IF(C5>20000;"")));IF((C5>=30000)*(C5<40000);C5*6%/100%;IF(C5<30000;"";));IF(C5>=40000;C5*7%/100%;IF(C5<40000;""))));"")
Но Я б предложил более краткий вариант
Код
=IFERROR(C5*LOOKUP(C5;{0;20000;30000;40000};{"";0,05;0,06;0,07});"")
[p.s.] А зачем делить на 100%, это единица и не меняет значение.