Dividir una columna en números extrayendo el texto entre paréntesis

2

Necesito extraer todo de "ORIGINAL COMBINADO" que esté entre paréntesis y colocarlo en el SPLIT A y colocar el resto en la columna SPLIT B. Por ejemplo:

    
pregunta Bryan Hankins 24.02.2017 - 17:33

1 respuesta

1

Para realizar esta tarea, necesitamos usar una combinación de funciones Text en nuestras fórmulas. Consulte la documentación de Apple para obtener más información sobre cómo usar estas funciones.

TL; DR las fórmulas están debajo de la explicación.

Por lo tanto, necesitamos identificar el (XX) en cada cadena de texto. En una columna, muestre solo los parens y los números entre ellos, y en la otra columna, omítalos. Esto requerirá la combinación de varias funciones de texto en una única fórmula.

Columna 'Dividir A'

En la 'cadena' original, cada carácter tiene una posición que comienza en 1. Entonces, por ejemplo, en la siguiente cadena, el ( tiene una posición de 3.

1 (23) Large Broom

Entonces, lo que debemos determinar es en qué posición están ( y ) en cada cadena. Podemos usar Find() para hacer esto.
FIND(search-string, source-string, start-pos)

Entonces, usando la cadena de ejemplo anterior:
=FIND("(", "1 (23) Large Broom")
devuelve: 3

Luego podemos usar FIND() para obtener la posición de ) también. En este caso devuelve la posición de 6 . Ahora podemos usar esto con la función MID() para recuperar el número con parens.

MID(A2,FIND("(",A2),FIND(")",A2,)
// Where A2 contains our original text
result: (23)

Ahora, si no hay () obtendremos un error, por lo que para resolverlo, envolvemos toda la fórmula en la función IFERROR() . Si hay un error devuelve una cadena vacía. (o cualquier cosa que desees)

IFERROR(MID(A2,FIND("(",A2),FIND(")",A2,),"")

Pegue esta fórmula en su columna 'Dividir A'.

Columna 'Dividir B'

Podemos usar la función REPLACE() para sustituir una cadena vacía por nuestro número en parens. Entonces esto: (23) se convierte en esto: "" . (Las comillas no aparecerán).
REPLACE(source-string, start-pos, replace-length, new-string)

Para eliminar (23) , necesitamos agregar 1 a la posición de ) y luego restar la posición de ( . Entonces, en este caso 7 - 3 para obtener 4 , la longitud de nuestra cadena number / parens.

REPLACE(A2,FIND("(",A2,),(FIND(")",A2,)+1−FIND("(",A2,)),"")
desglose:

REPLACE(
  A2, ← the source string cell reference
  FIND("(",A2,),
    (FIND(")",A2,)+1−FIND("(",A2,)), ← resulting in 4
"") ← replace with empty string

Envuelve esto también en IFERROR() y ahora el resultado es 1 Large Broom (Ten en cuenta el espacio adicional. Esto se puede eliminar si agregamos 2 en lugar de 1)

TL; DR : aquí estamos. ¡Uf! Las fórmulas con nuestras funciones anidadas para resolver esto:

Dividir A

IFERROR(MID(A2,FIND("(",A2),FIND(")",A2,),"")

Dividir B

IFERROR(REPLACE(A2,FIND("(",A2,),(FIND(")",A2,)+1−FIND("(",A2,)),""),"")

    
respondido por el bjbk 16.06.2017 - 00:20

Lea otras preguntas en las etiquetas