2017-09-19 112 views
0

現在的問題是公式返回的是最接近的值,無論其值是高還是低。我只需要接受低於值。索引與多個條件匹配需要返回小於或等於搜索值的最接近的值

{=INDEX($AO$2:$AO$5000,MATCH(SMALL(IF($AN$2:$AN$5000=A2,ABS($AO$2:$AO$5000-F2)),1),IF($AN$2:$AN$5000=A2,ABS($AO$2:$AO$5000-F2)),0))} 

參考:

AO是美元金額

AN是一個日期

A是日期

F是金額

我們正在尋找將AN中的日期與A相匹配,然後在AO中找到最接近的美元金額小於或等於F.可以有多個實例在同一天以不同的美元金額。我們只需要最接近的一個,而不需要重複F中的內容。如果你能想到一個更好的方法來做這件事,這並不一定是索引匹配公式,但我相當積極,它必須是一個數組公式,因爲它必須查看所有的值才能做出正確的決定。

+0

你還試過了什麼,發生了什麼?數據和期望輸出的例子在哪裏?請參閱SO幫助[如何提出一個好問題](http://stackoverflow.com/help/how-to-ask)和[如何創建一個最小,完整和可驗證的示例](http:// stackoverflow .COM /幫助/ MCVE)。通過提供我們可以複製/粘貼到工作表中的內容,使我們更容易幫助您;或者您上傳到文件共享網站的實際數據樣本。 –

+0

不看你的數據,很難提供幫助。但是,如果您對數據進行了排序,則可以在Range_lookup字段中簡單地使用帶有1(或「TRUE」)的VLOOKUP(即'= VLOOKUP(A2,$ AN $ 2:$ AN $ 5000,3,1) ')。如果沒有,發佈一些示例數據,我們可以幫助你。 – ian0411

回答

0
=AGGREGATE(14,6,($AO$2:$AO$5000)/(($AN$2:$AN$5000=A2)*(($AO$2:$AO$5000)<=F2)),1) 

如果其中任一個爲假,則/之後的部分評估爲0。這會導致一個錯誤,聚合將忽略由於6. 14告訴聚合排序結果從最大到最小。 1告訴聚合返回小於或等於F2的第一大值。

+0

釘釘了!以及我在聚合函數中沒有發揮多大作用的新穎方法。今後會做更多。謝謝你,先生。 –