Excel: Dividir cadea por delimitador ou patrón, separar texto e números

  • Comparte Isto
Michael Brown

O titorial explica como dividir celas en Excel usando fórmulas e a función Dividir texto. Aprenderá a separar o texto por coma, espazo ou calquera outro delimitador, e como dividir cadeas en texto e números .

Dividir o texto dunha cela en varias celas é a tarefa de todos os usuarios de Excel. tratar de cando en vez. Nun dos nosos artigos anteriores, comentamos como dividir celas en Excel usando a función Texto a columna e Flash Fill . Hoxe, imos dar unha ollada en profundidade a como pode dividir cadeas usando fórmulas e a ferramenta Dividir texto .

    Como dividir texto en Excel usando fórmulas

    Para dividir cadeas en Excel, normalmente usa a función ESQUERDA, DEREITA ou MEDIO en combinación con BUSCAR ou BUSCAR. A primeira vista, algunhas das fórmulas poden parecer complexas, pero a lóxica é de feito bastante sinxela e os seguintes exemplos daránche algunhas pistas.

    Dividir a cadea por coma, punto e coma, barra, trazo ou outro delimitador.

    Ao dividir celas en Excel, a clave é localizar a posición do delimitador dentro da cadea de texto. Dependendo da súa tarefa, pódese facer mediante a BUSCA que non distingue entre maiúsculas e minúsculas ou BUSCA. Unha vez que teña a posición do delimitador, use a función DEREITA, ESQUERDA ou MEDIO para extraer a parte correspondente da cadea de texto. Para unha mellor comprensión, consideremos o seguinte(data)

  • Caracteres entre o primeiro espazo e a palabra ERRO: (hora)
  • Texto entre ERRO: e Excepción: (código de erro)
  • Todo o que vén despois de Excepción: (texto de excepción)
  • Espero que gustoume esta forma rápida e sinxela de dividir cadeas en Excel. Se tes curiosidade por probalo, hai unha versión de avaliación dispoñible para descargar a continuación. Grazas por ler e espero verte no noso blog a próxima semana!

    Descargas dispoñibles

    Fórmulas de celdas divididas de Excel (ficheiro .xlsx)

    Ultimate Suite 14 días versión totalmente funcional (ficheiro .exe)

    exemplo.

    Supoño que tes unha lista de SKU do patrón Item-Color-Size e queres dividir a columna en 3 columnas separadas:

    1. Para extraer o nome do elemento (todos os caracteres antes do primeiro guión), insira a seguinte fórmula en B2 e, a continuación, cópiea na columna:

      =LEFT(A2, SEARCH("-",A2,1)-1)

      Nesta fórmula, BUSCAR determina a posición do primeiro guión ("-") na cadea e a función ESQUERDA extrae todos os caracteres que lle quedan (restraes 1 da posición do guión porque non quere extraer o propio guión).

    2. Para extraer a cor (todos os caracteres entre o 1o e o 2o guión), introduza o seguinte fórmula en C2 e despois cópiaa noutras celas:

      =MID(A2, SEARCH("-",A2) + 1, SEARCH("-",A2,SEARCH("-",A2)+1) - SEARCH("-",A2) - 1)

      Nesta fórmula, estamos a usar a función MID de Excel para extraer texto de A2.

      A posición inicial e o número de caracteres a extraer calcúlanse coa axuda de 4 funcións de BUSCA diferentes:

      • Número de inicio é a posición do primeiro guión +1:

        SEARCH("-",A2) + 1

      • Número de caracteres a extraer : a diferenza entre a posición do segundo guión e do primeiro guión, menos 1:

        SEARCH("-", A2, SEARCH("-",A2)+1) - SEARCH("-",A2) -1

    3. Para extraer o tamaño (todos os caracteres despois do terceiro guión), introduza a seguinte fórmula en D2:

      =RIGHT(A2,LEN(A2) - SEARCH("-", A2, SEARCH("-", A2) + 1))

      Nesta fórmula, a función LEN devolve a lonxitude total da cadea,do que resta a posición do 2o guión. A diferenza é o número de caracteres despois do segundo guión, e a función DEREITA extraeos.

    De forma similar, pode dividir a columna por calquera outro personaxe. Todo o que tes que facer é substituír "-" polo delimitador necesario, por exemplo espazo (" "), coma (","), barra diagonal ("/"), punto e coma (";"), punto e coma (";"), etc.

    Consello. Nas fórmulas anteriores, +1 e -1 corresponden ao número de caracteres do delimitador. Neste exemplo, é un guión (1 carácter). Se o teu delimitador consta de 2 caracteres, p. ex. unha coma e un espazo, despois fornece só a coma (",") á función de BUSCA e use +2 e -2 en lugar de +1 e -1.

    Como dividir cadeas por salto de liña Excel

    Para dividir o texto por espazo, use fórmulas similares ás demostradas no exemplo anterior. A única diferenza é que necesitará a función CHAR para proporcionar o carácter de salto de liña xa que non pode teclealo directamente na fórmula.

    Supoño que as celas que quere dividir semellan a isto: 0>

    Toma as fórmulas do exemplo anterior e substitúe un guión ("-") por CHAR(10) onde 10 é o código ASCII para o avance de liña.

    • Para extraer o nome do elemento :

      =LEFT(A2, SEARCH(CHAR(10),A2,1)-1)

    • Para extraer a cor :

      =MID(A2, SEARCH(CHAR(10),A2) + 1, SEARCH(CHAR(10),A2,SEARCH(CHAR(10),A2)+1) - SEARCH(CHAR(10),A2) - 1)

    • Para extraer o tamaño :

      =RIGHT(A2,LEN(A2) - SEARCH(CHAR(10), A2, SEARCH(CHAR(10), A2) + 1))

    E así é como se ve o resultado:

    Como dividir texto e números en Excel

    Para comezar, non hai unha solución universal que funcione para todas as cadeas alfanuméricas. A fórmula a utilizar depende do patrón de cadea particular. A continuación atoparás as fórmulas para os dous escenarios comúns.

    Dividir cadea de patrón "texto + número"

    Supoño que tes unha columna de cadeas con texto e números combinados, onde un número sempre segue o texto. Quere romper as cadeas orixinais para que o texto e os números aparezan en celas separadas, como esta:

    O resultado pódese conseguir de dúas formas diferentes.

    Método 1: Conta os díxitos e extrae tantos caracteres

    A forma máis sinxela de dividir cadeas de texto onde o número vén despois do texto é esta:

    Para extraer números , busca na cadea todos os números posibles do 0 ao 9, obtén o total dos números e devolve ese número de caracteres ao final da cadea.

    Coa cadea orixinal en A2, a fórmula é o seguinte:

    =RIGHT(A2,SUM(LEN(A2) - LEN(SUBSTITUTE(A2, {"0","1","2","3","4","5","6","7","8","9"},""))))

    Para extraer texto , calculas cantos caracteres de texto contén a cadea restando o número de díxitos extraídos (C2) da lonxitude total da cadea orixinal en A2 . Despois diso, usa a función LEFT para devolver tantos caracteres desde o principio da cadea.

    =LEFT(A2,LEN(A2)-LEN(C2))

    Onde A2 é a cadea orixinal,e C2 é o número extraído, como se mostra na captura de pantalla:

    Método 2: Descubra a posición do primeiro díxito nunha cadea

    Unha alternativa A solución sería usar a seguinte fórmula para determinar a posición do primeiro díxito na cadea:

    =MIN(SEARCH({0,1,2,3,4,5,6,7,8,9},A2&"0123456789"))

    Unha vez atopada a posición do primeiro díxito, pode dividir texto e números usando fórmulas ESQUERDA e DEREITA moi sinxelas.

    Para extraer texto :

    =LEFT(A2, B2-1)

    Para extraer número :

    =RIGHT(A2, LEN(A2)-B2+1)

    Onde A2 é a cadea orixinal e B2 é a posición do primeiro número.

    Para desfacerse da columna auxiliar que mantén o posición do primeiro díxito, pode inserir a fórmula MIN nas funcións ESQUERDA e DEREITA:

    Fórmula para extraer texto :

    =LEFT(A2,MIN(SEARCH({0,1,2,3,4,5,6,7,8,9},A2&"0123456789"))-1)

    Fórmula para extraer números :

    =RIGHT(A2,LEN(A2)-MIN(SEARCH({0,1,2,3,4,5,6,7,8,9},A2&"0123456789"))+1)

    Dividir cadea do patrón "número + texto"

    Se está a dividir celas onde o texto aparece despois do número, pode extraer números coa seguinte fórmula:

    =LEFT(A2, SUM(LEN(A2) - LEN(SUBSTITUTE(A2, {"0","1","2","3","4","5","6","7","8","9"}, ""))))

    A fórmula é semellante á comentada no exemplo anterior, excepto que usas a función ESQUERDA en lugar de DERECHA para obter o número do lado esquerdo da cadea.

    Unha vez que teñas os números. , extrae texto restando o número de díxitos da lonxitude total da cadea orixinal:

    =RIGHT(A2,LEN(A2)-LEN(B2))

    Onde A2 é a cadea orixinal e B2 é o número extraído,como se mostra na seguinte captura de pantalla:

    Consello. Para obter o número de calquera posición da cadea de texto , use esta fórmula ou a ferramenta Extraer.

    É así como pode dividir cadeas en Excel usando diferentes combinacións de diferentes funcións. Como ves, as fórmulas están lonxe de ser obvias, polo que pode querer descargar o libro de traballo de exemplo de celas divididas de Excel para examinalas máis detidamente.

    Se descubrir os xiros arcanos das fórmulas de Excel non é a túa ocupación favorita, pode gustarlle o método visual para dividir celas en Excel, que se demostra na seguinte parte deste titorial.

    Como dividir celas en Excel coa ferramenta Dividir texto

    Unha forma alternativa de dividir un a columna de Excel está a usar a función Texto dividido incluída na nosa Suite Ultimate para Excel, que ofrece as seguintes opcións:

      Para facer as cousas máis claras, vexamos cada opción máis detalladamente, unha á vez.

      Dividir celas por carácter

      Escolle esta opción sempre que queiras dividir o contido da cela en cada aparición do carácter especificado .

      Para este exemplo, tomemos as cadeas do patrón Item-Color-Size que usamos na primeira parte deste tutorial. Como recordarás, separámolos en 3 columnas diferentes usando 3 fórmulas diferentes. E así é como podes conseguir o mesmo resultado en dous pasos rápidos:

      1. Supoñendo que tes Ultimate Suiteinstalado, seleccione as celas a dividir e prema na icona Dividir texto na pestana Datos de Ablebits .

      2. O <1 O panel>Dividir texto abrirase no lado dereito da xanela de Excel e fai o seguinte:
        • Amplíe o grupo Dividir por carácter e seleccione un dos delimitadores predefinidos ou escriba calquera outro carácter na caixa Personalizado .
        • Escolla se quere dividir as celas en columnas ou filas.
        • Revise o resultado na Vista previa sección e faga clic no botón Dividir .

      Consello. Se pode haber varios delimitadores sucesivos nunha cela (por exemplo, máis dun carácter de espazo), seleccione a caixa Tratar delimitadores consecutivos como un .

      Feito! A tarefa que requiría 3 fórmulas e 5 funcións diferentes agora só leva un par de segundos e un clic nun botón.

      Dividir celas por cadea

      Esta opción permite divide cadeas usando calquera combinación de caracteres como delimitador. Tecnicamente, divide unha cadea en partes usando unha ou varias subcadeas diferentes como límites de cada parte.

      Por exemplo, para dividir unha oración polas conxuncións " e " e " ou ", expanda o grupo Dividir por cadeas e introduza as cadeas delimitadoras, unha por liña:

      Como resultado, a frase fonte está separada en cada aparición de cada delimitador:

      Consello.Os caracteres "ou" así como "e" a miúdo poden formar parte de palabras como "laranxa" ou "Andalucía", así que asegúrate de escribir un espazo antes e despois de e e ou para evitar dividir palabras.

      E aquí outro exemplo real. Supoñamos que importaches unha columna de datas dunha fonte externa, que ten o seguinte aspecto:

      5.1.2016 12:20

      5.2.2016 14:50

      Este formato non é convencional para Excel e, polo tanto, ningunha das funcións Data recoñecería ningún elemento de data ou hora. Para dividir día, mes, ano, horas e minutos en celas separadas, introduza os seguintes caracteres na caixa Dividir por cadeas :

      • Punto (.) para separar día e mes e ano
      • Dos dous puntos (:) para separar horas e minutos
      • Espazo para separar data e hora

      Preme o botón Botón Dividir e inmediatamente obterás o resultado:

      Dividir celas por máscara (patrón)

      Separar unha cela por máscara significa dividir unha cadea baseada nun patrón .

      Esta opción resulta moi útil cando precisa dividir unha lista de cadeas homoxéneas nalgúns elementos ou subcadeas. A complicación é que o texto fonte non se pode dividir en cada aparición dun delimitador dado, só nunha(s) ocorrencia(s) específica(s). O seguinte exemplo facilitará a comprensión das cousas.

      Supoño que tes unha lista de cadeas extraídas dalgún rexistroficheiro:

      O que quere é ter data e hora, se é o caso, código de erro e detalles de excepción en 3 columnas separadas. Non pode utilizar un espazo como delimitador porque hai espazos entre a data e a hora, que deberían aparecer nunha columna, e hai espazos dentro do texto de excepción, que tamén debería aparecer nunha columna.

      A solución é dividindo unha cadea coa seguinte máscara: *ERRO:*Excepción:*

      Onde o asterisco (*) representa calquera número de caracteres.

      Os dous puntos (:) inclúense nos delimitadores porque non queremos que aparezan nas celas resultantes.

      E agora, expanda a sección Dividir por máscara na sección Dividir texto panel, escriba a máscara na caixa Introducir delimitadores e prema en Dividir :

      O resultado será semellante ao seguinte:

      Nota. A división das cadeas por máscara é distingue entre maiúsculas e minúsculas . Polo tanto, asegúrate de escribir os caracteres da máscara exactamente como aparecen nas cadeas de orixe.

      Unha gran vantaxe deste método é a flexibilidade. Por exemplo, se todas as cadeas orixinais teñen valores de data e hora e queres que aparezan en columnas diferentes, usa esta máscara:

      * *ERROR:*Exception:*

      Traducido ao inglés sinxelo, a máscara indica ao complemento que divida as cadeas orixinais en 4 partes:

      • Todos os caracteres antes do primeiro espazo atopados dentro da cadea

      Michael Brown é un entusiasta da tecnoloxía dedicada á súa paixón por simplificar procesos complexos mediante ferramentas de software. Con máis dunha década de experiencia na industria tecnolóxica, perfeccionou as súas habilidades en Microsoft Excel e Outlook, así como en Follas de cálculo e Documentos de Google. O blog de Michael está dedicado a compartir o seu coñecemento e experiencia con outros, proporcionando consellos e titoriais fáciles de seguir para mellorar a produtividade e a eficiencia. Tanto se es un profesional experimentado como un principiante, o blog de Michael ofrece valiosas ideas e consellos prácticos para sacar o máximo proveito destas ferramentas de software esenciais.