Excel - função array para remover espaços


1

Eu tenho uma coluna de itens de texto que podem conter espaços (células vazias) entre os itens. Em outra planilha, estou tentando usar uma fórmula de matriz sobre o intervalo existente para filtrar esses espaços vazios.

Aqui está a fórmula:

{=IFERROR(INDEX(Input_Page!$C$2:$C$61,SMALL(IF(ISTEXT(Input_Page!$C$2:$C$61),ROW(Input_Page!$C$2:$C$61),""),ROW(Input_Page!C2))),"")}

Qual foi inspirado por isto local.

Em uma pasta de trabalho em branco isso funciona como esperado, no entanto, quando eu tento usar a fórmula em uma pasta de trabalho existente, ele coloca células contendo '0' na minha lista gerada de função de matriz. Tanto a coluna de entrada quanto a coluna de saída de geração são formatadas como texto. Eu preciso que essas colunas vazias não sejam exibidas na minha região de saída.

região de entrada
região de saída

Qualquer ajuda ou conselho seria bem apreciado!

Respostas:


1

Esta pergunta foi feita antes, e uma resposta muito detalhada é dada Aqui .

Essa resposta inclui soluções de fórmulas manuais, VBA e matriz. Este último é referenciado a partir de esse site , mas para ir direto ao ponto, a fórmula dada lá (ligeiramente modificada para ajustar seus dados) é:

=INDEX($B$1:$B$21, SMALL(IF(ISBLANK($B$1:$B$21), "", ROW($B$1:$B$21)-MIN(ROW($B$1:$B$21))+1), ROW(A1)))

A saída resultante é mostrada na coluna C na tabela abaixo. Se você quiser evitar o # NUM! erros, envolva a fórmula acima em IFERROR (), que dará os resultados na Coluna D:

=IFERROR(INDEX($B$1:$B$21, SMALL(IF(ISBLANK($B$1:$B$21), "", ROW($B$1:$B$21)-MIN(ROW($B$1:$B$21))+1), ROW(A1))),"")

enter image description here


Exatamente o que eu estava procurando, obrigado pela informação também!
Benji Fuse

Bom, feliz em ajudar.
Bandersnatch

0

Você poderia tentar embrulhar tudo em uma função IF,

=IF( original formula = "", "", original formula )

Então, se for igual a branco, ao invés de entrada 0, ele retornará em branco.

{=IF(IFERROR(INDEX(Input_Page!$C$2:$C$61,SMALL(IF(ISTEXT(Input_Page!$C$2:$C$61),ROW(Input_Page!$C$2:$C$61),""),ROW(Input_Page!C2))),"")="","",IFERROR(INDEX(Input_Page!$C$2:$C$61,SMALL(IF(ISTEXT(Input_Page!$C$2:$C$61),ROW(Input_Page!$C$2:$C$61),""),ROW(Input_Page!C2))),"")}

OU

Se o valor real não for importante, apenas a sugestão visual, você poderá criar um formato numérico personalizado, de modo que um 0 seja exibido como um espaço em branco.

usando ##;##;""

enter image description here


Esta não é uma solução para o verdadeiro problema do OP. Ele quer ELIMINAR as células em branco do intervalo na nova planilha.
Bandersnatch
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.