CONCATENAR MASIVO EN EXCEL
HTML-код
- Опубликовано: 27 окт 2024
- Function CONCATENAR_MASIVO(Rango As Range, delimitador As String)
Dim i As Integer, Resultado As String
Resultado = ""
For i = 1 To Rango.Count
Resultado = Resultado + Rango(i) & delimitador
Next
CONCATENAR_MASIVO = Trim(Left(Resultado, Len(Resultado) - 2)) 'quito el último delimitador
CONCATENAR_MASIVO = CONCATENAR_MASIVO & "."
End Function
Hola me podrías colaborar como puedo aplicar esta formula con números, ya intente cambiando el formato de la celda a texto pero no funciona.
Prueba esto:
- Cambia el formato de toda la columna B a General
- Reemplaza la fórmula de la celda B3 con esta otra =TEXTO(ESPACIOS(A3);"#.##0")
- Aplica este cambio a todas las celdas hacia abajo
Esto debería solucionar el problema de error y de paso formatear los números con separadores de miles; si necesitas decimales basta con que cambies el formato dentro de las dobles comillas a algo como esto #.##0,00
@@rangob4696 Me Has SALVADO el día con esto excelente contenido
@@rangob4696 existe otra forma en macros mod una linea y agregando algo
Function CONCATENAR_AJ(Rango As Range, delimitador As String)
Dim i As Integer, Resultado As String, var
Resultado = ""
For i = 1 To Rango.Count
var = CStr(Rango(i))
Resultado = Resultado + var & delimitador
Next
CONCATENAR_AJ = Trim(Left(Resultado, Len(Resultado) - 2)) 'quito el último delimitador
CONCATENAR_AJ = CONCATENAR_AJ & "."
End Function
@@rangob4696 GRACIAS AHORA SI ME FUNCIONO CON LOS NÚMEROS.
trate de mejorar el código, espero que sirva:
Function CONCATENAR_MASIVO(Rango As Range, delimitador As String)
Dim I As Long
Dim met As Boolean
Dim n As Long
Dim Resultado As String
n = Rango.Count
Resultado = ""
For I = 1 To n
If Rango(I) "" Then
Resultado = Resultado + VBA.CStr(Rango(I)) & delimitador
met = True
End If
Next
If met = False Then
CONCATENAR_MASIVO = ""
Else
CONCATENAR_MASIVO = Trim(Left(Resultado, Len(Resultado) - 2)) 'quito el último delimitador
End If
End Function
Muchas gracias que me sirvió
me sirvió para numeros, muchas gracias.
Ensalzando.
PERFECTO ESTA !!! LA GLORIA HERMANO!!!!
Muchas gracias!!!!
Felicitaciones por el excelente trabajo, me encantó la función, yo ahora tuerza mas el rizo, como hacerlo a la inversa, supongamos que hemos comprimido esa info por x motivos, pero ahora necesito que vuelva a estar como antes, palabras en columnas. Un saludo
Genio! Crack del excel! tiburon! Muy buena solucion! Saludos.
Muchas gracias!!!!
AMIGO, ERES UN CRACK. TENIA 2 DIAS BUSCANDO UNA FORMA. GRACIAS
Funcionó perfecto. Mil gracias.
AMIGO MUCHAS GRACIAS DE VERDAD ME SIRVIO MUCHO TU VIDEO, Y DE VERDAD GRACIAS,
ESTA FUNCION LA VERDAD TAMBIEN LA NECESITABA PARA NUMEROS Y SI A ALGUIEN LE SIRVE AQUI LES DEJO EL CODIGO PARA QUE LO AGREGUEN TAMBIEN
Function CONCATENAR_MASIVO_NUM(Rango As Range, delimitador As String) As String
Dim i As Integer
Dim Resultado As String
If Rango Is Nothing Then
CONCATENAR_MASIVO_NUM = "Error: Rango es nulo."
Exit Function
End If
If Rango.Count = 0 Then
CONCATENAR_MASIVO_NUM = "Error: El rango está vacío."
Exit Function
End If
Resultado = ""
For i = 1 To Rango.Count
If Not IsEmpty(Rango.Cells(i, 1).Value) Then
Resultado = Resultado & Rango.Cells(i, 1).Value & delimitador
End If
Next i
If Len(Resultado) > 0 Then
CONCATENAR_MASIVO_NUM = Trim(Left(Resultado, Len(Resultado) - Len(delimitador))) & "."
Else
CONCATENAR_MASIVO_NUM = "Error: Todos los valores en el rango son nulos o vacíos."
End If
End Function
Muchas gracias por tu valioso aporte.
Muy pro amigo, gracias!!!!
Exelente video! de mucha ayuda, felicitaciones por el contenido.
Inicialmente no tenía pensado concatenar números pero una solución rápida a ese caso sería cambiar el tipo de datos de todas las celdas, en este caso la columna A a formato de texto en vez de número!! espero les funcione!
No reconoce la Función. Da error en la instrucción Rango.Count. También da error si lo cambio por Range.Count. Por favor, puedes ver qué pasa? (habilitado para macros e insertado el código en ThisWorkbook)
Ya descubrí el error: en tu vídeo insertas la función en ThisWorkbook (o eso parece) y lo correcto es que vaya en Módulo1. De todas formas he visto otro error más leve: corta el último caracter de la cadena. Y es debido a esta instrucción: CONCATENAR_MASIVO = Trim(Left(Resultado, Len(Resultado) - 2)) que lo correcto es un 1 en vez de un 2.
@@muybuendia3878 Muchas gracias por tu ayuda!, y tienes razón, parece como si hubiese insertado en this workbook pero en realidad va en módulo y el motivo por el cual puse el -2 es porque utilicé una coma y un espacio como separador por lo que debía eliminar dos caracteres.
buenísimo, gracias ... me ayudará demasiado
excelente exactamente lo que necesitaba gracias
Hola!, me resulto la formula que enseñaste, te lo agradezco enormemente.
Muchas graciassssssss me acaba de ahorrar hojas de trabajo graciaaaaaaaaaaaaaasssssssssssssss
Dios te bendiga!!! me ayudaste muchisimo!!!
Excelente la explicacion y la funcion mejorada para que tome los números.
Excelente me sirvió un montón, ahorre mucho tiempo ordenando datos
no me quieres compartir tu archivo, no m e queda, no se si tenga k ver la version del office
Funciona correctamente, Gracias
muchisimas gracias
Me ayudo mucho muchísimas gracias!!!
Hola, intenté con números de telefónos con 400 celdas y menos, y me tira VALOR. Con palabras si me funcionó. Gracias
Muy buena explicación. Me ayudo mucho.
Genial, me ayudo bastante gracias.
Videázo, crack
EXCELENTE
Gracias!
Soy nuevo usando macros.... me funcionó bien, cerre y cambie el nombre al archivo y las hojas a las que corresponda, abri el documento y me manda el error #NAME?
Sabes como solucionarlo?
O tengo que hacer una nueva hoja?
Saludos y muchas gracias por la info, me ha servido mucho
habrá alguna manera de concatenar renglones cumpliendo los siguientes requisitos, uno que tengan datos y dos que cuando encuentre un renglón en blanco "reinicie" y comience a concatenar a partir del primer renglón que encuentre con datos en la parte de abajo. saludos.
Hola, al correr la formula me aparece "error de compilación" Se esperaba fin de la instrucción. Y al cerrar esa ventana me sombrea la palabra "Dim" del código. ¿Por favor me podrían apoyar? Muchas gracias.
Hola! La macro me genera un punto al final de la concatenación, sustituyendo mi último caracter o letra por dicho punto. Sabes a qué se debe??
Es por esta parte del código: [ CONCATENAR_MASIVO = CONCATENAR_MASIVO & "." ] puedes eliminar esta linea si no quieres que te agregue el punto al final
Hola, quiero realizar un listado unificado masivo, pero existen palabras que se repiten ¿qué debo hacer para que no aparezcan las palabras repetidas?, es decir, aparezcan una sola vez. Espero me haya explicado y me puedas ayudar por favor, excelente vídeo.
PARA FORMA HORIZONTAL NO ME SALE GENERA ERROR
ES LA MISMA FORMULA?
hola como vas, no me sale al oprimir alt +f11 alguna otra forma, ya que la oprimir alt me salen las famosas letras de del office.saludos
Asegurate de presionar primero la tecla ALT y sin soltar presionas el F11, si no te sirve trata de seguir esta otra forma exceltotal.com/mostrar-la-ficha-programador/
En que version de offcie lo realizaste, por que en la 2013, no se puede.
Te recomendaría que actualices tu office, vas a evitarte muchos inconvenientes futuros, saludos!
Hola, el computador no me permite la opción Alt + F11, tengo un Asus. No hay otra combinación o forma tradicional?
Intenta con la combinación FN+ALT+F11
Hola sirve para concatenar de forma vertical y horizontal?
Como podria añardirle la formula buscar v, porque quiero concatenar los textos que compartan un codigo en comun en otra hoja
Para excel en ingles funcionaria o que debo cambiarle
Es lo mismo para ingles, pero cualquier cosa avisa que para eso estamos
@@rangob4696 Muchas gracias funciono perfecto la macro, nuevamente agradezco gente tan pila publicando contenido de alta calidad. Gracias!
no me funciona el f 11 para abrir esa pestaña de q otra forma se puede abrir
Otra forma de abrir la ventana de VBA es dando clic derecho a cualquiera de las hojas de tu libro y elegir la opción de "Ver código"
me envia el error de que la formula contiene texto no reconocido probe con numeros y texto
La verdad no me llegó a salir ningún error así, te recomendaría volver a bajar el archivo pero en otra computadora y verificar que te salga el mismo error. Ahí me avisas y vemos otra solución.
@@rangob4696 probé en otro archivo que tenía ejercicios y la fórmula venía incluida y me aparece lo mismo voy a descargar office nuevamente porque es falso el que tengo quizá sea eso
Hola, nos podrías compartir el archivo? No me sale :(
Function CONCATENAR_MASIVO(Rango As Range, delimitador As String)
Dim I As Long
Dim met As Boolean
Dim n As Long
Dim Resultado As String
n = Rango.Count
Resultado = ""
For I = 1 To n
If Rango(I) "" Then
Resultado = Resultado + VBA.CStr(Rango(I)) & delimitador
met = True
End If
Next
If met = False Then
CONCATENAR_MASIVO = ""
Else
CONCATENAR_MASIVO = Trim(Left(Resultado, Len(Resultado) - 2)) 'quito el último delimitador
End If
End Function
Esta macros sirve para concatenar números??? 🤔
No me permite concatenar más de 100 filas
Eso suena raro porque inclusive con 400 filas sigue funcionando, deberías revisar bien si el rango que estás usando dentro de la fórmula es la correcta. Saludos.
Con más de 1500 no permite, tira error
@@lesterlopez4638 Esto se debe a que la celda de excel tiene un límite de caracteres permitidos, probé concatenando 5.500 celdas los cuales tenían solo 3 caracteres y la fórmula seguía funcionando.
Hola gracias me sale error 😢
No me sirvió en Mac
Una lástima, me he tomado el tiempo de probar y creería que el problema puede ser que tu excel esté en inglés, en ese caso puedes probar reemplazar el punto y coma por una coma simple quedando algo así =CONCATENAR_MASIVO(A1:A12,", "). Espero sea el caso!