Excel Avanzado

Un blog para compartir los tips de Excel Avanzado que todos necesitamos!

Excel Avanzado

Función InStr

| 2 Comments

DESCRIPCIÓN:

Esta función es particularmente útil en combinación con otras funciones que permiten la manipulación de textos.

La función InStr retorna la posición de la primera ocurrencia de una cadena de caracteres en otra cadena de caracteres.

La sintaxis de la función InStr es la siguiente:

             InStr( [posición inicial], texto base, texto a buscar, [tipo comparación] )

posición inicial (opcional): Es la posición en la cual empieza la búsqueda. Si el parámetro es omitido, la búsqueda empezará en la primera posición.
texto base: es la cadena donde se buscará la ocurrencia.
texto a buscar: es la cadena de texto que se buscará.
tipo comparación (opcional): Indicará el modo de búsqueda.

Ejemplo 1:

Sub Prueba_Instr()

Texto = “XXpXXpXXPXXP”
buscar = “P”

‘Comparación binaria, busca P, si encuentra p lo considerará distinto
Posicion = InStr(4, Texto, buscar, vbBinaryCompare)
MsgBox Posicion

‘Comparación de texto, P ó p será lo mismo en esta búsqueda
Posicion = InStr(4, Texto, buscar, vbTextCompare)
MsgBox Posicion

‘Si no se coloca el tercer parámetro asume binaria (exacta)
Posicion = InStr(Texto, buscar)
MsgBox Posicion

‘ Si el texto no existe retorna cero
Posicion = InStr(1, Texto, “W”)
MsgBox Posicion

End Sub

Ejemplo2:
Sub FUNCION_INSTR()
posicion = InStr(“Hola”, “l”)
Range(“B3″) = posicion
End Sub

En posición se guardará el valor de 3 que es la posición que ocupa “l” en la cadena “Hola”.

Esta posición una vez obtenida puede ser empleadas por otras fórmulas para determinar cual es el texto que se requiere obtener.

Elaborado por: Luis Pinto

2 Comments

  1. Haciendo un ejemplo utilizando esta función, en la celda (A2) pongo el texto, en la celda (B2) el valor a buscar y resultado lo muestro en la celda (C2):

    Sub funcionInSrt()
    Dim texto As String
    Dim valorBuscar As String
    Dim posicion As Integer
    texto = Range(“A2″).Value
    valorBuscar = Range(“B2″).Value
    posicion = InStr(texto, valorBuscar)
    Range(“C2″) = posicion
    End Sub

    • Me acabo de dar cuenta si el texto(A2) lo pongo en Mayúsculas, y el valor de la celda (B2) lo escribo en Minúsculas, utilizando la función InStr me arroja 0 del valor de la posición ya que no encuentra el valor buscado dentro de nuestro Texto.

      Una solución ha este ejemplo seria convertir a minúsculas utilizando LCase ambas celdas tanto A2 y B2; o en otro caso utilizar UCase para convertir a Mayúscula las celdas, el código quedaría así:

      Sub funcionInSrt()
      Dim texto As String
      Dim valorBuscar As String
      Dim posicion As Integer
      texto = Range(“A2″).Value
      texto = LCase(texto)
      valorBuscar = Range(“B2″).Value
      valorBuscar = LCase(valorBuscar)
      posicion = InStr(texto, valorBuscar)
      Range(“C2″) = posicion
      End Sub

Deja un comentario

Required fields are marked *.


Excel Avanzado located at , Lima, Perú . Reviewed by usuarios rated: 4.7 / 5