Mostrando entradas con la etiqueta Excel Avanzado. Mostrar todas las entradas
Mostrando entradas con la etiqueta Excel Avanzado. Mostrar todas las entradas

miércoles, 25 de marzo de 2015

Remover acentos y caracteres especiales en textos en Excel


Existen ocasiones que tenemos que simplificar o unificar una lista de nombres (valores)  únicos, para ello recibimos la información en un listado de Excel y en estos valores recibimos palabras con tildes, sin ellas., caracteres especiales y dobles espacios Ejemplo de esto puede ser: TECNICO y TÉCNICO. Aunque en teoría son muy iguales, necesitas dejar un valor único para poder unificar las listas.

Para sacar un mejor partido a la opción “Quitar duplicados” de la cinta de Excel, lo primero que debes hacer es guardar el archivo con la lista en formato .xlsm. “Libro de Excel habilitado para macros”.  Después habilitar la cinta de Desarrollador a través del menú archivo, opciones de Excel y personalizar cinta de opciones.



Posteriormente ir a la cinta de programador, ingresas a la opción Visual Basic. En esta opción y sobre el nombre de archivo usas el clic derecho para insertar un módulo. También puedes llegar a la opción de Visual Basic con las teclas de acceso rápido Alt+F11.


Una vez agregado el módulo, puedes copiar la función que se encuentra escrita abajo. La función quita los acentos, caracteres especiales y reemplaza los dobles espacios por un espacio.
Function QuitarAcentos(Valor As String) As String

    Dim ConSignos As String
    Dim SinSignos As String
    Dim Remover  As String
   
    Dim CaracterOLD As String
    Dim CaracterNEW As String
   
    ConSignos = "áàäéèëíìïóòöúùüçÁÀÄÉÈËÍÌÏÓÒÖÚÙÜÇ"
    SinSignos = "aaaeeeiiiooouuucAAAEEEIIIOOOUUUC"
    Remover = "./\*$-+!#%&/()=?¡'¿¨*@´+~{}[]`^,.:;_<>"
   
    Dim Texto As String
    Texto = Valor
   
  
   If (Len(Texto) > 0) Then
    For iLoop = 1 To Len(ConSignos)
        CaracterOLD = Mid(ConSignos, iLoop, 1)
        CaracterNEW = Mid(SinSignos, iLoop, 1)
        Texto = Replace(Texto, CaracterOLD, CaracterNEW)
    Next iLoop
   
    For iLoop = 1 To Len(ConSignos)
        CaracterOLD = Mid(Remover, iLoop, 1)
        Texto = Replace(Texto, CaracterOLD, "")
    Next iLoop
   End If
  
    While (InStr(Texto, "  ") > 0)
        Texto = Replace(Texto, "  ", " ")
    Wend

   QuitarAcentos = Texto
End Function

Terminada de agregar la función al módulo, basta con insertar la función a la hoja de Excel a través de la opción de “Insertar función”, en la categoría Definidas por el usuario.
A continuación podrás apreciar el resultado de la función.



Texto Original
Texto sin Acentos y Caracteres especiales
TECNICO EN COMPUTACIÓN % +
TECNICO EN COMPUTACION
TECNICO EN   #$ COMPUTACIÓN
TECNICO EN COMPUTACION

Con las listas simplificadas, podrás copiar el resultado sobre la lista original o en una nueva hoja y posteriormente quitar los duplicados, esto facilitará la depuración de textos.

Está función es muy útil cuando toca depurar información para cargar tablas paramétricas en una base de datos.  

Si te es de utilidad la información anterior, no olvides dar un “Like”.


sábado, 4 de agosto de 2012

Función de búsqueda vertical en Excel

La función búsqueda vertical "BuscarV, ConsultarV o VlookUp". dependiendo de la versión de Excel o el idioma, esta función nos permite buscar dentro de  en un conjunto de datos "Tabla o Rango" un valor determinado que se encuentra en la primera columna y una vez encontrado pueden retornar el valor que se encuentre en la misma celda o celdas subsiguientes de la misma fila.

Los parámetros de la función son =BUSCARV(Valor Buscado, Matriz buscar en, Indicador de columnas, Ordenado).

El parámetro valor buscado corresponde a una celda donde se digita el valor que se necesita buscar en el rango o matriz de celdas de donde se necesita  recuperar un valor.
El valor de matriz buscar en es un rango de celdas donde se encuentra la información donde se va a buscar.

El indicador de columnas es el numero de la columna donde se encuentra el valor que se requiere retornar.

El parámetro Ordenado indica si los valores de la primera columna, que es en la que se busca se encuentran ordenados "Falso" o desordenados "VERDADERO".

Tips a tener en cuenta:

• Si se necesita traer varios valores que se encuentran en el rango de búsqueda, se debe usar referencias relativas o absolutas en el parámetro de "Valor_Buscado", por ejemplo si se va a copiar la formula hacia la derecha lo mejor es dejar fija la columna, en el ejemplo de la imagen seria "$B1", en caso copiar la formula hacia abajo se debe dejar fijo el parámetro de la fila "B$1"

• Siempre se debe dejar con referencias absolutas la Matriz_buscar_en, para que no cambie el rango de búsqueda en caso de copiar la formula, la mejor manera es cuando ya se selecciono el rango es pulsando la tecla F4.

• El campo indicador_columnas indica la columna que tiene la información que se necesita retornar, una vez encontrado el valor buscado, si colocas 1 traerá el valor de la primera columna que corresponde al valor buscado.

• Cuando el valor no se encuentra y campo "Ordenado" está configurado como Falso, la función retornará el valor "#N/A".

• En caso de colocar un numero de columna mayor a cantidad de columnas seleccionadas en el rango la función retornará "#¡REF!".

• El parámetro ordenado indica si los valores de la primera columna están ordenados, personalmente siempre lo dejo en "Falso", porque en caso de no existir el valor genera el error "#N/A" que se puede controlar con la función EsError(). Cuando se deja este valor "Verdadero" la función supone que los datos en los que se busca están ordenados y en caso de no encontrar el valor va a retornar el valor inmediato al mayor que encuentra en la lista, por ejemplo si la lista es "1,2,3,5,6" y se busca el valor 4 con la opción de ordenamiento en verdadero va a retornar el valor que encuentre en la fila del 3, esto puede inducir a un error de datos.

• Si se necesita buscar por el valor de dos columnas por ejemplo: el código de un material y un año, se puede hacer unificando los valores de las dos columnas en una sola columna que se inserta al principio del rango de búsqueda, la unión de dos columnas se hace con la función Concatenar.
• El archivo de Excel que se encuentra en este enlace tiene ejemplos de búsqueda vertical, así como los ejemplos con formulas combinadas.

• Más adelante actualizaré el articulo y el archivo con búsqueda en matrices combinando buscar vertical con la función coincidir.

• Cuando el valor de la primera columna es numérico, pero el formato de las celdas esta en texto, la función Buscarv no retornará ningún valor, se debe convertir la columna a números para que BuscarV retorne valores.

Entrada destacada

Arquitectura de N-Capas con Visual Studio .NET y AngularJS

Este artículo es el primero de una serie de artículos en que quiero explicar mi visión de la programación por capas. La Arquitectura ...