Actualización: Función EXCELeINFO CONCATENAR ahora omite celdas en blanco
Ésta función que les comparto es una de las que más uso en mis labores diarias, es por eso que procuro actualizarla constantemente. En esta ocasión y en base a un comentario de un visitante del Blog les comparto una actualización que contiene 2 cambios importantes:
-
Si el rango seleccionado incluye celdas en blanco, éstas son omitidas del texto resultante.
-
Ahora la función hace dos validaciones dependiendo de si se define un separador o no, para no causar conflictor en el texto resultante.
Cómo funciona
En este ejemplo la función es llamada EICONCATENAR y cuenta con dos parámetros:
-
Rango: El conjunto de celdas que la función tomará para unir sus valores.
-
Separador (opcional) : Caracter que se imprimirá entre cada palabra.
Al usar la función si deseamos podemos usar un caracter separador para que se imprima entre cada palabra, así como en la Figura 1.
Figura 1. Función EICONCATENAR con espacio como separador.
Pero como el separador es opcional, no lo usamos si no deseamos, como en la Figura 2.
Figura 2. Función EICONCATENAR sin separador.
Código vba de la función
Nombre UDF: EICONCATENAR
Ubicación: Módulo normal.
'--------------------------------------------------------------------------------------- ' Module : Módulo1 ' Author : MVP Excel, Sergio Alejandro Campos ' Date : 12/01/2015 ' Purpose : Función UDF para concatenar contenido de celdas '--------------------------------------------------------------------------------------- ' Function EICONCATENAR(Rango As Range, Optional Separador As Variant) As String Dim t As String Dim lenTexto As Integer Application.Volatile ' For Each Celda In Rango If Not IsEmpty(Celda.Value) Then If IsMissing(Separador) Then Separador = "" t = t & Separador & Celda.Value Else End If ' Next Celda ' If Separador = "" Then ' EICONCATENAR = t ' Else ' lenTexto = Len(t) EICONCATENAR = Right(t, lenTexto - 1) ' End If ' End Function
hola sergio, funciona perfecto y salta los blancos y permite eleguir el separador, pero esta version ya no permite concatenar celda No adyacentes cosa que si permitia la funciona inicial. Es decir si quiere concatenar este rango me da error C10:C12;A13:B13;B15:C15;B17:D17 pero en la anterior funcion si que funciona.
No es posible solucionarlo?
hola sergio, funciona perfecto y salta los blancos y permite eleguir el separador, pero esta version ya no permite concatenar celda No adyacentes cosa que si permitia la funciona inicial. Es decir si quiere concatenar este rango me da error C10:C12;A13:B13;B15:C15;B17:D17 pero en la anterior funcion si que funciona.
No es posible solucionarlo?
Son dos funciones diferentes. Ésta que publico sólo permite elegir dos parámetros, que son el rango y el separador.
La función con celdas adyacentes como no tiene un mínimo de parámetros para elegir rangos, no se puede elegir un separador.
Es la de celdas adyacentes la que deseas que omita las celdas vacías ?
Genial, estaré atento. Gracias
Son dos funciones diferentes. Ésta que publico sólo permite elegir dos parámetros, que son el rango y el separador.
La función con celdas adyacentes como no tiene un mínimo de parámetros para elegir rangos, no se puede elegir un separador.
Es la de celdas adyacentes la que deseas que omita las celdas vacías ?
Si es la de celdas adyacentes la que me vendría genial que omitiera blancos. El separador cuando lo quiero cambiar lo cambio directamente en el código pero siempre suelo usar la coma
Deja vero qué puedo hacer y lo publico en el Blog.
Genial, estaré atento. Gracias
Tengo un problema, cuando exporto el excel de un formulario, cuando me contestan a las preguntas el programa en cuestión genera tantas columnas como resuestas posibles hay y solo rellena con el texto las que se han seleccionado, por ejemplo
tipo de planes
col1 Salir col2 Quedame en casa col3 Viajar
si solo contestan a la tres debajo de esa columna rellena viajar dejando las otras dos columnas “en blanco” de manera que esta funcion me vendría genial si lo que quiero es concatenar varias opciones discriminando las no contestadas, ahora bien, NO LO HACE, porque parece ser que no esta en blanco esas cajas, en cuanto le doy a eliminar el contenido con tu formula lo hace correctamente, pero sino no. ¿existe alguna forma de saber que hay en esa celda que para excel no es nada pero en realidad si debe de tener algo?
Gracias y no se si me he explicado
Un saludo
Tengo un problema, cuando exporto el excel de un formulario, cuando me contestan a las preguntas el programa en cuestión genera tantas columnas como resuestas posibles hay y solo rellena con el texto las que se han seleccionado, por ejemplo
tipo de planes
col1 Salir col2 Quedame en casa col3 Viajar
si solo contestan a la tres debajo de esa columna rellena viajar dejando las otras dos columnas “en blanco” de manera que esta funcion me vendría genial si lo que quiero es concatenar varias opciones discriminando las no contestadas, ahora bien, NO LO HACE, porque parece ser que no esta en blanco esas cajas, en cuanto le doy a eliminar el contenido con tu formula lo hace correctamente, pero sino no. ¿existe alguna forma de saber que hay en esa celda que para excel no es nada pero en realidad si debe de tener algo?
Gracias y no se si me he explicado
Un saludo
Hola.
Te sugiero dos opciones para eliminar los “datos” de las celdas en blanco.
1.- En el mismo EXCELeINFO eliges TEXTO > Eliminar espacios excesivos.
2.- Eliges las celdas en blanco y eliges TEXTO > Reemplazar caracteres. Ahí seleccionas Espacios y Saltos de línea.