¿Cómo obtener el valor asociado al último día de un rango de fechas de una columna?

Supongamos que tengo la siguiente tabla:

|  col. A | col. B |
|---------|--------|
| 01/3/23 |   79   |
| 02/3/23 |    4   |
| 02/3/23 |   23   |
| 22/3/23 |   85   |
| 02/4/23 |   42   |
| 23/4/23 |   19   |
| 22/5/23 |   34   |
| 22/5/23 |   13   |
| 27/5/23 |   84   |
| 30/5/23 |   22   |

Tengo fechas en la columna A, donde algunas de ellas se repiten; y valores asociados en la columna B.

Quiero obtener ciertos valores de B para cada mes. Concretamente, los valores que correspondan al último día de cada mes representado en la columna A.

He probado a combinar varias fórmulas, y lo más cerca que he estado de obtener el resultado ha sido con =SI(A1<>"";BUSCARV(A1;A:B;2;0);""), pero poco más.


EDITO para documentar mejor todo esto:
Para tener en cuenta también el año:

=SI.ERROR(BUSCAR(2;1/((MES($A$1:$A$99)=D2)*(AÑO($A$1:$A$99)=2023)*($A$1:$A$99>0));$B:$B);"")

Nota: hay tener en cuenta que en la columna E van los números correspondientes a los meses, desde D2 (1) hasta D13 (12).

Esta fórmula busca en la columna A (desde A1 hasta A99) el último valor del mes (($A$1:$A$99>0) evita que sea una celda vacía), de forma que sea uno por mes ((MES($A$1:$A$99)=D2)), y en el año 2023 (AÑO($A$1:$A$99)=2023).

Segue sugestão…
Sigue la sugerencia…

Moshpirit.ods (14.8 KB)

2 Likes

¡Hola! Muchas gracias por contestar. Sin embargo, me ha surgido un problema, que no consigo resolver; lo estaba aplicando a una hoja distinta (la he llamado “OtraHoja”), y los valores de diciembre no me los reconoce, no sé por qué.
Moshpirit.ods (41.7 KB)

Edito: el ODS estaba sin actualizar a la última versión.

Edito 2: Acabo de encontrar el fallo: los espacios en blanco los detecta como si fueran fechas en diciembre, lo que complica el algoritmo bastante (porque debería dejar de contar en la última celda no vacía).

Ola @Moshpirit , seu arquivo postado esta com algum problema, não abre, trava a tela em branco.

Hola @Moshpirit, su archivo publicado tiene un problema, no se abre, se bloquea en una pantalla en blanco.

Obrigado, vou tentar com outro mais atualizado (tentei incluir o ano como mais um fator):
Moshpirit.ods (49.1 KB)

Modifica un poco la fórmula proporcionada por Schiavinatto, para que no tenga en cuenta las celdas vacías que devuelven el mes 12.
=SI.ERROR(BUSCAR(2;1/((MES($A$1:$A$99)=D2)*($A$1:$A$99>0));$B:$B);"")

2 Likes

¡¡MAGNÍFICO!! Esta es la fórmula definitiva que buscaba:
=SI.ERROR(BUSCAR(2;1/((MES($A$1:$A$99)=D2)*(AÑO($A$1:$A$99)=2023)*($A$1:$A$99>0));$B:$B);"")
¡muchas gracias a todos! @LeroyG, @schiavinatto y @mariosv :tada:

2 Likes

Tomo la idea de Return the last value in a column - #2 by erAck

último valor.ods (10.7 KB)

Tú escribes de “los valores”, pero esta fórmula solamente te dará el valor de la última línea.
=BUSCARV(2;1/ESNUMERO($A$1:$B$10);$B$1:$B$10)

1 Like

¡Hola! Gracias por contestar. Mira, con esa fórmula, no sé por qué pero me da “Err:502” en mi hoja de cálculo (
TEST.ods (20.5 KB)), por algún motivo, aunque sí me funciona muy bien en el que has adjuntado tú.

Por otro lado, lo que quiero es parecido a esto, pero no exactamente eso. Lo que quiero es que para cada mes me dé el mayor resultado de B, quizás debí explicarme mejor antes.

La idea es obtener el último número en B para cada mes, algo así:

|  col. A | col. B | col. C | Col. D |
|---------|--------|--------|--------|
| 01/3/23 |   79   |  Enero |    0   |
| 02/3/23 |    4   | Febrero|    0   |
| 02/3/23 |   23   |  Marzo |   85   |
| 22/3/23 |   85   |  Abril |   19   |
| 02/4/23 |   42   |  Mayo  |   22   |
| 23/4/23 |   19   |  Junio |    0   |
| 22/5/23 |   34   |   ...  |   ...
| 22/5/23 |   13   |
| 27/5/23 |   84   |
| 30/5/23 |   22   |

El último número de marzo es el 85, pues corresponde al 22/3; igualmente con el 19 en abril (23/4) y en mayo con el 22 (día 30).

Err:502: Argumento inválido. Pues 1÷0 da error.
Voy mirando tu planilla para encontrar una alternativa de fórmula.