如何从另一个单元格中的文本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。
问候