首頁>Club>
10
回覆列表
  • 1 # 快學excel

    在H6單元格輸入公式=VLOOKUP(G6,OFFSET($B$2,MATCH(F6,A:A,0)-2,,23,2),2,0)

    我做了一個模擬資料,格式跟問題格式一致。

    公式解析

    第一步:首先透過match函式查詢F6的值,在A列出現的位置,如本例中,會返回3

    第二步:然後用offset這個函式,得到引用的區域,offset函式的基礎語法是(定位基準單元格,偏移行,偏移列,高度,寬度)

    (1)、基準單元格定位在B2,並絕對引用,這樣還可以下拉。

    (2)、偏移的行等於3-2=1,為什麼要減2,是由於基準單元格定位在B2,B2和B1本身是表頭,這個表格有兩行表頭。

    (3)、偏移列,不偏移,什麼都不填空著

    (4)、高度,我這裡是23,這個數字只要輸入一個足夠大能覆蓋這個表格的行數就可以了

    (5)、寬度,這裡選擇兩列

    這樣輸入後,此時offset會引用到B3:C25這個區域,如下圖所示

    第三步:再透過VLOOKUP,在OFFSET引用的這個區域(B2:C25)這裡查詢G6的值,查詢到後返回第二列,這樣就找到了C列編號裡的內容了。

    看到這裡可能有人會有疑問,如果遇到父專案不同,子專案同名的情況,會不會查詢編號錯誤。這種情況是不會的,因為透過match和offset的配合,引用的區域都是從需要查詢的父專案最上面的行開始的,VLOOKUP只會返回找到的第一個值,即便後面再次出現重複的子專案名稱,也不會返回了。

    另外我感覺這個提問提供的資料有些問題,子專案最後一個單元格空白,應該是同上的意思,但是同一個專案下,子專案的名稱應該是不重複的,如果重複了,那就要用編號再做區分,但是提問只給定了兩個條件作為匹配條件,這就有些相互違背了。

  • 2 # 上班下班

    可以用三個函式實現效果:

    =OFFSET(C2,MATCH(E2,A3:A22,)+MATCH(F2,B3:B22,)-1,)

    =INDIRECT("C"&MATCH(E2,A2:A23,)+MATCH(F2,B2:B23,)-1)

    =INDEX($C$1:$C$22,MATCH(E2,A2:A23,)+MATCH(F2,B2:B23,)-1)

    公式的核心在後面兩個MACH函式上面。透過第一個MATCH函式獲取【專案】的位置,透過第二個manch函式獲取【子專案】的位置。

    例如上圖中的例子,

    第一個MATCH(E2,A3:A22,)=9;

    第二個MATCH(F2,B3:B22,)-1=1;

    兩個數相加等於10,就是C列從【C2】單元格往下10行,即第12行。

  • 中秋節和大豐收的關聯?
  • 過年期間,老師收到學生家長寄來禮品,算違規嗎?