Caso insensível mas função de substituição de preservação de maiúsculas e minúsculas, excel

1

Existe uma maneira de fazer isso, ou seja, Foo , FOO e fOO sairiam como Bar , BAR ee bAR , sem precisar digitar individualmente todas as permutações possíveis? na função.

= SUBSTITUTE(A1,"foo","bar") faz distinção entre maiúsculas e minúsculas, SUBSTITUTE(lower(A1),"foo", "bar") é bom para alguns aplicativos, mas remove quaisquer distinções de maiúsculas e minúsculas existentes de A1; então FoofooFOO iria para barbarbar . Obviamente, você pode usar várias substituições para capturar todas as ocorrências, mas, às vezes, isso é uma dor real.

Muito obrigado.

    
por Some_Guy 24.04.2017 / 11:23

1 resposta

0

Uma resposta feia, mas funcional.

Funciona para quaisquer 2 cadeias do mesmo tamanho.

Basta colocar meu chapéu no ringue, esperando que alguém consiga uma solução melhor (talvez uma fórmula de matriz?)

Requer colunas auxiliares. A linha superior das colunas auxiliares foi usada para um índice.

Fórmulas:

A2:(originalstring)C1:blank,or0(neededfornextcolumn)C2:C...:=SUBSTITUTE(UPPER(A2),"FOO","BAR")
 D1      : =B1+1
 D2:D... : =IF(EXACT(MID($A2,C$1,1),UPPER(MID($A2,C$1,1))),MID($B2,C$1,1),LOWER(MID($B2,C$1,1)))
 B2      : concatenate (or textjoin if you're using new excel)

Arraste a coluna D até que você tenha colunas suficientes. Faça um globo ocular ou use =max(len(A:A)) para encontrar o comprimento máximo.

    
por 24.04.2017 / 14:44