返回数组使用Excel中使用INDEX函数
出于任何原因,如果要对具有特定索引的范围执行某些操作,您将考虑使用INDEX函数获取特定索引上的值数组。像这样。
让我们通过一个例子来理解它。
在这里,我有一个“费率”列。我想对位置1,3和5的值求和。我在C2中编写此公式。
令人惊讶的是,当我们提供数组作为索引时,INDEX函数不会返回值数组。我们只获得第一个价值。 SUM函数仅返回一个值的和。
=SUM(INDEX(A2:A11,{1,3,5}))
那么我们如何获得INDEX函数返回该数组。好吧,我在互联网上找到了这个解决方案,但我不太了解它是如何工作的,但是它可以工作。
获取索引数组的通用公式
范围:这是您要在给定索引号中查找的范围。数字:这些是索引号。
=SUM(INDEX(range,N(IF(1,{numbers})))
现在,将上面的公式应用于我们的示例。
在C2中编写此公式。
并且这将返回正确的答案为90。
=SUM(INDEX(A2:A11,N(IF(1,{1,3,5})))
工作原理。
好吧,正如我所说的,我不知道为什么它会返回数字数组,但是在这里会发生什么。
link:/ tips-if-condition-in-excel [IF]
(1,\ {1,3,5}):
这部分按预期返回数组\ {1,3,5} N(link:/ tips-if-condition-in-excel [IF]
(1,\ {1,3,5}))
这将转换为N(\ {1,3,5}),这再次给我们\ {1,3,5} NOTE:N函数返回等于任何值的数字。如果值不是数字可转换值,则返回0(如文本)。对于错误,它返回错误。
| link:/ lookup-formulas-excel-index-function [INDEX]
((A2:A11,N(link:/ tips-if-condition-in-excel [IF]
(1,\ {1,3 ,5}))):
转换为`link:/ lookup-formulas-excel-index-function [INDEX]`(((A2:A11,\ {1,3,5})
并以某种方式返回数组\ {10,30,50}。正如您先前在编写`link:/ lookup-formulas-excel-index-function [INDEX]`((A2:A11,\ { 1,3,5})
直接在公式中仅返回10,但是当我们使用N和IF函数时,它将返回整个数组。如果您理解它,请在下面的注释部分告诉我。
|||| ===如何在索引值中使用单元格引用来获得数组
在上面的示例中,我们在函数中对索引进行了硬编码,但是如果我想从a中获得它,该怎么办| {||||在这里,我们在单元格D2中具有以下公式:
这将返回10。给定索引的第一个值。即使我们使用CTRL + SHIFT + ENTER将其作为数组公式,它会得到相同的结果。
为了使其正常工作,请在范围前添加+或-(双一元)运算符,并将其作为数组公式输入。
这可行。不要问我如何?它只是工作。如果您能告诉我,我将如何在此处包括您的姓名和说明。
=SUM(INDEX(A2:A11,N(IF(1,A2:A5)))
因此,我们学习了如何从INDEX函数获取数组。 Excel中有一些疯狂的事情正在发生。如果您可以在下面的评论部分中解释它的工作原理,请在解释中加入您的名字。
下载文件:
{=SUM(INDEX(A2:A11,N(IF(1,+A2:A5)))}