如何从另一个单元格中的文本string中创build一个列表?

我需要知道如何在一个单元格中使用string: {"Alpha";"Beta";"Gamma";"Delta"}在另一个单元格的索引函数中。

如果我写=INDEX({"Alpha";"Beta";"Gamma";"Delta"};2)它正确地显示在单元格的Beta。

如果我填充单元格A1

{"Alpha";"Beta";"Gamma";"Delta"}

要么

={"Alpha";"Beta";"Gamma";"Delta"}

并用另一个单元格填充

=INDEX(A1;2)

要么

=INDEX(INDIRECT(A1);2)

它会抛出一个引用错误。 这只是一个格式问题或不可能在Excel中?

假设列表以逗号分隔,例如“Alpha,Beta,Gamma,Delta”,则:

TRIM(MID(SUBSTITUTE(A1,",",REPT(" ",LEN(A1))),LEN(A1)*(ROW(INDEX(A:A,1):INDEX(A:A,1+LEN(A1)-LEN(SUBSTITUTE(A1,",",""))))-1)+1,LEN(A1)))

将生成数组{“Alpha”;“Beta”;“Gamma”;“Delta”},然后可以将其传递给某个函数进行处理:

因此你可以使用:

=INDEX(TRIM(MID(SUBSTITUTE(A1,",",REPT(" ",LEN(A1))),LEN(A1)*(ROW(INDEX(A:A,1):INDEX(A:A,1+LEN(A1)-LEN(SUBSTITUTE(A1,",",""))))-1)+1,LEN(A1))), n )

其中n是您select的一些索引。 例如,对于n = 2,以上将返回给定的示例string的“Beta”。

但是,考虑到您似乎希望将此数组传递给一个简单的INDEX构造,可能最好使用:

=MID(A1,FIND("ζ",SUBSTITUTE(","&A1&",",",","ζ", n )),MMULT(FIND("ζ",SUBSTITUTE(","&A1&",",",","ζ", n +{0,1})),{-1;1})-1)

在那里, n的两个实例应该被您select的索引replace。

问候