Как сделать многоуровневый, если еще запрос в Excel?
Я пытаюсь сделать многоуровневый, если еще запрос в Excel, где он будет проверять несколько переменных, и если он попадает в одну из категорий, то это будет - процент, и если он не попадает ни в одну из категорий, то он сказал бы "N/A"
Псевдокод будет выглядеть примерно так:
If $income <90,000 and $age is <65 then - 27.82%,
else if $income range(90,000 - 105,000) and $age <65 then $premium - 18.55%,
else if $income range(105,001 - 140,000) and $age <65 then $premium - 9.27%,
else if $income >140,000 and $age <65 then - 0%,
else if $income <90,000 and $age range(65-69) then $premium - 32.46%,
else if $income range(90,000 - 105,000) and $age range(65-69) then $premium - 23.18%,
else if $income range(105,001 - 140,000) and $age range(65-69) then $premium - 13.91%,
else if $income >140,000 and $age range(65-69) then $premium - 0%,
else if $income <90,000 and $age <70 then - 37.09%,
else if $income range(90,000 - 105,000) and $age <70 then $premium - 27.82%,
else if $income range(105,001 - 140,000) and $age <70 then $premium - 18.55%,
else if $income >140,000 and $age <70 then $premium - 0%,
else "NA";
$income = cell j4
$age = cell i4
$premium = cell q4
Я могу сделать запрос на одном уровне, который выглядит примерно так:
=IF(AND(I5>64,I5<69,J5>90000,J5<105001),800*$Y$5,"NA")
но я не уверен, как сделать несколько выражений if else в excel, чтобы охватить все возможные категории, или если есть лучший способ.
2 ответа
Решение
Сначала я бы сгруппировал различные утверждения по возрастным группам, а затем - по доходам в каждой возрастной группе.
Что-то вроде этого:
=IF(I4<65,
IF(J4<90000,27.82,IF(J4<=105000,18.55,IF(J4<=140000,9.27,0))),
IF(I4<=69,
IF(J4<90000,32.46,IF(J4<=105000,23.18,IF(J4<=140000,13.91,0))),
IF(J4<90000,37.09,IF(J4<=105000,27.82,IF(J4<=140000,18.55,0)))))
Вот версия с комментариями (насамом деле не вставляйте ее в Excel):
=IF(I4<65, // if the age is less than 65
IF(J4<90000,27.82,IF(J4<=105000,18.55,IF(J4<=140000,9.27,0))),
// else if the age is less than or equal to 69
IF(I4<=69,
IF(J4<90000,32.46,IF(J4<=105000,23.18,IF(J4<=140000,13.91,0))),
// else (the age must be 70 or greater so need to specify this)
IF(J4<90000,37.09,IF(J4<=105000,27.82,IF(J4<=140000,18.55,0)))))
Вложенные IF заявления:
IF( condition1, value_if_true1, IF( condition2, value_if_true2, value_if_false2 ))
IF-ELSE Заявления:
IF condition1 THEN
value_if_true1
ELSEIF condition2 THEN
value_if_true2
ELSE
value_if_false2
END IF