繁体   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