Localize células com critérios simples

Localize células com critérios simples

Eu tenho dados como:

insira a descrição da imagem aqui

Eu preciso localizar(obter números de linha)para células que começam com a letraA.

Minha abordagem atual é usar uma coluna "auxiliar". EmB1Eu entro:

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

e emB2Eu entro:

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

e copie. Isso identifica as linhas de interesse. Finalmente emC1Eu uso:

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

e copie.

insira a descrição da imagem aqui

Meu objetivo é eliminar a coluna “ajudante”.

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

  • use um filtro automático
  • usar um VBAUDF

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

Existe algum tipo de fórmula ou fórmula de matriz que possa obter os números das linhas ou estou preso à coluna "auxiliar"?

Responder1

Tente isto inserido como uma fórmula de matriz com Ctrl+ Shift+ Enter:

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

Presumo que seus critérios sejam mais complicados do que em sua aplicação real. Você pode substituir o LEFT($A$1:$A$23)="A"por qualquer critério que desejar e ainda funcionará.

Observe que isso retornará 9E+99se você copiá-lo para mais linhas do que as 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()),"")}

Responder2

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 diferencia maiúsculas de minúsculas. Você precisa gerenciar os erros depois de perguntar se as correspondências foram encontradas.

informação relacionada