concatenar un "rango"

30/09/2004 - 11:01 por jal00 | Informe spam
Necesito concatenar el contenido de muchas celdas (más de
200. Lo tengo solucionado encadenando varios concatenates,
pero el problema es que las celdas en ocasiones tengo que
borrarlas, añadir nuevas, etc. y actualizar la fórmula
conlleva mucho tiempo. La solucción para mí sería que
existiera la posibilidad de encadenar rangos. Algo del
tipo:
=concatenate(B7:B230)

¿hay alguna forma de hacer esto de forma sencilla?

Muchas gracias
 

Leer las respuestas

#1 Fernando Arroyo
30/09/2004 - 11:55 | Informe spam
Lo puedes hacer usando la siguiente fórmula, escrita por Harlan Grove:

Function mcat(ParamArray s()) As String
'Copyright (C) 2002, Harlan Grove
'This is free software. It's use in derivative works is covered
'under the terms of the Free Software Foundation's GPL. See
'http://www.gnu.org/copyleft/gpl.html
'
'string concatenation analog to SUM

Dim r As Range, x As Variant, y As Variant

For Each x In s

If TypeOf x Is Range Then
For Each r In x.Cells
mcat = mcat & r.Value
Next r

ElseIf IsArray(x) Then
For Each y In x
mcat = mcat & IIf(IsArray(y), mcat(y), y)
Next y

Else
mcat = mcat & x

End If

Next x

End Function


La sintaxis es:

=mcat(rango 1[;rango 2]...[;rango n])

Un saludo.


Fernando Arroyo
MS MVP - Excel



"jal00" escribió en el mensaje news:147301c4a6cc$1992d950$
Necesito concatenar el contenido de muchas celdas (más de
200. Lo tengo solucionado encadenando varios concatenates,
pero el problema es que las celdas en ocasiones tengo que
borrarlas, añadir nuevas, etc. y actualizar la fórmula
conlleva mucho tiempo. La solucción para mí sería que
existiera la posibilidad de encadenar rangos. Algo del
tipo:
=concatenate(B7:B230)

¿hay alguna forma de hacer esto de forma sencilla?

Muchas gracias

Preguntas similares