ELEGIRFILAS con fechas de pago: ajustar el campo de fecha al repetir filas

Caso derivado de una duda previa sobre ELEGIRFILAS combinada con SECUENCIA para repetir una fila N veces. En esta ocasión Juan (@166236793098252) volvió al hilo con una vuelta de tuerca: quería que, al repetir la fila, el campo de fecha se ajustara a los distintos días en los que el pago se va a realizar, en lugar de repetir la misma fecha N veces.

La solución de partida (de un caso anterior en la comunidad) era:

``
=ELEGIRFILAS(D6:G6;SECUENCIA(10)^0)
`

Eso desbordaba la fila 10 veces en vertical. El problema: la columna de fecha se repetía idéntica, cuando lo que se necesitaba era una secuencia de fechas distintas dentro de la propia función.

John (@195554206347301) envió una solución que reemplaza el campo de fecha dentro de la propia matriz resultante, de forma que al hacer ELEGIRFILAS` cada fila recibe su fecha correspondiente sin tener que encadenar pasos posteriores.

El archivo adjunto incluye el planteamiento original de Juan y la fórmula final de John. Es un buen ejemplo de cómo, cuando una fórmula ya resuelta se aplica a un caso real, suele requerir un ajuste adicional para manejar campos que no son constantes (como fechas, importes o identificadores secuenciales).

Juan comentó después del primer envío que quería intentar meterlo todo dentro de la misma función, y John actualizó la propuesta para conseguirlo sin pasos intermedios.

Repetir una fila N veces está resuelto; que la fecha cambie, no

En la comunidad ya se había resuelto un caso muy concreto: repetir una fila varias veces en vertical usando ELEGIRFILAS con SECUENCIA. La fórmula de partida era esta:

=ELEGIRFILAS(D6:G6;SECUENCIA(10)^0)

El truco es bonito y conviene entenderlo antes de seguir. SECUENCIA(10) genera los números del 1 al 10 en vertical. Al elevarlos a cero con ^0, todos se convierten en 1. Lo que le llega a ELEGIRFILAS es entonces un vector de diez unos, o sea: dame diez veces la fila 1. Resultado, la fila D6:G6 desbordada diez veces hacia abajo.

Juan volvió al hilo con una vuelta de tuerca que es justo lo que pasa cuando una fórmula de manual aterriza en un caso real: la fila que repetía era un pago recurrente, y ahí uno de los campos es una fecha. Repetir la misma fecha diez veces no le servía de nada; necesitaba que cada repetición llevara el día en el que ese pago se va a realizar.

Por qué el caso deja de ser trivial

El problema tiene una forma muy reconocible: la mayor parte de la fila es constante y una sola columna no lo es. Y ELEGIRFILAS no tiene ningún argumento para eso. Su trabajo es seleccionar filas enteras de un rango; no sabe nada de sustituir un campo por el camino.

La salida evidente es encadenar pasos: primero desbordar la fila diez veces, después generar aparte la columna de fechas, y por último pegar las dos cosas. Funciona, pero deja la hoja llena de rangos auxiliares y de fórmulas que dependen unas de otras. Juan lo dijo con claridad: quería meterlo todo dentro de la misma función.

La solución de John: sustituir el campo dentro de la propia matriz

John propuso el enfoque que resuelve el caso sin pasos intermedios: en lugar de repetir la fila y arreglar la fecha después, se construye la matriz ya con la fecha correcta y se deja que ELEGIRFILAS haga su trabajo sobre ese resultado.

La idea general, que es lo que conviene llevarse de aquí, es esta: cuando una función matricial no admite el ajuste que necesitas, el ajuste se hace sobre los datos que le entran o sobre el resultado que sale, no dentro de la función. Una matriz en Excel se puede componer por columnas, así que puedes montar las columnas fijas por un lado, la columna variable por otro, y unirlas en la misma expresión.

Juan comentó tras el primer envío que quería intentar meterlo todo en una sola función, y John actualizó la propuesta para conseguirlo. El fichero adjunto del caso incluye el planteamiento original y la fórmula final, que es la mejor forma de verlo funcionando sobre datos de verdad.

Funciones clave

  • ELEGIRFILAS: devuelve las filas que le indiques de un rango. Si le pasas un vector de índices repetidos, repite esas filas tantas veces como aparezcan.
  • SECUENCIA: genera una lista de números. Es el motor que decide cuántas repeticiones hay, y elevada a cero se convierte en un vector de unos.
  • APILARH: une matrices por columnas. Es la herramienta natural cuando parte de la fila es fija y parte tiene que variar.
  • FIN.MES y las funciones de fecha: cuando lo que varía es un vencimiento mensual, la columna de fechas se genera con ellas a partir de la fecha inicial y de la misma SECUENCIA que marca las repeticiones.

La lección de fondo

Este caso es pequeño y por eso enseña bien: una fórmula resuelta rara vez sobrevive intacta al primer contacto con un caso real. La versión de manual repite la fila; la versión útil repite la fila y ajusta el campo que no es constante, que casi siempre es una fecha, un importe o un identificador correlativo.

Y hay un segundo aprendizaje, más de método: la duda no nació de cero, nació de un caso anterior de la propia comunidad. Alguien pregunta, se resuelve, otro se lo lleva a su trabajo y vuelve con el matiz que faltaba. Así es como se construyen los casos de Influexcel, uno encima del anterior.

Más casos con estas funciones

Más contenido de Excel en InflueXcel