好吧,我已經實現了這一點,使用一個可以隱藏的輔助列。請注意,儘管這隻會在任何一家公司的總數不超過9個的情況下有效,但我認爲您不應該遇到這個問題,但可能會發生這種情況,助手專欄添加的數字需要進行調整
第一個輔助柱:
添加一個數字總表示量已存在上述那家公司的次數的結束。此公式爲=CONCATENATE([@Amount],COUNTIFS($A$1:A1,A2,$D$1:D1,D2))*1
這是乘以1以保留LARGE
的數字格式。
第二個輔助柱:
這是一個數組公式,將需要通過使用Ctrl鍵 + 移是輸入 + 輸入,同時仍然在公式欄中。
這一個公式是: =LARGE(IF(Company="A",Helper),ROW(1:1))
這個公式確實什麼作爲數組公式是基於所IF
聲明LARGE
可以使用結果列表。而不是整個列被評爲最大到最小,我們現在可以挑選出具有「A」公司,像這樣的行:
=LARGE({20000;20001;20002;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;15000;14000;30000;FALSE;FALSE;FALSE;FALSE},ROW(1:1))
LARGE
將只與數值工作,所以FALSES生產,其中A列不匹配「A」將被忽略。請注意,爲什麼我在此處使用幫助器列來消除唯一值,但不會影響前5個。
ROW(1:1)
已被使用,因爲這會在公式被拖動時產生下一個最高結果時自動更新。
爲頂部5陣列的主要公式
再次,這是一個陣列式所以將需要輸入通過使用Ctrl鍵 + 移 + 輸入,同時仍然在公式欄。
=INDEX(Database,SMALL(IF(Company="A",IF(Helper=$O3,ROW(Company))),1)-1,COLUMN(A:A))
隨着數組公式爲一些未知的原因IF(AND())
只是不爲我工作,所以我有兩個嵌套IF
的來代替。
請注意,我再次檢查第一列是否匹配「A」,然後檢查最後一列是否與第二個公式的結果匹配。會發生什麼情況是這兩個條件在數組中匹配(如同時在同一行中產生TRUE)我想要返回行號。
IF({TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE},IF({FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE;TRUE;FALSE;FALSE},{2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20}))
它看起來像我認識的一個爛攤子,但其中兩個TRUEs對齊的位置給了我們一行16結果。
{FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;16;FALSE;FALSE;FALSE;FALSE}
據我知道,只能有一個匹配可能對於這一點,我用SMALL
搶得頭編號最小的INDEX
公式行中使用,並扣除1,因爲我們沒有考慮頭在INDEX公式中,所以我們實際上需要第15個結果。
再次,COLUMN(A:A)
已被用於列號的返回,因爲這會在公式被拖動時自動更新。
如果你與我的解釋掙扎,要我提供更清晰,隨時伸手,我會盡我所能來解釋更詳細
這些公式無法正常工作!如果'金額'中的值不唯一(例如,「匹配」將失敗)。你的'金額'中有3次'2000')。你可以考慮使用數據透視表來完成這項工作。 –
代碼是唯一代碼嗎?這應該使它更容易一些(看起來像肖恩和克里斯有相同的代碼,所以也許不是?)。 –
認爲這很簡單,但實際上讓我感到頭痛。我可以從數組公式中獲取數量,但由於有多個匹配數量,因此獲取索引的行數很麻煩。在這裏使用助手列選項? –