4

Я пытаюсь рассчитать подоходный налог в Excel, используя единую формулу для системы множественных ставок. На данный момент формула ссылается на ячейку в строке выше, чтобы получить доход, по которому рассчитывается ставка.

У меня проблема только с самой верхней частью формулы:

IF(ADDRESS(ROW()-1,COLUMN())>180000,(ADDRESS(ROW()-1,COLUMN())-180000)*0.45, 0)

Эта формула возвращает значение #VALUE если ячейка над ней содержит номер подоходного налога (в качестве примера используйте 100 000).

Таким образом, для этой скобки любое значение выше 180 000 облагается налогом на прибыль - 180 000 * 0,45

Как мне исправить эту формулу, чтобы вернуть 0 на 100 000?

Заранее спасибо.

2 ответа2

1

Я не уверен, что вам нужно сделать это так сложно. Если ваша формула находится в A2 то можете ли вы просто не обратиться непосредственно в формуле к ячейке выше, например

=MAX(0,A1-180000)*0.45

Если вы скопируете это в другую ячейку, она все равно будет ссылаться на ячейку выше. Если вас беспокоит удаление строк / столбцов, и вы хотите убедиться, что они по-прежнему ссылаются на ячейку выше, независимо от этого, используйте OFFSET как это, снова в A2

=MAX(0,OFFSET(A2,-1,0)-180000)*0.45

0

Я решил это. Формула не делает то, что якобы делать.

Чтобы эта формула работала, мне нужно заключить разделы ADDRESS() в INDIRECT() .

Это должно выглядеть так:

IF(INDIRECT(ADDRESS(ROW()-1,COLUMN()))>180000,(INDIRECT(ADDRESS(ROW()-1,COLUMN()))-180000)*0.45, 0)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .