2016-08-05 19 views
1

我當前的電子表格看起來像這樣:Excel - 使用INDEX()的值大於?

enter image description here

單位成本:個別項目的一次性成本。

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)。

這個工作起初很好,而且相當簡單和優雅,但有一些新的場景,它不會工作。


在新的情況下,成本乘數應該只當量比一些更大應用。

enter image description here

I.E.體積爲2會返回第一列'1',但體積爲2.0001會返回第二列'0.9'。

我真的不確定是否有反正我可以適應我的存在公式,以促進這一點,我現在可以採取的唯一的其他方法是一個巨大的嵌套if語句。

的幾點:

  • 卷可以是非整數
  • 將有永遠只能是6個成本倍增類別/閾值。

回答

1

我知道這不完全是「使用INDEX()大於值」。

但是,我認爲這個代碼應該適用於你的情況。

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

不幸的是,如果我將'2'作爲音量(K10)加入,則使用第二列中的乘數「0.85」。只有在音量大於_2的情況下才能使用此值。 –

+0

對不起,我並沒有真正關注'大於'部分,我編輯了我的答案,所以如果你把'K10' ='2'乘數值將是'0.9' –

+0

這實際上工作得很好!我認爲它不應該與定價混亂。 謝謝! –

2

只要您將E9:I9更改爲數字(不帶「>」),只需將第三個參數設置爲1,即可將該參數設置爲MATCH

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

也許我用的是錯的,但它似乎並沒有工作:[圖片](http://puu.sh/qqy4T/432b739388.png) = IF(K10 = 0,0,IF(K10> = 6,D10 * K10 * J10,D10 * K10 * INDEX(E10:J10,1,MATCH(K10,E9:J9,1)))) –

+0

Ah OK,我沒有意識到你的意思嚴格大於。是的,從比賽中的'K10'減去一小部分(就像在其他答案中一樣)就可以完成這項工作。 –

0

它可能會讓你的頭旋轉一下,但是這裏有一種方法可以不用IF功能。這是一個數組函數,所以在將這個輸入到J2單元格後,您必須按CTRL SHIFT ENTER。

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

enter image description here