Excel – 使用INDEX()大于值?

我目前的电子表格是这样的:

在这里输入图像描述

单位成本 :单个项目的一次性成本。

1-6 :根据所需数量的成本乘数。

体积 :项目数量。

基本成本 :=(单位成本*成交量)

降低成本 :=(单位成本*成本*成本倍数)


在我目前降低成本的单元格中的公式如下所示:

=IF(K10=0,0,IF(K10 >= 6,D10*K10*J10,D10*K10*INDEX(E10:J10,1,K10))) 

K10 :音量栏

D10 :单位成本栏

E10:J10 :1-6列

因此,如果音量不是0或不大于6,则通过使用音量值作为列索引来获得成本乘数。

例如,音量为3将返回第三列(0.85)。

这工作起初很好,而且相当简单和优雅,但有新的情况下,它不会工作。


在新的情况下,成本乘数只适用数量大于数量的情况。

在这里输入图像说明

IE音量为2会返回第一列'1',但音量为2.0001会返回第二列'0.9'。

我真的不确定是否可以调整我的存在公式来促进这一点,我现在唯一可以采取的唯一方法是嵌套的if语句。

几点:

  • 卷可以是非整数
  • 将只有6个成本乘数类别/门槛。

我知道这不是完全“使用INDEX()大于值”。

但是,我认为这个代码应该适用于你的情况。

 =IF(K10<=1,L10,IF(K10 > 6,D10*K10*J10,D10*K10*INDEX(E10:J10,K10-0.000001))) 

所有你需要的是第三个参数设置为1的MATCH ,只要你改变E9:I9回到数字(没有“>”)。

 =IF(K10=0,0,IF(K10>=6,D10*K10*J10,D10*K10*INDEX(E10:J10,MATCH(K10,E9:J9,1)))) 

这可能会使你的头脑旋转一些,但是这是一个没有IFfunction的方法。 这是一个数组函数,所以在键入到单元格J2中后,必须按CTRL SHIFT ENTER。

 =$I2*IFERROR(1/MAX(($H2>$B1:$G1)/$B2:$G2),1) 

在这里输入图像说明