我正在学习一门在线 Excel 课程,并试图理解所学公式的内部逻辑。到目前为止,大部分都很好。但是,我试图弄清楚一个包含 INDEX 和 MATCH 功能的特定公式的内部逻辑,但我一无所获。
情况是这样的:我必须编写一个公式来搜索以下数组。该公式必须使用 INDEX 和 MATCH。这是数组的图片
我要搜索的值应该由用户输入。因此,用户从 A 列的列表中选择一个年份,然后从顶部的列表中(单元格 B1 到 D1)选择“展示次数”、“点击次数”或“交易次数”。
例如,如果用户选择了 2004 和“点击次数”,则公式应该返回值,C6
因为这是 2004 年所在行与标题为“点击次数”的列交叉处的单元格。
这是我为其编写的公式:
在公式中,单元格 G2 是用户使用下拉菜单选择 2000 年至 2016 年之间的任意年份的地方。单元格 G3 是用户从另一个下拉菜单中选择“展示次数”、“点击次数”或“交易次数”的地方。
因此,上述公式应该告诉 Excel:查看单元格 A2-A18,查找用户在 G2 中输入的内容。然后,查看单元格 B1-D1,查找用户在 G3 中输入的内容。找到这些值后,查找它们相交的单元格并返回该值。
问题是公式总是返回一个单元格的结果左边用户选择的单元格。我不明白为什么会这样。我知道如何使固定它;我只是将公式的最后一部分改为MATCH(G3, A1:D1, 0))
(因此将 B1 改为 A1)。问题是,知道如何修复它对我来说还不够。我需要知道为什么原始公式不起作用。它应该据我所知,这个公式是有效的。我要求 Excel 查找“展示次数”、“点击次数”或“交易次数”,所有这些选项都可以在 中找到B1:D1
,所以我不明白为什么公式只有在我输入 时才有效A1:D1
。
如果有人能为我解释其背后的逻辑,我将不胜感激。
答案1
Match 以 Long 形式返回范围内的相对位置。
以MATCH("Clicks", A1:D1, 0)
相对位置为该范围内的第三个单元格为长,3
。
以MATCH("Clicks", B1:D1, 0)
相对位置为该范围内的第二个单元格为长,2
。
此数字被传递给 INDEX 范围。使用第一个公式,它返回第三列,A2:D18
即 Column C
;使用第二个公式,它返回第二列,即 Column B
。
为了避免这种情况,请始终使 INDEX 和 MATCHES 之间的行或列匹配:
=INDEX(A2:D18,MATCH(G2,A2:A18,0),MATCH(G3, A1:D1, 0))
或者
=INDEX(B2:D18,MATCH(G2,A2:A18,0),MATCH(G3, B1:D1, 0))