Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays excel使用返回数组的函数_Arrays_Excel - Fatal编程技术网

Arrays excel使用返回数组的函数

Arrays excel使用返回数组的函数,arrays,excel,Arrays,Excel,我有3个含有水果的细胞: banana pear apple 我给这些单元格添加了一个名称范围:水果 在单元格A1中,我有以下字符串: 香蕉,书,蓝色 如果我按以下方式使用搜索功能 =搜索(水果,A1) 它将返回一个数组:{1,#value!,#value!} 我可以使用什么公式来确定1在数组中的位置(非错误值)? 换句话说,我想使用=search(fruits,A1)作为公式中的参数,该公式将返回非错误值的位置。查看下面的公式是否有帮助: =查找(COUNTA(水果)+1,搜索(水果,A1)

我有3个含有水果的细胞:

banana
pear
apple
我给这些单元格添加了一个名称范围:水果

在单元格A1中,我有以下字符串: 香蕉,书,蓝色

如果我按以下方式使用搜索功能 =搜索(水果,A1)

它将返回一个数组:{1,#value!,#value!}

我可以使用什么公式来确定1在数组中的位置(非错误值)?
换句话说,我想使用=search(fruits,A1)作为公式中的参数,该公式将返回非错误值的位置。

查看下面的公式是否有帮助:

=查找(COUNTA(水果)+1,搜索(水果,A1),行($A$1:INDEX(A:A,COUNTA(水果)))

在哪里

COUNTA(水果)+1
确保查找值比水果计数高1

搜索(水果,A1)
您发布的公式

行($A$1:INDEX(A:A,COUNTA(fruits))
生成一个从1,2,3开始的索引位置数组

编辑:

以下调整应有助于获得适当的结果

=查找(2,1/搜索(水果,A1),行($A$1:INDEX(A:A,COUNTA(水果)))

我们尝试在数组
结果
返回匹配的地方获得倒数


在其余的情况下,它将返回#VALUE error,而
LOOKUP
会设法忽略它。由于返回的位置总是1或大于1,
COUNTA(fruits)+1
part没有意义,因此我们可以将其替换为简单的硬编码值2。

谢谢。它似乎只适用于此输入。但是如果我将A1改为“Ford,yellow,pear”,我会得到一个错误,而我希望得到结果2,因为字符串包含“pear”,这是水果数组中的第二个。@Hana感谢您指出这一点。我应该在发帖前测试一下我的公式。我已经解决了这个问题,请看公式张贴后编辑。谢谢!现在可以了。还有一个问题。如果我想返回实际值,而不是位置,该怎么办?我试图删除上面的行函数,只使用索引,但没有成功。我可以把上面的整个东西放在另一个索引阵营中,比如:=索引(水果,查找(2,1/搜索(水果,A2),索引(A:A,COUNTA(水果))),它会工作的,但我认为它可以更短?@Hana你需要使用
=查找(2,1/搜索(水果,A1),水果)
。我还没有测试过它,但它应该可以工作。