Concatenar Celdas Excel

Escrito por Hector_Comunidad Microsoft Excel. Publicado en Excel XP/2003/2007 Visto: 15244

Microsoft Most Valuable Professional

Function ConcatenarSI

( Versión VBA )

Por Héctor Miguel Orozco Díaz

Mvp -Microsoft Office Excel

Como sabréis Excel tiene la Función concatenar que une dos o mas cadenas en una cadena de texto, pero que se nos queda corta cuando necesitamos elaborar nuestras fórmulas o necesidades mas complejas.
En este artículo os vamos a mostrar como podéis concatenar celdas o unir celdas en una sola celda según condición mediante la Funcion ConcatenarSI

Desarrollo

Tenemos en nuestro Libro de Excel por ejemplo los siguientes datos >>

Columna A >> Nombres
Columna B >> Deportes

Datos Function ConcatenarSI
Necesitamos concatenar las celdas o unir las celdas cuyo deporte pertenezca a un nombre por ejemplo >>
Queremos ver en la celda C2 nos aparezca todos los deportes que corresponden a Juan >>

Function ConcatenarSI excel

Para ello aplicaremos la función Definida por el Usuario [ = ConcatenarSI ]

'Function Héctor Miguel Orozco Díaz

Function ConcatenarSI(Criterios As Range, Condicion As String, Datos As Range, _
                        Optional Exacto As Boolean = False, _
                        Optional Separa As String = " ") As String
  Dim Criterio As Range, Sig As Integer, Coincide As Boolean: ConcatenarSI = ""
  For Each Criterio In Criterios: Sig = Sig + 1: Coincide = IIf(Exacto, _
    Criterio = Condicion, LCase(Criterio) = LCase(Condicion))
    If Coincide Then If Not IsEmpty(Datos.Cells(Sig)) Then ConcatenarSI = _
      ConcatenarSI & IIf(Len(ConcatenarSI), Separa, "") & Datos.Cells(Sig)
  Next
End Function

Argumentos de la función concatenarSI

Argumentos Funcion Concatenar celdas excel

Los argumentos requeridos Criterios y Datos Tiene que tener la misma dimensión en Filas y columnas.
El argumento requeridoCondición  El dato que queremos que haga de nexo de unión en la Celda.
El argumento opcionalExactoSi ponemos un [ 1 ] nos buscara la coincidencia Exacta, si lo dejamos en blanco nos buscara todas las coincidencias.
El argumento opcionalSeparaPodemos dejarlo en Blanco o ponerle un separador al gusto [ , ] o [ - ] o [ / ] o etc....

Y el resto es para que practiquéis vosotros, por hoy eso es todo ....Como siempre ... NO hagáis mal uso de los conocimientos que se os ofrece Smile ...esperamos que haya sido de vuestra ayuda !!!

Descarga del archivo:

icon Function ConcatenarSI (9.56 kB)