我正在尝试解决如下问题:
A 列:三个可能的值之一。{苹果、橙子、梨}
B列:一个整数。
C 列的值应根据前两列计算。
对于 B 列,它需要介于一个数字范围内。例如 (1-19, 20-99)。因此,对于苹果,如果数字介于 1 - 19 之间,则值应为 12;如果数字介于 20 和 99 之间,则值应为 4;如果数字大于 4,则值应为 18。
每种水果的输出范围和值都不同。
目前,我能做的最好的就是使用一长串嵌套的 if 语句,但我不认为这是最佳的。
=IF(I74=Reference!$A$2,(IF(AND(H74>=1,H74<=19),Reference!$B$4,IF(AND(H74>=20,H74<=149), Reference!$C$4,IF(H74>=150,Reference!$D$4,"NaN")))),(IF(AND(H74>=1,H74<=19),Reference!$B$8,IF(AND(H74>=19,H74<=99), Reference!$C$8, IF(H74>=100, Reference!$D$8, "NaN")))))
我将非常感激您的帮助。谢谢。
答案1
您应该有一个参考表来描述每种物品的限量,并对数量进行排序DESCENDING
。
干得好:
=INDEX($C$2:$C$4, MATCH(1, (F2 = $A$2:$A$4) * (G2 > $B$2:$B$4), 0))
并使用CTRL++而不是插入数组公式。ShiftEnterEnter
解释
$C$2:$C$4
是价格参考范围。
因为我们有两个要查找的条件,所以使用MATCH(1, (criteria1) * (criteria2) * (...), 0)
。公式类似于MATCH(TRUE, criteria1 AND criteria2 AND ...)
。
因此基本上MATCH
在表中查找项目名称,并且数量限制低于数量值。
在我的例子中,我只放了apples
参考表。显然,你应该添加你的oranges
和你自己。pears