Saltar al contenido

Extraer y copiar, de un rango en horizontal, la última celda que contenga texto.


pitiki6

Recommended Posts

publicado

Buenas noches:

He estado mirando por el foro a ver si había un caso parecido al mío y no lo he encontrado, así que me he decidido a escribir por aquí por si alguien me pudiera echar una manita en algo que me trae de cabeza:

En el fichero de prueba que adjunto, tengo dos hojas (INDICADORES e INICIO). Cuando señalo un código ya establecido en la hoja INDICADORES, automáticamente se me pasa la información de la columna B (que coincide con el código escrito en alguna de las celdas de las columnas D, E, F ó G) a celdas concretas de la hoja INICIO. Pues bien, como es una función de SI.ERROR conjuntamente con ÍNDICE y COINCIDIR en la columna J, cuando en la hoja inicio SEÑALO UNA SOLA VEZ el código que necesito en el mismo rango horizontal de fila ("1ob" ó "2ob" ó "3ob"...) la fórmula empleada de SI.ERROR empleada en la columna J  de la hoja INICIO funciona perfecta. El problema viene cuando tengo que señalar más de una vez el mismo código dentro del mismo rango de fila horizontal. Ahí, la fórmula hace que el contenido de la columna B de la hoja INDICADORES se repita tantas veces como código "1ob" ó "2ob"... tenga señalado.

RESUMIENDO:

Primero señalé en la columna F de la hoja INICIO, la siguiente función:

=SI.ERROR(INDICE(INDICADORES!$B$5:$B$1286;COINCIDIR("1ob";INDICADORES!D$5:D$1286;0);1);"")&SI.ERROR(INDICE(INDICADORES!$B$5:$B$1286;COINCIDIR("1ob";INDICADORES!E$5:E$1286;0);1);"")&SI.ERROR(INDICE(INDICADORES!$B$5:$B$1286;COINCIDIR("1ob";INDICADORES!F$5:F$1286;0);1);"")&SI.ERROR(INDICE(INDICADORES!$B$5:$B$1286;COINCIDIR("1ob";INDICADORES!G$5:G$1286;0);1); "")   ------> Éste es el ejemplo de la celda F3. A medida que vamos descendiendo hasta la celda F22, lo único que cambia de la fórmula es el código a señalar "2ob", "3ob"...hasta "20ob"

Pensé en reescribir la fórmula para que, de alguna manera, se pudiera detener lo que quedaba de función si ya se había cumplido la misma en alguna de las cuatro condiciones que se señalan (cada condición está separada por "&"). Pero no tengo ni idea de como hacerlo y he probado de todo.

Luego, pensé que, para hacer más fácil la identificación de la condición cumplida había que segmentar la fórmula en 4 partes, una para cada columna y así poder seleccionar y copiar una sola vez la información en una quinta columna. Así que la fórmula (por ejemplo para el rango F3:I3) quedó así (es la misma que la anterior pero dividida en cuatro partes):

EN F3 ------> =SI.ERROR(INDICE(INDICADORES!$B$5:$B$1286;COINCIDIR("1ob";INDICADORES!D$5:D$1286;0);1);"")

EN G3 ------> =SI.ERROR(INDICE(INDICADORES!$B$5:$B$1286;COINCIDIR("1ob";INDICADORES!E$5:E$1286;0);1);"")

EN H3 ------> =SI.ERROR(INDICE(INDICADORES!$B$5:$B$1286;COINCIDIR("1ob";INDICADORES!F$5:F$1286;0);1);"")

EN I3 ------>   =SI.ERROR(INDICE(INDICADORES!$B$5:$B$1286;COINCIDIR("1ob";INDICADORES!G$5:G$1286;0);1);"")

Entonces, el objetivo es que en la columna J se copie el contenido UNA SOLA VEZ de la primera o de la última celda con texto del rango F3:I3. El usar el filtro avanzado no me es práctico porque lo que pretendo es que esto suceda de manera automática y sin desplazamiento u ocultación de columnas ni nada de eso. Si llegara a conseguir esto, lo que había pensado hacer era ocultar el rango de la columna F a la columna I y dejar visible sólo la columna J.

Todo esto lo estoy intentando llevar a cabo mediante fórmula y no mediante macro (porque ahí sí que ando muuuuy perdido). Yo necesitaría hacerlo mediante fórmula. Para que se vea más claro lo que expongo (que ha sido largo), les adjunto un fichero para que lo miren a ver si me pueden dar una solución.

He intentado expresarlo de la manera más fácil y más rápida posible para que se pudiera comprender bien. Lo siento si me he excedido o no he sabido expresarlo de otro modo. Saludos.

PRUEBA.xlsx

  • Silvia bloqueó este tema

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.