Excel proporciona una función de libro de trabajo y un operador que tienen el mismo propósito: combinar cadenas en una cadena más larga. La función CONCATENAR y el operador comercial (&) tienen esencialmente el mismo propósito.

Mucha gente usa el operador ampersand en lugar de la función CONCATENAR porque requiere menos escritura, pero CONCATENAR sería inmensamente más valioso si manejara un rango de celdas.

Desafortunadamente, no es así, pero puede crear su propia función definida por el usuario que concatenará cada celda en un rango muy bien.

Considere la siguiente macro:

Function Concat1(myRange As Range, Optional myDelimiter As String)

Dim r As Range

Application.Volatile     For Each r In myRange         Concat = Concat & r & myDelimiter     Next r     If Len(myDelimiter) > 0 Then         Concat = Left(Concat, Len(Concat) - Len(myDelimiter))

End If End Function

Esta función requiere un rango y proporciona un delimitador opcional.

La última instrucción «If» elimina el delimitador final final de la cadena concatenada. Con la función CONCAT1, las celdas se pueden agregar y eliminar dentro del rango, sin el mantenimiento requerido por las fórmulas CONCATENATE o ampersand. Todo lo que necesitas hacer es llamar a la función de una de las siguientes maneras:

=CONCAT1(C8:E10)

=CONCAT1(C8:E10,"|")

El segundo método de llamar a la función utiliza el delimitador opcional, que se inserta entre cada uno de los valores concatenados del rango C8: E10. Sin embargo, hay un problema con esto: si una celda en ese rango está vacía, entonces puede terminar con dos delimitadores secuenciales. Si prefiere tener un solo delimitador, entonces necesita hacer un pequeño cambio en la función:

Function Concat2(myRange As Range, Optional myDelimiter As String)

Dim r As Range

Application.Volatile     For Each r In myRange         If Len(r.Text) > 0 Then             Concat = Concat & r & myDelimiter         End If     Next r     If Len(myDelimiter) > 0 Then         Concat = Left(Concat, Len(Concat) - Len(myDelimiter))

End If End Function

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.

link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (3062) se aplica a Microsoft Excel 97, 2000, 2002 y 2003. Puede encontrar una versión de este consejo para la interfaz de cinta de Excel (Excel 2007 y posteriores) aquí:

link: / excelribbon-Concatenating_Ranges_of_Cells [Concatenando rangos de celdas].