Gerando uma lista de números delimitados

0

Existe uma função no Excel que é capaz de gerar uma lista de números como este:

1|2|3|4|5

como mostrado na imagem abaixo:

Gostariadepoderforneceroinícioeofim,algocomo=NUMBERSRANGE(1,50).Nãohánecessidadedereceberaentradadeoutrasduascélulas.

EufizalgumaspesquisaseaquiestáminhaprimeirafunçãodoExcel:

FunctionRANGENUMBERS(D7,E7)Fori=D7ToE7RANGENUMBERS=i&"|"
Next
End Function

Como eu iria e concatenar o número do loop For para obter o resultado desejado?

    
por RhymeGuy 03.07.2018 / 18:18

2 respostas

2

Isso requer a função TEXTJOIN() :

Arrayenter(Ctrl+Shift+Enter)aseguintefórmula(nãoesqueçaderemovero{e}):

{=TEXTJOIN("|",TRUE,ROW(INDEX(C:C,1):INDEX(C:C,5)))}

Embora isso funcione como é, é preferível substituir C:C pela coluna na qual a fórmula foi inserida. Dessa forma, a fórmula não será interrompida se a coluna C for excluída.

Observe que TEXTJOIN() está disponível apenas no Excel 2016. Nas versões anteriores do Excel, é necessário um UDF de preenchimento de poliforços. (Veja este post para um básico.)

Observe também que essa é uma solução melhor que a alternativa onipresente que usa a função INDIRECT()

{=TEXTJOIN("|",TRUE,ROW(INDIRECT("1:5")))}

como INDIRECT() é volátil e faz com que a planilha seja calculada mais lentamente.

Também é mais fácil modificar a versão INDEX para que os pontos de extremidade sejam referências em vez de valores codificados.

    
por 03.07.2018 / 18:46
0

Semelhante ao número de telefone e zip + 4 mascarando, se o número sempre será 5 dígitos, então que tal usar um formato numérico personalizado como: # | # | # | # | #

    
por 03.07.2018 / 20:17