Voy a
iniciar este post en mi blog comentando sobre una herramienta muy utilizada por
aquellos usuarios de Excel que importan información desde archivos planos hacia
el interior de las hojas de Excel.
Si, me
refiero indiscutiblemente a la herramienta: Texto en columnas. (asistente de
varios cuadros de diálogo) que podemos encontrar en el grupo Herramientas de
datos de la pestaña Datos.
Esta
herramienta la cual bajo mi punto de vista me parece una herramienta formidable
para tratar información dentro de archivos planos separada en muchos casos por
caracteres especiales, es en todo su contexto una utilidad bastante practica
que puede ser utilizada de manera similar con la información que podamos
almacenar dentro de las celdas en una hoja de Excel.
En este
caso afirmo enfáticamente que esta herramienta (Texto en columnas) no sólo
puede usarse cuando queremos importar información a Excel, por el contrario, es
muy factible poderla utilizar cuando queremos tratar información dentro de
alguna(s) celda(s) que contengan delimitadores como caracteres inmersos dentro
de cadenas de texto.
Es decir,
cuando en una o quizás varias celdas queramos separar de manera individual
(celdas independientes) porciones de texto de una cadena de texto mucho más
grande que contenga algún patrón de separación (carácter separador).
Bajo este
esquema dicha herramienta es bastante funcional. Sin embargo, esta herramienta
tiene una limitante muy poco conocida, la cual se esconde de usuarios básicos
por no estudiarla en su totalidad o de manera detenida.
Esta
limitante que tiene la herramienta y que a simple vista puede ser interpretada
como un error, es que no separa correctamente cadenas de texto cuando dichas
cadenas son devueltas dentro de las celdas por funciones o fórmulas.
Por
ejemplo, imagine que en la celda A1 usted tiene un nombre completo que usted
mismo introdujo con el teclado dentro de la celda; Y en la celda A2 tiene ese
mismo nombre, pero como fórmula de retorno desde la celda A1. Es decir, A1:
Pedro Mora; A2: =A1.
Pues bien,
si aplica el proceso que ejerce la herramienta (Texto en columnas) sobre ambas
celdas, usted podrá apreciar que la herramienta sólo actúa sobre la celda A1 y
no sobre la celda A2 (porque el nombre es devuelto mediante una fórmula).
Aquí quiero
comentarle que esto no es un error de la herramienta, la verdad es que es, una
limitante; una limitante que puede ser cubierta con programación mediante el
entorno de desarrollo de VBA del Excel.
Por
ejemplo, esta macro hace que el contenido de una celda (devuelta o no mediante
fórmula) se divida si existe un carácter separador de coma (",") dentro de las
palabras escritas o devueltas dentro de la celda.
Macro para dividir texto delimitado con comas
Sub
DividirPorComa(MiRango As Range)
Dim Celda
As Range
Dim
MatrizResultado() As String
Dim i As
Long
For Each
Celda In MiRango
Range(Celda.Offset(0,
1), Celda.Offset(0, 6)).ClearContents
MatrizResultado
= Split(Celda.Value, ",")
For i = 0
To UBound(MatrizResultado)
Celda.Offset(0,
i + 1).Value = Trim(MatrizResultado(i))
Next i
Next Celda
End Sub
Para implementarlo, sólo
tienes que invocarlo desde otro procedimiento y pasarle la celda de interés que
quiere que analice desde su argumento en la cabecera.
Gracias por compartir lo que sabes, eres una gran persona
ResponderBorrarexcelente
ResponderBorrarExcelente, gracias por compartir tus conocimientos
ResponderBorrartengo un problema , solicito tu ayuda, tengo en una celda una dirección muy larga, separada por comas, ejemplo
ResponderBorrarav, rio la piedad, no 37, Col Viaducto-Piedad, Alcaldía, Venustiano Carranza, CDMX.
como puedo extrae la Alcaldía y el estado en este caso CDMX, con una formula, ya intente todas, extraer, izquierdo, encontrar y en algunos renglones funciona y en otros me da error , gracias por la atención