locked
Separação de caracteres RRS feed

  • Pergunta

  • Muito boa noite,

    Tenho uma célula no excel, ex: célula A1 com texto alfanumérico (12sd45_er5).

    Como separo de forma independente e para células diferentes cada um dos caracteres?

    Ex: Colocar na célula B1 o algarismo (1), na célula B2 o algarismo (2)... na célula B7 caractere (_), e assim sucessivamente.

    Fico-vos grato pela ajuda. Pode ser em VBA!

    Um abraço!

    Rui Barata

    quarta-feira, 13 de outubro de 2010 21:23

Respostas

  • Muito boa noite Exmo. Alexandre,

    Tentei mas não resultou, devo ter-me expressado mal sobre a minha necessidade.

    Ainda assim, e com base na sintaxe da ajuda que me enviou, fui às funções do Excel procurar algo parecido e... lá estava o que necessitava:

    SEG.TEXTOB

    SEG.TEXTO devolve um número específico de caracteres da cadeia de texto, começando na posição que especificar, com base no número de caracteres especificado.

    SEG.TEXTOB devolve um número específico de caracteres de uma cadeia de texto, começando na posição que especificar, com base no número de bytes especificado. Esta função deve ser utilizada com caracteres de byte duplo.

    Sintaxe

    SEG.TEXTO(texto;núm_inicial;núm_caract)

    SEG.TEXTOB(texto;núm_inicial;núm_bytes)

    Texto     é a cadeia de texto que contém os caracteres que deseja extrair.

    Núm_inicial     é a posição do primeiro carácter que deseja extrair como texto. O primeiro carácter em texto possui núm_inicial 1 e assim sucessivamente.

    Núm_caract     especifica o número de caracteres que deseja que SEG.TEXTO devolva a partir do texto.

    Núm_bytes     especifica o número de caracteres que deseja que SEG.TEXTOB devolva a partir do texto, em bytes.

    Observações

    ·     Se núm_inicial for maior do que o comprimento de texto, SEG.TEXTO devolve "" (texto vazio).

    ·     Se núm_inicial for menor do que o comprimento de texto, mas núm_inicial e núm_caract excederem o comprimento de texto, SEG.TEXTO devolve os caracteres até ao final do texto.

    ·     Se núm_inicial for menor do que 1, SEG.TEXTO devolve o valor de erro #VALOR!.

    ·     Se núm_caract for negativo, SEG.TEXTO devolve o valor de erro #VALOR!.

    ·     Se núm_bytes for negativo, SEG.TEXTOB devolve o valor de erro #VALOR!.

     

    Nem sempre é o peixe que se deve servir, a linha e a cana são as ferramentas que nos fazem ganhar autonomia.

     

    Valeu, obrigado pelas linhas de orientação!

     

    Um abraço,

     

    Rui Barata.

    • Marcado como Resposta Rui Barata sexta-feira, 15 de outubro de 2010 00:06
    sexta-feira, 15 de outubro de 2010 00:05
  • Consegui sim Alexandre, eu precisava de separar cada caracter de um texto alfanumérico para células independentes.

    Agora já posso concatenar os caracteres noutra célula na ordem que eu desejar.

    A sua orientação foi preciosa, muito obrigado e até à próxima.

    Um abraço,

    Rui Barata.

    • Marcado como Resposta Rui Barata sexta-feira, 15 de outubro de 2010 01:22
    sexta-feira, 15 de outubro de 2010 01:22

Todas as Respostas

  • Rui,

    Eu sugiro usar o seguinte:

     

    =EXT.TEXTO($A1;CÉL("col";B1)-1;1)

     

    Aí é só arrastar essa fórmula pras demais células ao lado pra ele mostrar cada caracter.

     

    Alexandre

    quinta-feira, 14 de outubro de 2010 18:07
  • Muito boa noite Exmo. Alexandre,

    Tentei mas não resultou, devo ter-me expressado mal sobre a minha necessidade.

    Ainda assim, e com base na sintaxe da ajuda que me enviou, fui às funções do Excel procurar algo parecido e... lá estava o que necessitava:

    SEG.TEXTOB

    SEG.TEXTO devolve um número específico de caracteres da cadeia de texto, começando na posição que especificar, com base no número de caracteres especificado.

    SEG.TEXTOB devolve um número específico de caracteres de uma cadeia de texto, começando na posição que especificar, com base no número de bytes especificado. Esta função deve ser utilizada com caracteres de byte duplo.

    Sintaxe

    SEG.TEXTO(texto;núm_inicial;núm_caract)

    SEG.TEXTOB(texto;núm_inicial;núm_bytes)

    Texto     é a cadeia de texto que contém os caracteres que deseja extrair.

    Núm_inicial     é a posição do primeiro carácter que deseja extrair como texto. O primeiro carácter em texto possui núm_inicial 1 e assim sucessivamente.

    Núm_caract     especifica o número de caracteres que deseja que SEG.TEXTO devolva a partir do texto.

    Núm_bytes     especifica o número de caracteres que deseja que SEG.TEXTOB devolva a partir do texto, em bytes.

    Observações

    ·     Se núm_inicial for maior do que o comprimento de texto, SEG.TEXTO devolve "" (texto vazio).

    ·     Se núm_inicial for menor do que o comprimento de texto, mas núm_inicial e núm_caract excederem o comprimento de texto, SEG.TEXTO devolve os caracteres até ao final do texto.

    ·     Se núm_inicial for menor do que 1, SEG.TEXTO devolve o valor de erro #VALOR!.

    ·     Se núm_caract for negativo, SEG.TEXTO devolve o valor de erro #VALOR!.

    ·     Se núm_bytes for negativo, SEG.TEXTOB devolve o valor de erro #VALOR!.

     

    Nem sempre é o peixe que se deve servir, a linha e a cana são as ferramentas que nos fazem ganhar autonomia.

     

    Valeu, obrigado pelas linhas de orientação!

     

    Um abraço,

     

    Rui Barata.

    • Marcado como Resposta Rui Barata sexta-feira, 15 de outubro de 2010 00:06
    sexta-feira, 15 de outubro de 2010 00:05
  • Então conseguiu fazer o que precisava?
    sexta-feira, 15 de outubro de 2010 00:52
  • Consegui sim Alexandre, eu precisava de separar cada caracter de um texto alfanumérico para células independentes.

    Agora já posso concatenar os caracteres noutra célula na ordem que eu desejar.

    A sua orientação foi preciosa, muito obrigado e até à próxima.

    Um abraço,

    Rui Barata.

    • Marcado como Resposta Rui Barata sexta-feira, 15 de outubro de 2010 01:22
    sexta-feira, 15 de outubro de 2010 01:22