locked
CONCATENAR DADOS COM QUEBRA DE TEXTO RRS feed

  • Pergunta

  • Amigos, existe alguma forma de concatenar dados com quebra de texto? Eu tenho esta situação:

     

    1
    1

    20ST
    20VH

     

    e preciso que fique assim:

     

    1 X 20ST
    1 X 20VH

     

    Tô usando somente concatenar, mas não tá fluindo.

     

    Tks

    Jerson

    quarta-feira, 16 de julho de 2008 19:41

Respostas

  • Olá, Jerson.

    Vou dividir este post em dois tópicos, a saber: o primeiro tentará uma possível solução para sua demanda e o segundo é uma sugestão de como eu faria, que você pode ou não adotar.

    1. Possível Solução:

    a. Antes de mais nada, saiba que, através de fórmulas, não consigo centralizar o X no valor retornado pois, até onde eu saiba, isso só pode ser conseguido através de formatação da célula (algum tipo bem esotérico do qual nem mais me lembro).

    b. Isto posto, creio que a fórmula abaixo poderá ajudá-lo:

    Code Snippet

    =SE(É.NÃO.DISP(PROCV(BM10;INDIRETO("Dados!B1:Z100");9));"";SE(ÉERROS(LOCALIZAR(CARACT(10);PROCV(BM10;INDIRETO("Dados!B1:Z100");9)));PROCV(BM10;INDIRETO("Dados!B1:Z100");9) & " X ";SUBSTITUIR(PROCV(BM10;INDIRETO("Dados!B1:Z100");9);CARACT(10);" X " & CARACT(10);1)))

     

     

    Observe que a fórmula acima, embora menor, também não é nenhum bom exemplo de programação, já que a consulta é repetida várias vezes o que degrada a performance. Em resumo, nunca ponha uma fórmula dessas no seu currículo.

    c. Ainda sobre a fórmula acima, ela produzirá um resultado similar aos abaixo:

    c.1. Sem quebra de texto: 1 será transformado em 1 X

    c.2 Com quebra de texto:

    1  será transformado em 1 X

    1                       1

     

    2. Minha (modesta) sugestão:

    a. Em sua planilha Dados, separe uma coluna qualquer que tenha a altura de seu intervalo (e que pode ficar oculta depois). Separei, para exemplificar, o intervalo AB1:AB100. Observe que esta coluna está separada do intervalo B1:Z100 pela coluna AA, mostrando que sua coluna de cálculo não precisa estar colada no intervalo.

    b. Considerando que a nona e a décima coluna de seu intervalo B1:Z100 são, respectivamente, os intervalos J1:J100 e K1:K100, vamos inserir, em AB1, uma fórmula que faça a concatenação pretendida. A fórmula ficará assim:

    Code Snippet

    =SE(OU(ÉCÉL.VAZIA(J1);ÉCÉL.VAZIA(K1));"";SE(OU(ÉERRO(LOCALIZAR(CARACT(10);J1));ÉERRO(LOCALIZAR(CARACT(10);K1)));J1 & " X " & K1;EXT.TEXTO(J1;1;(LOCALIZAR(CARACT(10);J1))-1) & " X " & EXT.TEXTO(K1;1;(LOCALIZAR(CARACT(10);K1))-1) & CARACT(10) & EXT.TEXTO(J1;(LOCALIZAR(CARACT(10);J1))+1;NÚM.CARACT(J1)-(LOCALIZAR(CARACT(10);J1))) & " X " & EXT.TEXTO(K1;(LOCALIZAR(CARACT(10);K1))+1;NÚM.CARACT(K1)-(LOCALIZAR(CARACT(10);K1)))))

     

     

    c. Copie a fórmula para baixo, abarcando as demais células do intervalo AB1:AB100.

    d. Finalmente, modifique seu PROCV() para:

    PROCV(BM10;INDIRETO("Dados!B1:AB100");27)

    Observe, na fórmula acima, que a coluna AB1:AB100 é a vigésima sétima coluna do intervalo B1:AB100.

     

    Caso estas duas sugestões não atendam suas necessidades, faça-me saber para que possamos, juntos, atingir uma solução adequada.

     

    Finalmente, uma pergunta: porque o INDIRETO("Dados!B1:Z100") e não simplesmente Dados!B1:Z100?

    Atenciosamente,

    quarta-feira, 23 de julho de 2008 01:10

Todas as Respostas

  • Vc vai ter que formatar inicialmente a célula para quebra de texto automática.

    Depois concatenar como no exemplo =A1&" X "&B1&CARACT(10)&B1&" X "&C1

    CARACT(10) é o número do caractere correspondente a uma quebra de página.

    [ ]s

     

    quinta-feira, 17 de julho de 2008 18:32
  • Olá, Jerson.

    Além da solução proposta pelo Adilson, você pode querer experimentar a fórmula abaixo:

    Code Snippet

    =SE(OU(ÉCÉL.VAZIA(A1);ÉCÉL.VAZIA(B1));"";EXT.TEXTO(A1;1;(LOCALIZAR(CARACT(10);A1))-1) & " X " & EXT.TEXTO(B1;1;(LOCALIZAR(CARACT(10);B1))-1) & CARACT(10) & EXT.TEXTO(A1;(LOCALIZAR(CARACT(10);A1))+1;NÚM.CARACT(A1)-(LOCALIZAR(CARACT(10);A1))) & " X " & EXT.TEXTO(B1;(LOCALIZAR(CARACT(10);B1))+1;NÚM.CARACT(B1)-(LOCALIZAR(CARACT(10);B1))))

     

    Sobre a fórmula acima, valem as seguintes observações:

    1. A fórmula concatena os valores presentes em A1 e B1.

    2. Caso OU A1 OU B1 estejam vazias, a fórmula retorna "" (vazio).

    3. As células A1, B1 e a célula onde você inserir a fórmula devem estar formatadas para quebrar texto automaticamente.

    4. A célula onde você inserir a fórmula deve ter largura suficiente para exibir o texto concatenado ou ele parecerá truncado.

    Atenciosamente,

    quinta-feira, 17 de julho de 2008 19:12
  • Adilson, a tua fórmula cria uma referência circular se eu utilizo a C1 como destino. Se eu utilizo outra célula qualquer, o resultado fica assim:

     

    1
    1
    20ST
    40HC
    1
    1 X 20ST
    40HC
    20ST
    40HC X 1
    1 X 20ST
    40HC
    1
    1 X 20ST
    40HC

     

    Eu tentei também assim =A1&" X "&B1&CARACT(10)&A1&" X "&B1 e o resultado foi:

     

    1
    1
    20ST
    40HC
    1
    1 X 20ST
    40HC
    1
    1 X 20ST
    40HC

     

    Tentei outras possibilidades, mas o resultado não foi parecido.

     

    Tks

    Jerson

    quinta-feira, 17 de julho de 2008 19:34
  •  Otávio Alves Ribeiro wrote:

    Olá, Jerson.

    Além da solução proposta pelo Adilson, você pode querer experimentar a fórmula abaixo:

    Code Snippet

    =SE(OU(ÉCÉL.VAZIA(A1);ÉCÉL.VAZIA(B1));"";EXT.TEXTO(A1;1;(LOCALIZAR(CARACT(10);A1))-1) & " X " & EXT.TEXTO(B1;1;(LOCALIZAR(CARACT(10);B1))-1) & CARACT(10) & EXT.TEXTO(A1;(LOCALIZAR(CARACT(10);A1))+1;NÚM.CARACT(A1)-(LOCALIZAR(CARACT(10);A1))) & " X " & EXT.TEXTO(B1;(LOCALIZAR(CARACT(10);B1))+1;NÚM.CARACT(B1)-(LOCALIZAR(CARACT(10);B1))))

     

    Sobre a fórmula acima, valem as seguintes observações:

    1. A fórmula concatena os valores presentes em A1 e B1.

    2. Caso OU A1 OU B1 estejam vazias, a fórmula retorna "" (vazio).

    3. As células A1, B1 e a célula onde você inserir a fórmula devem estar formatadas para quebrar texto automaticamente.

    4. A célula onde você inserir a fórmula deve ter largura suficiente para exibir o texto concatenado ou ele parecerá truncado.

    Atenciosamente,

     

    Otávio, tua fórmula é perfeita, xou de bola! Só peço que você, por gentileza, adicione um argumento para que quando os valores em A1 e B1 não estiverem com quebra de texto o resultado não retorne erro. Ex.:

    3

    20ST

    3 X 20ST

     

     

    Tks

    Jerson

    quinta-feira, 17 de julho de 2008 20:01
  • Olá, Jerson.

    Verifique, por favor, se a fórmula abaixo corresponde às suas expectativas:

    Code Snippet

    =SE(OU(ÉCÉL.VAZIA(A1);ÉCÉL.VAZIA(B1));"";SE(OU(ÉERRO(LOCALIZAR(CARACT(10);A1));ÉERRO(LOCALIZAR(CARACT(10);B1)));A1 & " X " & B1;EXT.TEXTO(A1;1;(LOCALIZAR(CARACT(10);A1))-1) & " X " & EXT.TEXTO(B1;1;(LOCALIZAR(CARACT(10);B1))-1) & CARACT(10) & EXT.TEXTO(A1;(LOCALIZAR(CARACT(10);A1))+1;NÚM.CARACT(A1)-(LOCALIZAR(CARACT(10);A1))) & " X " & EXT.TEXTO(B1;(LOCALIZAR(CARACT(10);B1))+1;NÚM.CARACT(B1)-(LOCALIZAR(CARACT(10);B1)))))

     

     

    Atenciosamente,

    sexta-feira, 18 de julho de 2008 01:47
  • Perfeito, Otávio. Sem querer abusar de sua boa vontade, vou precisar desta mesma fórmula numa outra planilha só que utilizando PROCV. No momento estou utilizando a seguinte fórmula: =CONCATENAR(PROCV(BM10;INDIRETO("Dados!B1:Z100");9);" X ";PROCV(BM10;INDIRETO("Dados!B1:Z100");10)).

     

    Tks

    Jerson

     

     

     

    sexta-feira, 18 de julho de 2008 13:20
  • Olá, Jerson.

    Eu não consegui entender qual é o resultado pretendido. Conto com sua compreensão no sentido de me enviar mais esclarecimentos.

    Atenciosamente,

    sexta-feira, 18 de julho de 2008 13:47
  • Ok então vamos simplificar... gostaria que você apenas inserisse na fórmula =PROCV(BM10;INDIRETO("Dados!B1:Z100");9), o argumento para que o resultado retorne o formado com quebra de texto, quando os dados na origem tiverem quebra de texto. Quando não, retorna normal.

     

    Tks

    Jerson

     

    sexta-feira, 18 de julho de 2008 19:51
  • Olá, Jerson.

    Se eu consegui entender, sua fórmula ficaria assim:

    Code Snippet

    =SE(OU(É.NÃO.DISP((PROCV(BM10;INDIRETO("Dados!B1:Z100");9)));É.NÃO.DISP((PROCV(BM10;INDIRETO("Dados!B1:Z100");10))));"";SE(OU(ÉERRO(LOCALIZAR(CARACT(10);(PROCV(BM10;INDIRETO("Dados!B1:Z100");9))));ÉERRO(LOCALIZAR(CARACT(10);(PROCV(BM10;INDIRETO("Dados!B1:Z100");10)))));(PROCV(BM10;INDIRETO("Dados!B1:Z100");9)) & " X " & (PROCV(BM10;INDIRETO("Dados!B1:Z100");10));EXT.TEXTO((PROCV(BM10;INDIRETO("Dados!B1:Z100");9));1;(LOCALIZAR(CARACT(10);(PROCV(BM10;INDIRETO("Dados!B1:Z100");9))))-1) & " X " & EXT.TEXTO((PROCV(BM10;INDIRETO("Dados!B1:Z100");10));1;(LOCALIZAR(CARACT(10);(PROCV(BM10;INDIRETO("Dados!B1:Z100");10))))-1) & CARACT(10) & EXT.TEXTO((PROCV(BM10;INDIRETO("Dados!B1:Z100");9));(LOCALIZAR(CARACT(10);(PROCV(BM10;INDIRETO("Dados!B1:Z100");9))))+1;NÚM.CARACT((PROCV(BM10;INDIRETO("Dados!B1:Z100");9)))-(LOCALIZAR(CARACT(10);(PROCV(BM10;INDIRETO("Dados!B1:Z100");9))))) & " X " & EXT.TEXTO((PROCV(BM10;INDIRETO("Dados!B1:Z100");10));(LOCALIZAR(CARACT(10);(PROCV(BM10;INDIRETO("Dados!B1:Z100");10))))+1;NÚM.CARACT((PROCV(BM10;INDIRETO("Dados!B1:Z100");10)))-(LOCALIZAR(CARACT(10);(PROCV(BM10;INDIRETO("Dados!B1:Z100");10)))))))

     

     

    IMPORTANTE:

    A fórmula acima acabou por ficar muito "gorda", com 1.135 caracteres, o que a torna adequada para o Excel 2.007 mas inadequada para o 2.003, que só permitiria 1.024 caracteres por fórmula. Além do mais, como as pesquisas (PROCV()) são repetidas várias vezes, a performance acabará por ser degradada.

     

    Assim sendo, creio que as chamadas a PROCV() deveriam ser inseridas em outras células - tipo as células A1 e B1 da fórmula original - e, somente então, os resultados seriam manipulados pela fórmula de concatenação.

    Atenciosamente,

     

    P.S.: editei esta resposta para enfatizar que, em minha modesta opinião, a fórmula acima não segue as boas práticas de programação, acabando por depor contra seu autor.

    sexta-feira, 18 de julho de 2008 21:26
  • Ok Otávio, vamos tentar novamente... eu vou continuar utilizando nesta planilha apenas a fórmula =PROCV(BM10;INDIRETO("Dados!B1:Z100");9). Porém eu gostaria que você inserisse nela o argumento para que ela retorne os dados com quebra de texto, quando houver e quando não, retorne normal.

     

    Tks

    Jerson

    segunda-feira, 21 de julho de 2008 11:54
  • Bom dia, Jerson.

    Para que eu possa ajudá-lo, vou precisar que você seja, por favor, mais explícito, respondendo-me os seguintes pontos:

    1. Em quais células (ou intervalo de células) se encontram os dados antes da concatenação. Isso equivale ao desenho abaixo, cópia da informação colocada por você em seu questionamento:

    +------+------+

    |   1  | 20ST |

    |   1  | 20VH |

    +------+------+

     

    2. Em quais células (ou intervalo de células) estarão os dados possivelmente concatenados. Na célula BM10? Isto equivale ao seguinte desenho:

    +----------+

    | 1 X 20ST |

    | 1 X 20VH |

    +----------+

     

    3. Finalmente, em que parte da fórmula ou em substituição a que parâmetro você quer que a fórmula seja colocada.

     

    Resta-me, tão somente, te pedir desculpas pelo meu parco entendimento.

     

    Atenciosamente,

    segunda-feira, 21 de julho de 2008 12:26
  • Também peço desculpas por meu exíguo conhecimento, mas vamos lá... a PROCV busca os dados em uma linha de acordo com um critério pré-estabelecido, certo? Então vamos a minha fórmula:

     

    =PROCV(BM10;INDIRETO("Dados!B1:Z100");9), onde:

     

    BM10 é a célula onde insiro o critério, ou seja, o número do documento. Esta célula fica na plan "x".

     

    Dados!B1:Z100 é a matriz, na plan Dados.

     

    9 é a coluna onde encontra-se o dado solicitado.

     

    Digamos que em BM10, plan "x", eu digite o número de um documento "y" e que, em Dados, este doc esteja na linha 5. Então o dado que eu estou buscando está em Dados!I5, certo? Agora digamos que este dado esteja com quebra de texto. Então eu preciso que a fórmula =PROCV(BM10;INDIRETO("Dados!B1:Z100");9), contenha o argumento CARACT(10), que, pelo que entendi, é o argumento que retorna um dado com quebra de texto. 

     

    Em suma, eu só preciso que você adicione à fórmula =PROCV(BM10;INDIRETO("Dados!B1:Z100");9), um argumento (CARACT(10)???) que retorne o dado com quebra de texto, se na célula original ele estiver com quebra de texto. Caso o dado esteja no formato normal, retorna como tal.

     

    Tks

    Jerson

    segunda-feira, 21 de julho de 2008 14:36
  • Olá, Jerson.

    Gostaria de contar com sua paciência para me passar mais duas informações:

    1. Dê-me exemplos de dados do intervalo Dados!B1:B100, onde será realizada a procura pela coincidência com X ! BM10. Estes dados são resultado da aplicação da fórmula original que te passei (aquela da primeira resposta)?

    2. Dê-me exemplos do tipo de informação que você pretende digitar na célula X ! BM10 e com que tipo de informação no intervalo Dados ! B1:B100 ele deveria coincidir. Observe que não me interessa o retorno da função, ou seja, o dado presente na coluna 9 de Dados ! B1:Z100 e sim o valor encontrado como coincidente no intervalo Dados ! B1:B100.

     

    Por ora, tomo a liberdade de adiantar que, até onde eu sei, a função PROCV() procura por uma ocorrência do primeiro parâmetro (exata ou inexata e, no seu caso, inexata pois você omitiu o terceiro parâmetro) dentro do intervalo especificado como segundo parâmetro. Portando, para que a procura funcione você deve digitar, em BM10, o dado da forma como espera encontrá-lo no intervalo Dados ! B1:B100.

     

    Reiterando que conto com sua paciência, aguardo seu retorno.

    Atenciosamente,

    terça-feira, 22 de julho de 2008 00:26
  • Vamos lá...

     

    1. Os dados da plan Dados são importados através de arquivo txt. Na coluna B estão alocados os números dos documentos e nas demais, outros dados relativos aos documentos. Nesta planilha, não estou utilizando aquela primeira fórmula.

     

    2. Na X!BM10 eu digito o número do documento, Ex. BR1356532, que deve coincidir com o número do documento procurado na Dados!B1:B100.

     

    A título de esclarecimento, o que estou criando é um modelo de fatura. Eu carrego as informações na plan Dados e organizo-os na plan X, utilizando a fórmula PROCV, distribuindo as informações de acordo com o layout da fatura.

     

    Agradeço seu empenho em entender minha necessidade e resolver meu problema.

     

     

    Tks

    Jerson

    terça-feira, 22 de julho de 2008 12:37
  • Olá, Jerson.

    Minha mulher costuma dizer que eu sou o sujeito mais teimoso do mundo e, em momentos como este, sinto-me compelido a corroborar com ela. Digo isso porque, ao analisar as mensagens anteriores e, em especial, esta,

     JVieira wrote:

    Perfeito, Otávio. Sem querer abusar de sua boa vontade, vou precisar desta mesma fórmula numa outra planilha só que utilizando PROCV. No momento estou utilizando a seguinte fórmula: =CONCATENAR(PROCV(BM10;INDIRETO("Dados!B1:Z100");9);" X ";PROCV(BM10;INDIRETO("Dados!B1:Z100");10)).

     

    Tks

    Jerson

     

     

     

    fico com a insistente - ou teimosa - sensação de que o que você deseja é concatenar o valor retornado pela função

    PROCV(BM10;INDIRETO("Dados!B1:Z100");9) com o valor retornado pela função PROCV(BM10;INDIRETO("Dados!B1:Z100");10), nos mesmos moldes que, no início, concatenamos os valores presentes nas células A1 e B1.

    Agora, por favor, responda - me: é isso mesmo ou eu estou teimando em entender errado?

    Caso eu, ainda, esteja entendendo errado, dê-me, por favor, exemplos dos valores sobre os quais você quer aplicar a fórmula e onde eles se encontram.

    Atenciosamente,

    terça-feira, 22 de julho de 2008 18:43
  • Cara, não liga não, minha mulher também fala a mesma coisa... hehehe

     

    Mas você tem razão em teimar. É que como a fórmula ficou muito grande e eu trabalho com o Excel 2003, eu resolvi simplificar e não concatenar os dados. Portanto a solução que seria:

    DE   

    1
    1

    20ST
    20VH

    PARA               

    1 X 20ST
    1 X 20VH

                                                                         

    Ficou assim:

    DE   

    1
    1

    20ST
    20VH

    PARA        

    1
    1

    X

    20ST
    20VH

     

    Desta forma não seria necessário concatenar os dados e a fórmula ficaria bem menor. Portanto, basta que você insira na fórmula PROCV(BM10;INDIRETO("Dados!B1:Z100");9) aquele argumento que retorna o dado com quebra de texto. Caso minha explicação ainda esteja nebulosa, posso te enviar uma planilha modelo.

     

    Tks

    Jerson


     

    terça-feira, 22 de julho de 2008 20:46
  • Olá, Jerson.

    Vou dividir este post em dois tópicos, a saber: o primeiro tentará uma possível solução para sua demanda e o segundo é uma sugestão de como eu faria, que você pode ou não adotar.

    1. Possível Solução:

    a. Antes de mais nada, saiba que, através de fórmulas, não consigo centralizar o X no valor retornado pois, até onde eu saiba, isso só pode ser conseguido através de formatação da célula (algum tipo bem esotérico do qual nem mais me lembro).

    b. Isto posto, creio que a fórmula abaixo poderá ajudá-lo:

    Code Snippet

    =SE(É.NÃO.DISP(PROCV(BM10;INDIRETO("Dados!B1:Z100");9));"";SE(ÉERROS(LOCALIZAR(CARACT(10);PROCV(BM10;INDIRETO("Dados!B1:Z100");9)));PROCV(BM10;INDIRETO("Dados!B1:Z100");9) & " X ";SUBSTITUIR(PROCV(BM10;INDIRETO("Dados!B1:Z100");9);CARACT(10);" X " & CARACT(10);1)))

     

     

    Observe que a fórmula acima, embora menor, também não é nenhum bom exemplo de programação, já que a consulta é repetida várias vezes o que degrada a performance. Em resumo, nunca ponha uma fórmula dessas no seu currículo.

    c. Ainda sobre a fórmula acima, ela produzirá um resultado similar aos abaixo:

    c.1. Sem quebra de texto: 1 será transformado em 1 X

    c.2 Com quebra de texto:

    1  será transformado em 1 X

    1                       1

     

    2. Minha (modesta) sugestão:

    a. Em sua planilha Dados, separe uma coluna qualquer que tenha a altura de seu intervalo (e que pode ficar oculta depois). Separei, para exemplificar, o intervalo AB1:AB100. Observe que esta coluna está separada do intervalo B1:Z100 pela coluna AA, mostrando que sua coluna de cálculo não precisa estar colada no intervalo.

    b. Considerando que a nona e a décima coluna de seu intervalo B1:Z100 são, respectivamente, os intervalos J1:J100 e K1:K100, vamos inserir, em AB1, uma fórmula que faça a concatenação pretendida. A fórmula ficará assim:

    Code Snippet

    =SE(OU(ÉCÉL.VAZIA(J1);ÉCÉL.VAZIA(K1));"";SE(OU(ÉERRO(LOCALIZAR(CARACT(10);J1));ÉERRO(LOCALIZAR(CARACT(10);K1)));J1 & " X " & K1;EXT.TEXTO(J1;1;(LOCALIZAR(CARACT(10);J1))-1) & " X " & EXT.TEXTO(K1;1;(LOCALIZAR(CARACT(10);K1))-1) & CARACT(10) & EXT.TEXTO(J1;(LOCALIZAR(CARACT(10);J1))+1;NÚM.CARACT(J1)-(LOCALIZAR(CARACT(10);J1))) & " X " & EXT.TEXTO(K1;(LOCALIZAR(CARACT(10);K1))+1;NÚM.CARACT(K1)-(LOCALIZAR(CARACT(10);K1)))))

     

     

    c. Copie a fórmula para baixo, abarcando as demais células do intervalo AB1:AB100.

    d. Finalmente, modifique seu PROCV() para:

    PROCV(BM10;INDIRETO("Dados!B1:AB100");27)

    Observe, na fórmula acima, que a coluna AB1:AB100 é a vigésima sétima coluna do intervalo B1:AB100.

     

    Caso estas duas sugestões não atendam suas necessidades, faça-me saber para que possamos, juntos, atingir uma solução adequada.

     

    Finalmente, uma pergunta: porque o INDIRETO("Dados!B1:Z100") e não simplesmente Dados!B1:Z100?

    Atenciosamente,

    quarta-feira, 23 de julho de 2008 01:10
  • Otávio, como o X não precisa aparecer na mesma célula que o valor procurado, vou ficar apenas com a última linha da primeira fórmula: =SUBSTITUIR(PROCV(BM10;INDIRETO("Dados!B1:Z100");9);CARACT(10);CARACT(10);1). Era exatamente o que eu procurava!

    Embora sua sugestão também seja válida, a fórmula acima atende perfeitamente a minha necessidade. Muito obrigado pela ajuda e me desculpe a amolação.

     

     

    Um grande abraço,

    Jerson

    quarta-feira, 23 de julho de 2008 16:06
  • Olá, Jerson.

    Mas, por falar em teimosia ...

    retorno a este tópico para alertá-lo que a fórmula por você postada acima faz aquilo que, na linguagem popular, é expresso como "trocar seis por meia dúzia".

    Isso porque quando você desmonta a fórmula:

    =SUBSTITUIR(PROCV(BM10;INDIRETO("Dados!B1:Z100");9);CARACT(10);CARACT(10);1)

    você observa que o que ela faz é substituir a primeira ocorrência de CARACT(10) em PROCV(BM10;INDIRETO("Dados!B1:Z100");9) por outro CARACT(10) o que, convenhamos, não altera o valor de retorno.

    Tomo, então, a liberdade de sugerir a você que revise esse código e seus objetivos para conferir se tem o que pretendia. Em caso negativo, saiba que estaremos (eu, como os demais colaboradores) ad eternum aqui à sua disposição.

    Atenciosamente,

    quarta-feira, 23 de julho de 2008 18:35
  • Fique tranqüilo, meu "teimoso" amigo... eu entendo bulhufas de programação, mas a fórmula está fazendo exatamente o que eu queria... não vamos mexer com está quieto... hehehe

     

    Um grande abraço Otávio, e, mais uma vez, muito obrigado por sua atenção.

     

     

    Sds

    Jerson

     

    quarta-feira, 23 de julho de 2008 19:00