我正在嘗試使用 vlookup / index 來提取一些數字。附樣本資料:
A:合并單元格(編號存盤在合并單元格的頂部)
B:只有我要從這個中尋找的數字是藍色的總數
E:要查找的號碼
F:總計(預期數字以綠色顯示)
我過去做過類似的事情,只是不知道我是如何讓它作業的。
注意:A 列中每個數字的行數可能會有所不同,它們將出現的最小行數為 2 行,例如第 4 / 5 行,但可以無限增加。
如果有人知道我怎么能得到預期的結果,那就太好了!

uj5u.com熱心網友回復:
下面的公式會起作用
=IFNA(INDEX($B$1:$B$14,MATCH(D2,$A$1:$A$14,0)-1),INDEX($B$1:$B$14,COUNT($B$1:$B$14)))
如果D 列中的值始終與 A 列中的值順序相同:

uj5u.com熱心網友回復:
或者,
試試這個公式解決方案,其中 D 列中的標準與 A 列中的順序不同。
在E1,公式復制下來:
=INDEX(B:B,MATCH(D1,A:A,0) MATCH(1,FREQUENCY(1,N(INDEX(A:A,MATCH(D1,A:A,0) 1):A$14<>"")),0)-1)

uj5u.com熱心網友回復:
您也可以嘗試這個公式,使用, , &函式處理任何訂單,INDEX()AGGREGATE()LOOKUP()ROW()

? 單元格中使用的公式I1
=INDEX($B$1:$B$14,
AGGREGATE(14,6,ROW($B$1:$B$14)/
(H1=LOOKUP(ROW($A$1:$A$14),ROW($A$1:$A$14)/
($A$1:$A$14<>""),$A$1:$A$14)),1))
讓我解釋一下為什么會這樣,
?函式創建一個值LOOKUP()陣列Column A
=LOOKUP(ROW($A$1:$A$14),ROW($A$1:$A$14)/($A$1:$A$14<>""),$A$1:$A$14)
參考專欄L

? 選擇上面的公式并按F9功能鍵,你會發現它創建了一個陣列12345、43643、23245、98989,它的值在Column B
{12345;12345;12345;43643;43643;23245;23245;23245;23245;23245;98989;98989;98989;98989}

? 接下來我做了一個Boolean Checkie 是否符合我的條件,并分別回傳一個TRUE's&陣列FALSE's

={FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE}
? 要回傳我的條件在陣列中的相對位置,我只需執行如下所示的操作,它給出了相應的行號,
參考專欄L

=ROW($A$1:$A$14)/(H1=LOOKUP(ROW($A$1:$A$14),ROW($A$1:$A$14)/($A$1:$A$14<>""),$A$1:$A$14))
? 正如您在上面所做的那樣,它也回傳了一些錯誤,因此我們將整體包裝在一個AGGREGATE()函式中
--> 其中14指的是function_num,即LARGE(),
--> where6指的是選項,Ignore Error Values
--> 在array哪里
ROW($A$1:$A$14)/(H1=LOOKUP(ROW($A$1:$A$14),ROW($A$1:$A$14)/($A$1:$A$14<>""),$A$1:$A$14))
--> 最后[k]我們需要陣列中最大的,它將回傳行號,因此,在上面它將回傳1098989 ,如在單元格中H1,如果你看到E1它將回傳3 12345,依此類推也是。
因此,當我們獲得行號或位置時,我們將整個包裝在一個INDEX()函式中以分別獲得我們想要的輸出!

? 單元格中使用的公式F1
=INDEX($B$1:$B$14,
AGGREGATE(14,6,ROW($B$1:$B$14)/
(E1=LOOKUP(ROW($A$1:$A$14),ROW($A$1:$A$14)/
($A$1:$A$14<>""),$A$1:$A$14)),1))
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/473422.html
