Usando as matrizes dinâmicas de derramamento introduzidas recentemente no Excel 365, escrevi uma fórmula super simples para analisar os caracteres em uma string em células únicas. Por exemplo, se eu tiver:
qwertyuiop$
em A1 , escolho uma célula e digito:
=MID($A$1,ROW(1:11),1)
e a fórmula cai:
Isso evita inseri =MID($A$1,ROWS($1:1),1)
-lo e copiá-lo manualmente para baixo.
O problema que tenho é com o número 11 . Eu uso 11 porque sei que o comprimento de A1 é 11. Gostaria de alterar a MID()
fórmula para ajustá-la ao comprimento de A1 , em vez de digitar novamente a fórmula.
Eu tentei:
=MID($A$1,ROW(1:LEN(A1)),1)
mas isso falha. Minha solução atual é:
=FILTER(MID($A$1,ROW(1:9999),1),MID($A$1,ROW(1:9999),1)<>"")
o que parece ser uma maneira realmente idiota de transformar 11 em uma variável.
Ofereci uma solução VBA, mas foi rejeitada.
Usar SEQUÊNCIA
O que é bom em SEQUENCE é que, se você quiser que o array se espalhe horizontalmente, basta usar:
Se você estiver definido na linha, use:
Um método é através do uso de um
INDIRECT
para avaliarLEN()
e concatená-lo com seu intervalo inicial. Isso é muito próximo da sua fórmula original e é uma alternativa.