使用最近在 Excel 365 中引入的动态溢出数组,我编写了一个超级简单的公式来将字符串中的字符解析为单个单元格。例如,如果我有:
qwertyuiop$
在A1中,我选择一个单元格并输入:
=MID($A$1,ROW(1:11),1)
并且公式溢出:
这样可以避免输入=MID($A$1,ROWS($1:1),1)
和手动向下复制。
我遇到的问题是数字11。我使用11是因为我知道A1的长度是 11。我想更改MID()
公式以使其适应A1的长度,而不是我重新输入公式。
我试过了:
=MID($A$1,ROW(1:LEN(A1)),1)
但这失败了。我目前的解决方法是:
=FILTER(MID($A$1,ROW(1:9999),1),MID($A$1,ROW(1:9999),1)<>"")
这似乎是使11成为变量的一种非常愚蠢的方法。
我提供了一个 VBA 解决方案,但被拒绝了。
使用序列
SEQUENCE 的好处在于,如果您希望数组水平溢出,那么您只需使用:
如果您设置在 Row 上,请使用:
一种方法是使用 an
INDIRECT
来评估LEN()
并将其与您的起始范围连接。这与您的原始公式非常接近,是一种替代方法。