[英]Indirect index and match problem formula in different named tables
在開始之前,我應該坦率地說我是 OFFSET() 函數的傳道者,並且是 INDIRECT() 的死敵。
讓我們假設每個國家/地區的車輛類型(卡車、轎車、....)的數量相同,即 8。(如果不是,則可以稍微努力解決)。 您可以將此數字放在某個單元格中的某個位置,並在需要類型數量時使用它。
另外,假設屏幕截圖中的第一列是 A 列。並且單元格 A1 包含“中國”。
假設我們正在尋找 2009 年法國 SEDANS 的稅率。
功能一:
=MATCH("France",$A:$A,0) will return 14 (if I have counted correctly)
... 即單元格 A14 包含單詞“法國”。
假設所有國家/地區的年份都相同,我們可以使用任何標題行來找到正確的列。
功能二:
=MATCH(2009,$3:$3,0)-1 will return 8 I think.
如果您的年份只是文本字符串,則將 2009 替換為“2009”。
因為您的類型在每個表中的順序不同(為什么?)我們需要一個額外的步驟。
功能三:
=MATCH("SEDANS",OFFSET($A$1,(Result of f1) -1 + 3,0,8,1),0) should return 3.
OFFSET 函數中的數學是什么? 我需要從單元格 A1 向下 (14-1) 行才能到達“法國”。 從那里我需要再向下走 3 行以到達類型列表的第一個,並且有 8 種類型要搜索。然后我正在查看 8 行 x 1 列的單元格范圍。
現在您可以提取您的稅率,使用
功能四:
=INDEX(OFFSET($A$1,(Result of f1) -1+3,1,8,100),(Result of f3),(Result of f2))
(我放了 100,因為我不知道你有多少列。如果最后一個日期之后的第三行沒有其他內容,你可以使用 =COUNTA($3:$3)-1 之類的東西)。
當你測試這個時,我會把每個函數的結果放在一個單元格中。 一旦您對每一步都正常工作感到滿意,您就可以將所有不同的功能嵌套在一起,或者只是在結果表的右側添加一些額外的列,如果您願意,您可以隱藏這些列。
編輯:在單元格引用上添加一些 $ 以鎖定數據的“來源”。
如果您的稅表是真實的Tables ,每個NAME 都帶有各自國家/地區的名稱,您可以使用以下內容:
=VLOOKUP(H13,INDIRECT(H12),MATCH(TEXT(H14,"0"),INDIRECT(H12 & "[#Headers]"),0))
在哪里
H12
包含國家名稱H13
包含車輛類型H14
包含年份例如:
H13:H14
中使用下拉列表(來自數據驗證)以避免拼寫錯誤。 如果您想避免使用表格以及易失性函數OFFSET
和INDIRECT
(因為如果您有很多易失性函數,它們會損害工作表的性能),您可以嘗試使用非易失性但更長更模糊的方法:
=VLOOKUP($H$13,INDEX($A:$A,MATCH($H$12,$A:$A,0)):INDEX($D:$D,LOOKUP(2,1/($A:$A<>""),ROW($A:$A))),$H$14-2000,FALSE)
在上面,您必須進行調整
假設是:
$H$14-2000
計算VLOOKUP
函數的列參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.