Cómo obtener la primera palabra en Microsoft Excel

Anonim

Si se encuentra con una situación en la que solo necesita la primera palabra en cada línea de una celda en lugar de todo el carácter, debe leer este artículo. El siguiente tutorial lo ayudará a recuperar solo la primera palabra a través del código VBA en Excel.

En este artículo, nos centraremos en cómo mantener la primera palabra solo en cada línea de una celda separada por punto y coma a través de códigos macro.

Pregunta: Los datos en los que estoy trabajando a veces tienen varias líneas en cada una de las celdas y solo quiero extraer la primera palabra.

Puedes encontrar la pregunta original aquí.

A continuación se muestra una instantánea del texto de entrada (antes de la hoja)

A continuación se muestra una instantánea del texto de entrada (después de la hoja) en la columna A y requiere salida en la columna B; consulte la siguiente instantánea:

Para obtener el código; debemos seguir los pasos a continuación para iniciar el editor de VB

  • Haga clic en la pestaña Desarrollador
  • Desde el grupo Código, seleccione Visual Basic

  • Copie el siguiente código en el módulo estándar
 Función FirstWordOnly (rng As Range) Dim Arr () As Variant Dim Count As Integer Dim i As Integer Count = Len (rng) - Len (Reemplazar (rng, Chr (10), "")) If Count> 0 Then ReDim Arr (0 Para contar) Para i = 0 Para contar Si i = 0 Entonces Arr (i) = Izquierda (rng, InStr (1, rng, "") - 1) ElseIf j = 0 Entonces j = InStr (1, rng, Chr (10)) Arr (i) = Mid (rng, j + 1, InStr (j, rng, "") - j) Else j = InStr (j + 1, rng, Chr (10)) Arr (i) = Mid (rng, j + 1, InStr (j, rng, "") - j) End If Next FirstWordOnly = Join (Arr, ";") Else If InStr (1, rng, "")> 0 Then FirstWordOnly = Left (rng, InStr (1, rng, "")) Else FirstWordOnly = rng End If End If End Función 

Ahora, el código VBA está listo para usarse; utilizaremos la función definida por el usuario recién creada, es decir, "FirstWordOnly" en Before Sheet.

  • Para obtener la salida usando UDF en la celda B2, la fórmula será
  • = Primera palabra solamente (A2)

Explicación del código:

En el código anterior, hemos utilizado las funciones COUNT, LEN, REPLACE, IF, INSTR, MID, CHR, LEFT, JOIN VBA.

  • "Len (rng)"; esto verificará la longitud de la celda a la que nos referimos
  • ‘Reemplazar (rng, Chr (10)," ")’; El código verifica Chr (10), es decir, salto de línea en cada línea y luego se reemplaza con comillas dobles (nada)
  • ‘Count = Len (rng) - Len (Reemplazar (rng, Chr (10)," "))’; Count almacenará la diferencia de longitud de cada línea después de reemplazar el salto de línea
  • Si cuenta> 0; esto verificará si la longitud de Count es mayor que cero y si se encuentra igual a cero, es decir, la celda está en blanco, entonces la condición IF no ejecutará el código. Para verificar esto, puede usar = FirstWordOnly (A5) en la celda B5 y devolverá 0

  • Si la celda no está en blanco, entonces el bucle For se usará con la condición IF y, con la función IZQUIERDA, recuperaremos la primera palabra
  • La función JOIN agregará punto y coma al final si hay varias líneas en cada celda

Conclusión: Usando UDF podemos eliminar todo en cada línea de celda excepto la primera palabra a través de VBA. Esta función funcionará en todas las versiones, desde la antigua hasta la nueva, es decir, Microsoft Excel 2003, Microsoft Excel 2007, Microsoft Excel 2010, Microsoft Excel 2013.

Si te gustaron nuestros blogs, compártelo con tus amigos en Facebook. Y también puedes seguirnos en Twitter y Facebook.
Nos encantaría saber de usted, háganos saber cómo podemos mejorar, complementar o innovar nuestro trabajo y hacerlo mejor para usted. Escríbanos al sitio de correo electrónico