我认为我已经很好地理解了Excel,直到我的老板让我在excel中做了一些涉及MATCH
和INDEX
的事情,并且在我的生活中我无法弄清楚这些功能是如何工作的。也许更恰当的是,我无法弄清楚他们是如何在我正在看的电子表格中工作的。我会仔细地告诉你我正在做的事情。
我首先创建一个没有问题的下拉列表。下拉列表是基本概率表的列表。为了跳过一些不相关的数学,每个表将有一个数字,该数字是从表格中的所有数字生成的,这些数字将用于电子表格其他部分的某些计算中。这些表中的每一个还将具有与下拉列表中的条目匹配的名称(顶部单元格)。
[如果有人知道如何格式化这个问题,以便更容易理解我的问题,请随时告诉我如何。我不知道如何格式化stackexchange问题,因为excel值得一试。]
所以最终,我有两个正在进行预算计算的主表。计算本身是无关紧要的。相关的是我需要能够在计算中添加一个值,该值可以根据从下拉列表中选择的内容进行更改。所以让我试着举个例子。
假设我有这张表:
| Month | Balance | Interest Rate |
|:--------:|:-------:|:-------------:|
| January | 100.00 | 1% |
| February | 101.00 | 1% |
| March | 102.01 | 1% |
| April | 103.03 | 1% |
| May | 104.06 | 1% |
| June | 105.10 | 1% |
我希望利率取决于下拉列表,以便我可能已经设置了从下面的单元格表生成下拉列表的位置:
| Interest Rate |
|:-------------:|
| Low |
| Medium |
| High |
我有三张标有“低”,“中”和“高”的表。这些表中的每一个都将执行一些计算以获得最终利率结果,该结果将是顶部表格中显示的数字。因此,如果我选择“高”,我的表格将会是这样的。
| Month | Balance | Interest Rate |
|:--------:|:-------:|:-------------:|
| January | 100.00 | 5% |
| February | 105.00 | 5% |
| March | 110.25 | 5% |
| April | 115.76 | 5% |
| May | 121.55 | 5% |
| June | 127.63 | 5% |
我很确定我需要索引和匹配函数来执行此操作。我甚至会制定一个与我正在做的事情有关的公式,但我似乎无法破译一切是如何运作的。
=INDEX($U$13:$BM$416,MATCH(D12,$T$13:$T$416,0),MATCH($A$13,$U$11:$BM$11,0) + 1) * SUM(P:P)
我知道当你看不到工作表时,这并不意味着什么,但那个公式非常接近我需要做的事情。我想我最终的问题是,是否有人会帮助我了解如何在Excel中完成此操作?
假设我有这3张表显示各种不同事物的利率(例如汽车贷款,抵押贷款,信用卡)。 “######”只显示这些单元格中有值用于计算底部的数字(0.01,0.03等)。让我们也说这3个数据表的excel范围 A1:I6 。
| | DataTable 1 | | | DataTable 2 | | | DataTable 3 | |
|:------------:|:---------------:|:-------------:|:------------:|:---------------:|:-------------:|:------------:|:---------------:|:-------------:|
| Low,Interest | Medium,Interest | High,Interest | Low,Interest | Medium,Interest | High,Interest | Low,Interest | Medium,Interest | High,Interest |
|--------------|-----------------|---------------|--------------|-----------------|---------------|:-------------|-----------------|---------------|
| ####### | ####### | ####### | ####### | ####### | ####### | ####### | ####### | ####### |
| ####### | ####### | ####### | ####### | ####### | ####### | ####### | ####### | ####### |
| 0.01 | 0.03 | 0.05 | 0.02 | 0.04 | 0.06 | 0.10 | 0.20 | 0.30 |
我在 A8 中有一个下拉列表,其中包含数据表1,数据表2和数据表3的值。
假设我有另一张表(范围是K1:M14 ),看起来像这个问题中的第一个表。
| Month | Balance | Medium Interest |
|:---------:|:-------:|:---------------:|
| January | $100.00 | 3% |
| February | $103.00 | 3% |
| March | $106.09 | 3% |
| April | $109.27 | 3% |
| May | $112.55 | 3% |
| June | $115.93 | 3% |
| July | $119.41 | 3% |
| August | $122.99 | 3% |
| September | $126.68 | 3% |
| October | $130.48 | 3% |
| November | $134.39 | 3% |
| December | $138.42 | 3% |
我写了一个公式,用于确定3%如何进入“中度兴趣”列。
=INDEX($A$6:$I$6,MATCH($A$8,$A$1:$I$1,0),MATCH($M$2,$A$2:$I$2,0))
当我在下拉列表中选择数据表1时,它可以正常工作。它正确地将3%作为数据表1的中等利率,但是当我选择其他2个数据表中的任何一个时,我得到无效的单元格引用错误。这基本上就是我在真实电子表格中需要做的事情。
答案 0 :(得分:2)
我不确定如何做你想做的事,但我至少可以解释一下MATCH
和INDEX
以及你的公式对他们做了什么 - 希望这就够了!
MATCH(what,in_where,match_type)
将根据what
返回数组/范围in_where
中的match_type
索引。最好的" match_type
是0
- 就像您的示例中一样 - 这意味着"完全匹配"。其他选项为1
用于"小于"和-1
对于"大于" - 两者都要求你in_where
排序......
首先,您MATCH(D12,$T$13:$T$416,0)
示例正在查找D12
范围内$T$13:$T$416
的确切值。
INDEX(in_where,row,column)
将返回行in_where
和列row
的数组/范围column
中的值。
在您的示例中,您正在使用$U$13:$BM$416
es给出的行/列查看范围MATCH
...第一个MATCH
正在寻找D12
大致在T
列中,第二列大致在行A13
中查找11
。 (即看起来像你的"表"在第11行有"键"在第T列,你正在搜索它们的位置的交集。)+1
in该列将正确对齐MATCH
返回的索引和INDEX
的列号...
没有看到这个(例如文件在某个地方,如dropbox或screengrab),很难说更多 - 但我希望这会有所帮助!
顺便说一下 - INDEX
& MATCH
作为一个组合也可以很好地替代VLOOKUP
如果你的关键"列位于"值"的右侧您想要的列(或者如果您有一个宽表并且其中的任何更改都会强制重新计算)
根据问题的第二部分更新
新示例给出了公式:=INDEX($A$6:$I$6,MATCH($A$8,$A$1:$I$1,0),MATCH($M$2,$A$2:$I$2,0))
INDEX
将返回给定行/列的值。在这个例子中你的"表"是一行$A$6:$I$6
所以你需要在这里只提供行1
- 你不是在网格中查找,而只是列表。
因此,您希望在右侧DataTable中找到兴趣级别(桌面顶部的低/中/高)的兴趣值(从下拉列表中选择)。有几种方法可以做到这一点,具体取决于你拥有的控制......
INDEX
... MATCH
选择行/列=INDEX($A$6:$I$6,1,MATCH($A$8 & "_" & $M$1,$A$2:$I$2,0))
否则,您首先需要找到" DataTable 1"在第一个标题行中使用它来限制范围以搜索利率级别标题...它有点复杂,更多地取决于表格的详细信息(例如,它们的列数相同 - 低/中/高 - 或者有些非常高)
答案 1 :(得分:0)
Medium Interest列中3%的公式应为:
=INDEX(A6:I6,,MATCH(A8,A1:I1,0)+1)
此公式返回索引数组A6中的值:I6。由于数组A6中只有一行数据:I6,因此不必指定索引函数的行位置。这就是为什么一起有两个逗号 - 行引用丢失并且没有必要。 MATCH根据您的下拉列表提供函数的列号参考,该列表将是值1,4或7,然后+1将移动一列以上。请确保在单元格A1中有“DataTable 1”,在单元格D1中有“DataTable 2”,单元格G1有“DataTable 3”。