从 Split()获取第一项

我使用 分开函数来分割一个类似于 1.23/1.15的字符串。

现在它产生了两个细胞,这是应该的。但是我如何从结果中得到某个元素呢?我想这样做:

SPLIT("1.23/1.15", "/")[0]

提取 1.23。正确的语法是什么?

我尝试使用 INDEX函数,但没有成功: =INDEX(SPLIT("1.23/1.15", "/"), 0,0)

139939 次浏览

可以使用 index 函数选择要返回的值。因此,要从示例中检索第二个值,可以使用:

=index(SPLIT("1.23/1.15", "/"), 0, 2)

最后一个参数说明您希望检索哪个 column-1将检索第一个值。

或者,您可以使用 left/rightfind从示例中提取其中一个值。例如,获取您可以使用的第一个值:

=left("1.23/1.15", find("/", "1.23/1.15"))

上述两种解决方案的问题在于,它们在数组公式函数中不受支持。如果你封装了一个查询函数,你会得到想要的结果,并且在解析你想要返回的字段方面非常灵活:

归还第一纵队

=query(SPLIT("1.23/1.15", "/"), "SELECT Col1")

归还第二纵队

=query(SPLIT("1.23/1.15", "/"), "SELECT Col2")

此外,如果您想将其应用于某个范围,可以使用:

 =index(split(filter(A2:A,A2:A<>""),"/"),0,2)

这里的数组版本不需要 QUERY(由@user3626750提出) ,可以在 ARRAYFORMULA内部工作。例如,用于提取 SPLIT结果的第一列:

=ARRAYFORMULA(IF(A1:A="","", FILTER(SPLIT(A1:A,"/"),{1,0})))

对于第二列,只需将 {1,0}替换为 {0,1}

sample