簡體   English   中英

不同命名表中的間接索引和匹配問題公式

[英]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中使用下拉列表(來自數據驗證)以避免拼寫錯誤。

如果您想避免使用表格以及易失性函數OFFSETINDIRECT (因為如果您有很多易失性函數,它們會損害工作表的性能),您可以嘗試使用非易失性但更長更模糊的方法:

=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)

在上面,您必須進行調整

假設是:

  • 國家名稱在相關稅表上方
  • 稅表從 A 列開始
    • 如果 A 列不是從那里開始,請更改對 A 列的引用。
    • 將對 D 列的引用更改為稅表的最后一列(如果您要擴展它,甚至可以更進一步)。
  • 所有國家/地區的年份列都標記為相同(例如:從 2002 年開始的連續年份)
  • $H$14-2000計算VLOOKUP函數的列參數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM