Cómo concatenar varias celdas
Vložit
- čas přidán 5. 09. 2024
- En este vídeo se explica cómo concatenar varias celdas de una vez, tanto con la funcion UNIRCADENAS (disponible en las versiones más recientes de Excel) como con una formulación secuencial y con una función definida por el usuario (disponible en todas las versiones).
Más información (contenidos relacionados):
... sobre ¡Deja de usar celdas combinadas en Excel!.- • ¡Deja de usar celdas c...
... sobre Cómo hacer macros sin saber hacer macros: grabación de macros básicas en Excel.- • Cómo hacer macros sin ...
... sobre Cómo mostrar la cinta Programador o Desarrollador.- • Cómo mostrar la cinta ...
Apoya a Excel Avanzado para Administración de Empresas:
Donaciones: www.paypal.me/...
Suscripción (gratuita): / @eaae
Tienda: teespring.com/...
Membresía (unión al canal): / @eaae
Consultas comerciales: Consultas.EAAE@gmail.com
Síguenos en RRSS:
- en Facebook: / excel-avanzado-para-ad...
- en Twitter: / excelrpv
Gracias Rafael, como siempre a pesar de llevar muchos años trabajando con Excel siempre aprendo algo con tus videos.
Muchas gracias por su comentario. Me alegro de que el contenido de nuestros vídeos le siga resultando novedoso.
Increible maestro me quito el cráneo.
Sin palabras
Muchas gracias, Antonio.
Gracias amigo Rafa por compartirlo saludos 🇲🇽👌
Muchas gracias a usted por seguirnos con tanta fidelidad.
Muchas gracias
Gracias a usted por seguirnos.
He utilizado mucho macros pero nunca investigué sobre funciones personalizadas por lo que este fue mi primer contacto. Muy educativo video. Le agradezco mucho maestro.
Muchas gracias, Hugo. Me alegro de que le haya gustado.
Muy interesante Rafael... Muchas gracias de nuevo por sus (tus) aportaciones tan exquisitamente planteadas y tan ricas dialécticamente. Enhorabuena por tu brillante canal...
Muchas gracias, Fernando. Me alegro de que este vídeo le haya parecido interesante y de que nos siga con tanta fidelidad.
Muy instructivo 👌🏽
Muchas gracias. Me alegro de que le haya gustado.
Como siempre: muy instructivo, útil y perfectamente explicado.
Muchas gracias. Me alegro de que le haya gustado.
Excelente como siempre. El equipo base de España en el mundial 1982 💯👍
Muchas gracias, Ramiro.
Muchas gracias, muy útil la función y la que hizo como definida por el usuario. muchas gracias
Muchas gracias. Me alegro de que le haya gustado.
Estupendo video y muy bien explicado, como siempre. Me temo que este puede ser el preludio de otro que está por llegar. Cual será? Muchas gracias por la información. Cuídese.
Muchas gracias, Jesús. Admito sugerencias para próximos contenidos... ;-)
Muy bueno!!
Muchas gracias, Carlos.
Magistral como es la costumbre
Muchas gracias, Carlos.
Para guardar con macros yo utilizo .xlsb que aparte de ser compatible con macros ocupa menos espacio. Igual es buen tema para hacer algún video sobre este tipo de archivos (yo lo uso pero no soy un experto ni mucho menos en sus diferencias). Un saludo y muchas gracias.
🙂...Interesante, gracias por compartir...👍
Muchas gracias a usted por seguirnos con tanta fidelidad.
@@eaae ... Gracias a DIOS en todo caso.
@@Fredick.7 Eso, por supuesto.
Es preferible utilizar VBA.Mid en lugar de VBA.Right porque no hay que utilizar VBA.Len en su formulación: VBA.Mid(cadena, posición), en nuestro caso >
Una subrutina se puede abordar de muchas formas, lo recomendable es que sea funcional, legible y eficiente; Pero, si a lo anterior le simplificas el código, mejor. Te recomiendo no uses la instrucción VBA, no es necesario. Ejemplo:
cadena = Mid(cadena, Len(separador)+1)
A mí me gusta llamar a la variable que representa al rango de una celda simplemente como "celda" As Range. Creo que menos es mas, siempre que la claridad no se vea comprometida.
El nombre de una variable debe ser simplificada, pero sobre todo descriptible.
Otra cosa, he visto ya varias veces utilizar el añadido tras Next (p.e. Next rangoCelda en lugar de sólo Next), pero yo no lo utilizo porque me parece una redundancia. Le ves alguna ventaja?
Al menos, facilita la interpretación del código, al vincular visualmente el comienzo y el fin del bucle.
Lógico, si tienes 2 ciclos es indiferente usarlo, pero cuando trabajas con matrices multidimensionales donde se tenga que anidar más de dos ciclos For-Net (o sus variantes) se recomienda especificar donde terminan los ciclos. A mi me tocado anidar hasta 4 ciclos FOR, créeme, cuando te toca leer el código ayuda mucho.
Como omitir las celdas en blanco?
Con funciones de sustitución de texto como argumento de funciones condicionales no le será difícil conseguirlo.
Tengo una duda.
Cuando insertar un módulo?
No da igual escribir el código en una de las hojas?
En este caso podría escribir el código en una hoja, pero normalmente el uso de un módulo da una solución más cómoda si luego se quiere usar en hojas distintas.
@@eaae Uhhh. Ya lo veo.
Muchas gracias
No. Una UDF que se pretenda llamar desde una hoja de cálculo debe estrictamente codificarse en un módulo estándar. En ningún otro lado más, porque no funcionará. Saludos desde Ecuador.
Yo suelo usar FDU cuando no encuentro una función estándar, pero el inconveniente es que el tiempo de ejecución suele incrementarse considerablemente, sobre todo si la utilizar mucho y con recursividad. Hay alguna forma de implementar FDU de forma compilada? Gracias. Saludos.
Definitivamente sí, implementando las funciones nativas de hojas de cálculo con el método Evaluate y el objeto Application. Además de aplicar las técnicas de codificación para desplazar datos en bloques. Y aplicar con rigurosidad estructuras matriciales (Arreglos). Pero, como se aplica todo esto, es otra historia. Lastimosamente hay escasa información sobre el tema de UDF en español.
Una pregunta: por qué la función no requiere la declaración del tipo de salida? (Function ConcatenarVarias (separador, rango) As String) ?
Cuando no se especifica el tipo a la función, por defecto es de tipo Variant (Variante). Las funciones tipo Variant pueden asumir múltiples tipos de datos, en este caso reemplaza al tipo string (cadena). Normalmente se recomienda usar el tipo que le corresponde, dado que el tipo Variant consume más recurso. Aunque te comento que en UDF estrictamente matriciales es obligatorio asignarle el tipo Variant, lógicamente este no es el caso, dado que respuesta se concentra en una celda.
Por favor, podrías explicar por qué motivo el separador no lo declaras como String sino como Variant? Gracias.
No habría inconveniente en declararlo como cadena, porque normalmente será un texto.
Cuando no se especifica el tipo a una variable, por defecto será de tipo Variant (Variante). Las variables de tipo Variant pueden asumir múltiples tipos de datos, en este caso reemplaza al tipo string (cadena). Normalmente se recomienda usar el tipo que le corresponde, dado que el tipo Variant consume más recurso.
Buenas de nuevo. Tengo una duda que posiblemente Ud. me pueda resolver. Hay alguna forma de concatenar letras las cuales dependan de un número. Por ejemplo: quiero hacer un generador de claves automático. La clave la puedo generar poniendo caracter(aleatorio.entre(B1;C1) (33 y 122). Pero me gustaría hacer una clave de 5, 10 o 32 dígitos con tan solo poner un número. También existe la pega, que resolvió Ud. en otro video, que cada vez que se aplica ENTER se recalcularía. Muchas gracias por su tiempo y conocimientos. Intentaré equivocarme a ver si doy con algo.
La solución depende de cómo haya generado las posiciones de cada carácter de la clave (si en una cadena de texto, o en distintas celdas). Comparta un ejemplo de su hoja de cálculo para que podamos ofrecerle alguna ayuda más específica.
Hice un listado aparte pero agradezco mejoras. No se como pasarle el archivo o una foto del mismo. Muchas gracias por su tiempo.
@@jesusgalego1997 Puede subirlo a algún depósito online y compartir un enlace, o enviarlo a consultas.eaae@gmail.com.
He estado investigando y, tras quebrarme mucho la cabeza me salió esta fórmula: UNIRCADENAS("";VERDADERO;CARACTER(ALEATORIO.ENTRE($C$2;$D$2+(FILA(INDIRECTO("1:"&$E$2))-1)*0))) . Mil gracias por su interés.