
Aqui está um extrato da minha planilha:
Atenção: este é apenas um exemplo simplificado. Minha planilha completa tem muitas colunas e mais de 10.000 linhas.
Em minha planilha, frequentemente tenho linhas com texto entre colchetes que começam com LIT:
(Como na imagem).
É possível extrair automaticamente esse texto e colocá-lo em uma coluna separada da planilha?
(Por exemplo, no exemplo acima, [Lit: Next of hotel]
iria para uma coluna separada, mas ainda permaneceria na mesma linha).
Nota: Conforme mostrado no exemplo, nem toda linha tem um exemplo [Lit:].
Atualmente estou usando páginas da Apple. Mas estou feliz em experimentar o Google Docs ou o Open Office, se possível, ou outro pacote.
Responder1
Seus exemplos são conflitantes sobre se a string desejada começa com [LIT:
ou [Lit:
. Eu assumi que o [LIT:
.
No LibreOffice (e provavelmente em outros equivalentes do Excel, embora eu não tenha ideia sobre o Apple Pages ou o Google Docs), a FIND()
função permite localizar uma substring dentro de um campo de texto, mas retorna um erro se a substring não for encontrada, então você precisa use IFERROR()
também.
Considerarei primeiro o exemplo simples em que qualquer [LIT:
campo está sempre no final da string, tendo ]
como caractere final. Se os dados estiverem na coluna A
, começando em A1
, a fórmula a seguir fará o que você deseja:
=IFERROR(MID(A1,FIND("[LIT:",A1),LEN(A1)),"")
Aqui, se FIND()
retornar um valor, a substring dessa posição até o final da string será retornada; caso FIND()
contrário , MID()
gerará um erro e uma string em branco será retornada.
No caso mais complexo, onde o [LIT:
campo pode ocorrer no meio da string, a fórmula deve ser elaborada:
=IFERROR(MID(A1,FIND("[LIT:",A1),FIND("]",MID(A1,FIND("[LIT:",A1),LEN(A1)))),"")
Neste caso a substring [LIT:
até o final da string é encontrada, mas o número de caracteres gerados a partir da célula original é limitado pela posição ]
dentro da substring; novamente, qualquer erro gerará uma string em branco.
Qualquer que seja a fórmula usada, você copia a célula em que ela está e cola no restante da coluna. Se você precisar manipular [LIT:
ou [Lit:
, substitua FIND("[LIT:",A1)
por SEARCH("\[L[Ii][Tt]:",A1)
: enquanto FIND()
procura uma correspondência literal que diferencia maiúsculas de minúsculas, SEARCH()
usa correspondência de expressão regular.
Se você precisar remover a [LIT:
substring da coluna original A
, coloque o [LIT:
campo extraído em column C
e coloque em B1
:
=SUBSTITUTE(A1,C1,"",1)
Agora copie isso para o resto da coluna B
e oculte column A
. É claro que quaisquer colunas e linhas iniciais poderiam ser usadas; para meus exemplos, usei colunas adjacentes sem linhas de cabeçalho.
Observe que =SUBSTITUTE()
não gera erros, portanto não há necessidade de usar IFERROR()
.