OK, eu só quero dizer que realmente acredito que seria mais fácil descobrir isso com o VBA, mas eu estava curioso o suficiente para fazer isso como uma fórmula.
=MID(A1,FIND("body",A1,FIND("body",A1,1)+1)+7,FIND("updateAuthor",A1,FIND("updateAuthor",A1,1)+1)-(FIND("body",A1,FIND("body",A1,1)+1)+10))
Isso pressupõe que você pode usar "body" e "updateAuthor" como fez na fórmula que você forneceu. Se você realmente quiser procurar pelas cadeias de caracteres com os símbolos de pontuação, como "body"." , a localização precisará de algo como CHAR(34) & "body" & CHAR(34) & ":" & CHAR(34) e CHAR(34) & "," & CHAR(34) & "updateAuthor" . Se você fizer isso, você também terá que alterar os números de offset que são adicionados (+7 e +10).
Isso também pressupõe que há dois e apenas dois autores na célula. Essa abordagem não funcionará se você tiver um número variável de autores.
A sintaxe da função Mid é MID(text,start_num,num_chars) .
A sintaxe da função Localizar é FIND(find_text,within_text,start_num) .
FIND("body",A1,FIND("body",A1,1)+1)+7
Isso lhe dá o número inicial para a função Mid.
A parte interna encontra FIND("body",A1,1) retorna a localização da primeira ocorrência de "corpo" em A1. Você precisa adicionar 1 para o número inicial do próximo achado ou apenas obterá o mesmo local. O find externo então olha para A1 novamente para "body", mas começa a procurar um caractere após a localização da primeira ocorrência. Você precisa adicionar um deslocamento para encontrar a localização do primeiro caractere após o seu "body":" , porque a função de localização lhe dirá onde está o b .
FIND("updateAuthor",A1,FIND("updateAuthor",A1,1)+1)-(FIND("body",A1,FIND("body",A1,1)+1)+10
Isso lhe dá o número de caracteres para a função Mid.
Essas instruções de localização recursivas funcionam da mesma forma acima para encontrar a diferença entre o início das informações do autor e o início da tag final, ","updateAuthor , com o deslocamento apropriado adicionado no final.