2017-02-20 52 views
2

我需要一些幫助,下面的要求得到一個細胞的最高值2:Excel公式 - 如何基於另一種細胞

原始數據

  A   B   C 
     ------------------------------------- 
    1 |  Opp  | Vendor | Amount | 
    |-------------|-------------|---------| 
    2 |  101  | Vendor1 | 100000 | 
    3 |  101  | Vendor2 | 5000 | 
    4 |  103  | Vendor1 | 30000 | 
    5 |  103  | Vendor2 | 5000 | 
    6 |  103  | Vendor3 | 50000 | 

輸出表

  A    B   C   D   E 
     --------------------------------------------------------- 
    1 |  Opp  | MainVendor | Amount1 | 2Vendor | Amount2 | 
    |-------------|-------------|---------|---------|---------| 
    2 |  101  | Vendor1 | 100000 | Vendor2 | 5000 | 
    3 |  103  | Vendor3 | 50000 | Vendor1 | 30000 | 
  • MainVendor:供應商的最高金額
  • Amount1:量MainVendor
  • 2Vendor:第二高的供應商
  • AMOUNT2:量2Vendor

我只能使用以下數組公式獲取Amount1值:

{=MAX(IF(A:A=[@[Opp]];C:C))} 

列C.

我未能獲取值列d & ê

任何幫助將非常感激。

+0

什麼版本的Excel? –

+0

嗨羅恩!我使用excel 2010版本 –

+0

@RonRosenfeld我很確定這個問題是[this one]的近似重複(http://stackoverflow.com/questions/22083331/excel-vlookup-with-multiple-criteria) 。今天有另一個重複。必須是那些日子之一。 – vknowles

回答

0

下面是一個解決方案 - 如果人們可以重構公式,可能會有點複雜,很高興聽到建設性的批評。

要獲得Amount1Amount2值可以使用:

=INDEX(LARGE($C$2:$C$10*--($A$2:$A$10=$A13),1),1) 

其中:

  • $C$2:$C$10來自Amount
  • 乘以--($A$2:$A$10=$A13)值 - 這意味着{1;1;0;0;0;0;0;0;0} * {100000;5000;30000;5000;50000;45000;50000;40000;51000} - 這有消除Amount列中不符合的值的影響t o該行的Opp
  • LARGE函數然後僅挑選第一大的1000005000,因爲陣列中的其他值現在爲0
  • 拿到第二大,第三大等你,聲訊23等進入LARGE功能
  • LARGE功能被包裹在INDEX得到實際值了,因爲我相信它返回它作爲1個元素的數組(雖然這是不是與公式檢查清楚)

樣品:

enter image description here

要獲得MainVendorVendor2值可以使用:

=INDEX($B$2:$B$10,INDEX(MATCH(LARGE($C$2:$C$10*--($A$2:$A$10=$A13),1),$C$2:$C$10*--($A$2:$A$10=$A13),0),1)) 

哪個:

  • $B$2:$B$10距離Vendor
  • 索引由上相同的公式使用MATCH檢索的值用於針對其自己的源陣列的AmountX
  • MATCH被包裹在另一個INDEX得到實際值了作爲,再次,我覺得值被返回爲1個元素的數組

樣品:

enter image description here

我創建了另一組Opp值,該公式與Amount列中的某些重複值一起工作,但針對不同的Opp s。

+0

嘿羅賓,你太棒了,明天我會試一試,然後回來看看我的結果。非常感謝你! MD –

+0

謝謝羅賓,效果很棒!對不起,因爲我在假期時因測試延誤! :) –

+0

在供應商具有相同「金額」的情況下,如何取回另一個?在這種情況下,我得到了同樣的「供應商」。謝謝! –