Saltar al contenido

Dividir textos de un rango


Sergio

Recommended Posts

publicado

Hola!

A ver si me podéis echar una mano.

Estoy tratando de crear una función con lambda que sea capaz de dividir el texto de una celda en varias columnas. La celda cuenta con delimitadores para separar las columnas de división.

Imprescindible: usar función DIVIDIRTEXTO.

Para que no me echéis la bronca ☺️adjunto un archivo de muestra.

Gracias!

 

 

DIVIDIR TEXTO RANGO.xlsx

publicado

Gracias por tu ayuda Gerson.

El objetivo es el de conseguir hacerlo con una sola fórmula, por eso quería recurrir a DIVIDIRTEXTO.

Tu solución funciona perfectamente.

Un saludo

publicado
Hace 11 horas, Sergio dijo:

Estoy tratando de crear una función con lambda que sea capaz de dividir el texto de una celda en varias columnas

si entiendo bien, lo que buscas...

- NO ES dividir el texto de una celda, que ya hace DIVIDIRTEXTO(... por lo que agregar LAMBDA es redundante

- SINO obtener una matriz (indeterminado numero de columnas) separando el texto de cada celda de un rango

Hace 11 horas, Sergio dijo:

Imprescindible: usar función DIVIDIRTEXTO

partiendo de que DIVIDIRTEXTO solo funciona para una cadena (NO para un rango o matriz de cadenas de texto) y todo en una sola fórmula... (va tu adjunto en devolución)

lambda split (sergio aE).xlsx

publicado

Gracias @Gerson Castro @Héctor Miguel por vuestras respuestas. Lo que he conseguido con DIVIDIRTEXTO es extraer la primera letra de cada celda pero no el resto. Supuse que la función, al trabajar con matrices, me devolvería el resto del resultado que deseo.

publicado
Hace 19 minutos , Sergio dijo:

Supuse que la función, al trabajar con matrices, me devolvería el resto del resultado que deseo

(según yo...) la versión 2 hace lo que necesitas...

Hace 3 horas, Héctor Miguel dijo:

y buscando, buscando (salen alternativas)... va la versión 2

parece que la pasaste por alto ? ?

publicado
Hace 2 horas, Héctor Miguel dijo:

parece que la pasaste por alto ? ?

Sí la vi, Héctor.

A lo que me refería era que suponía que la siguiente fórmula mostraría el resultado que deseaba:

=LAMBDA(texto;sep;DIVIDIRTEXTO(texto;sep))(B2:B6;",")

He comprobado que solo devuelve la primera letra de cada celda.

publicado
Hace 10 horas, Sergio dijo:

suponía que la siguiente fórmula mostraría el resultado que deseaba

 

En 12/6/2022 at 15:43 , Héctor Miguel dijo:

dividir el texto de una celda, que ya hace DIVIDIRTEXTO(... por lo que agregar LAMBDA es redundante

 

En 12/6/2022 at 15:43 , Héctor Miguel dijo:

partiendo de que DIVIDIRTEXTO solo funciona para una cadena (NO para un rango o matriz de cadenas de texto) y todo en una sola fórmula...

lo que SI hace didvidirtexto es devolver una matriz dinamica de filas y columnas si le dices como identificar que caracter separa cada elemento, por lo que aplique UNIRCADENAS con un separador diferente entre saltos de fila (si lambda o no, sigue siendo redundante) ?

publicado

¡Saludos a todos!

Solo para aportar que no necesitamos de una función "extra" para el tema de los "errores de división".  Aplicando el "padding" a la función DIVIDIRTEXTO obtenemos el mismo resultado.  Quedamos entonces, así:

=DIVIDIRTEXTO(UNIRCADENAS("|";;B2:B6);",";"|";;;"")

¡Bendiciones a todos!

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

  • 109 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      187
    • Comentarios
      97
    • Revisiones
      28

    Más información sobre "Un juego del Rabino en Excel"
    Última descarga
    Por pegones1

    1    1

  • Crear macros Excel

  • Mensajes

    • Hola La opción brindada por @torquemada es correcta, funciona, pero hay algunos inconvenientes que (desde mi punto de vista) no la convierten en mi primera elección. Los inconvenientes son: Tendrías que ir columna por columna haciendo los reemplazos, claro que no se harían a mano sino que utilizarías la opción reemplazar o la opción texto en columnas, aun asi demorará un poquito y será trabajoso. Cada vez que descargues otro listado, tendrás que volver a realizar los reemplazos. Me parece una mejor propuesta lo siguiente: Descarga los movimientos a un archivo de Excel Desde tu control de pagos (otro archivo) cargas los movimientos del archivo descargado mediante Power Query Power Query hará los reemplazos y reconocerá todo correctamente (sin que tengas que hacer nada especial) Cuando descargues los movimientos un día posterior, solamente tendrás que hacer clic en "Actualizar" y todo funcionará en automático
    • Hola a todos, Efectivamente, me temo que tal como trabajan las funciones =HOY() y/o =AHORA() (volátiles), sólo con macros puedes obtener soluciones. Un recurso pedestre podría ser, cada vez que quieras que se fije un dato, te sitúes en esa celda y pulses F2, F9 e INTRO.  Pero claro, puede ser un inconveniente si hay que hacerlo repetitivamente en muchas ocasiones,.............. en fin, lo comento sólo como posibilidad. Saludos,
    • Hola nuevamente, mi duda sigue siendo la ruta, o rutas, finales que quedan, esas que llamas "relativas"; igual por si acaso pon 3 o 4 de esas, tal cual son y/o se ven en el explorador de cada PC y, de ser posible, en cualquier otro "lado" en que las veas.
    • Hola, tal cual se plantea, solamente con macros (VBA); en todo caso, hacerlo a mano o con "CTRL + ;". Saludos.
    • Mil gracias, en verdad todo apoyo es super agradecido,   Su aporte y comentarios valen mucho para in servidor, y tiene razon esperare a conocer si alguien comparte alguna otra manera,   Gracias!!! (y)
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.