Localizar células com um critério simples

0

Eu tenho dados como:

Euprecisolocalizar(obternúmerosdelinha)paracélulasquecomeçamcomaletraA.

Minhaabordagematualéusarum"ajudante" coluna. Em B1 , eu digito:

=IF(LEFT(A1)="A",1,"")

e em B2 eu digito:

=IF(LEFT(A2)="A",MAX($B$1:B1)+1,"")

e copie para baixo. Isso identifica as linhas de interesse. Finalmente em C1 eu uso:

=IFERROR(MATCH(ROWS($1:1),$B$1:$B$23,0),"")

e copie para baixo.

Meuobjetivoéeliminaracoluna"auxiliar".

As duas únicas opções que vejo são:

  • use um filtro automático
  • use um VBA UDF

A abordagem do filtro automático é ruim porque o filtro teria que ser executado novamente sempre que os dados forem atualizados. A abordagem UDF é ruim porque a planilha deve funcionar em um ambiente livre de VBA.

Existe algum tipo de fórmula ou fórmula de matriz que pode obter os números de linha ou estou preso com a coluna "auxiliar" ??

    
por Gary's Student 20.04.2015 / 17:51

2 respostas

1

Tente inserir como uma fórmula de matriz com Ctrl + Deslocar + Enter :

{=SMALL(IF(LEFT($A$1:$A$23)="A",ROW($A$1:$A$23),9E+99),ROW())}

Presumo que seu critério é mais complicado do que isso na sua aplicação real. Você pode substituir o LEFT($A$1:$A$23)="A" por qualquer critério que você goste e ainda funcionará.

Observe que isso retornará 9E+99 se você copiá-lo para mais linhas do que aquelas que começam com "A". Você pode ajustá-lo para retornar em branco:

{=IFERROR(SMALL(IF(LEFT($A$1:$A$14)="A",ROW($A$1:$A$14),""),ROW()),"")}
    
por 20.04.2015 / 17:55
1

Tente isto:
Coloque 0 em C1.
De C2: =match(indirect("a"&c1+1&":a<last row>",true),"a*",0)+C1
Notas: A correspondência não faz distinção entre maiúsculas e minúsculas. Você precisa gerenciar os erros depois de pedir que as correspondências sejam encontradas.

    
por 20.04.2015 / 18:13