Función Excel 2007, últimos tres elementos

3

Mi pregunta es doble, así que tengan paciencia con el muro de texto. Estoy haciendo una especie de hoja de cálculo bancaria. Ingresaré los ingresos / gastos en cuatro columnas (Fecha / Cantidad / Tipo / Descripción) y lo necesito para llevar un registro de mis gastos diarios. Ya lo tengo para que si la fecha no es hoy, no lo sume / reste hasta que lo sea. Además, lo tengo dos / tres / cuatro semanas en el futuro. Sin embargo, quiero agregar algo al efecto de "Últimos tres cheques de pago". La columna "Tipo" tiene solo tres entradas posibles, "Ingresos", "Transferencia" y "Gastos". Si puedo encontrar una función que funcione para uno, estoy seguro de que puedo hacer que funcione con el resto fácilmente. Lo necesito para mostrar la cantidad de "ingresos" más reciente. Por ejemplo:

Fecha Cantidad Tipo

Sep 1 100 Ingresos

Sep 2 100 Gastos

Sep 3 100 Ingresos

Sep 4 100 Gastos

5 sep 100 Ingresos

6 de septiembre 100 Ingresos

Sep 7 100 Ingresos

Digamos que hoy es 6 de septiembre. Me gustaría que muestre la cantidad del 5 de septiembre, el 5 de septiembre y el 3 de septiembre. No quiero que muestre gastos, y aún no es el 7 de septiembre. Tendría que ser tres funciones (una para cada cuadro), entonces, ¿cómo podría hacer que haga la más reciente, la segunda a la más reciente, y así sucesivamente? Si puedo hacer que funcione, también puedo editar para obtener la descripción y ajustarlo a gastos si es necesario.

Pregunta 2:

Me gustaría un tipo de "chequeo anual". ¿Cómo podría hacer que busque cada uno de cada tipo (igual que el anterior), pero luego tener fechas límite para que sea solo un año?

Duall
fuente
¿Quieres filtrar la tabla de datos también? ¿O solo necesita el subtotal de las entradas más recientes?
Ellesa
Ni siquiera el subtotal, quiero que muestre la última entrada de ingresos en una celda, la siguiente más reciente en otra y la próxima más reciente en otra.
Duall

Respuestas:

2

Esto podría ayudarlo a obtener las tres transacciones más recientes por tipo. Ayuda si ha utilizado rangos con nombre para su hoja de datos.

Para obtener las 3 fechas de ingresos más recientes, puede usar esta fórmula de matriz:

=INDEX(dates,LARGE(ROW(dates)*(dates<=TODAY())*(types="Income"),XXX)-1,1)

Dónde:

fechas - el rango de celda / rango de columna que contiene los
tipos de fechas - el rango de celda / columna que contiene "Ingresos", "Transferencia" o "Gastos"
XXX - contiene 1 (más reciente), 2 (2º más reciente) o 3.

Para obtener la cantidad y la descripción más recientes, reemplace la primera instancia de datesla fórmula anterior con el rango de celdas que contiene las cantidades y las descripciones de dinero.

=INDEX(amounts,LARGE(ROW(dates)*(dates<=TODAY())*(types="Income"),XXX)-1,1)

Y

=INDEX(descriptions,LARGE(ROW(dates)*(dates<=TODAY())*(types="Income"),XXX)-1,1)

En el siguiente ejemplo, las fechas se refieren a A2:A100, las cantidades se refieren B2:B100, los tipos se refieren C2:C100y las descripciones se refieren D2:D100.

ingrese la descripción de la imagen aquí

Para que las fórmulas funcionen, la tabla de datos debe ordenarse según la fecha (de la más antigua a la más reciente). Asegúrese de confirmar las fórmulas con Ctrl+ Shift+ Enter. Esto también supone que hay fechas únicas para cada tipo de transacción (es decir, no hay entradas de Ingresos múltiples para una sola fecha).


Si no desea tener que ordenar la tabla por fecha, aquí hay una fórmula de matriz que puede probar:

=INDEX(dates,
 MATCH(SMALL(IF((dates<=TODAY())*(types="Income"),(TODAY()-dates),""),XXX),
             IF((dates<=TODAY())*(types="Income"),(TODAY()-dates),""),0),1)

Dónde:

fechas - el rango de celda / rango de columna que contiene los
tipos de fechas - el rango de celda / columna que contiene "Ingresos", "Transferencia" o "Gastos"
XXX - contiene 1 (más reciente), 2 (2º más reciente) o 3

Nuevamente, para obtener las cantidades y descripciones más recientes, reemplace la primera instancia de datesen la fórmula anterior con el rango de celdas que contiene las cantidades y descripciones de dinero. Algo como esto:

=INDEX(amounts,
 MATCH(SMALL(IF((dates<=TODAY())*(types="Income"),(TODAY()-dates),""),XXX),
             IF((dates<=TODAY())*(types="Income"),(TODAY()-dates),""),0),1)

y

=INDEX(descriptions,
 MATCH(SMALL(IF((dates<=TODAY())*(types="Income"),(TODAY()-dates),""),XXX),
             IF((dates<=TODAY())*(types="Income"),(TODAY()-dates),""),0),1)
Ellesa
fuente
¡Respuesta extremadamente bien escrita y bien explicada! Sin embargo, otra pareja para ti. ¿Hay alguna razón por la que requiere hacer las teclas ctrl / shift / enter en comparación con cualquier otra fórmula? Además, ¿hay alguna manera de hacer A: A sin incluir el título?
Duall
Gracias Duall! Sí, puede reemplazar los nombres con referencias de celda exactas; en mi ejemplo anterior, "fechas" en realidad se refiere a "A2: A100". El rango con nombre hace que sea más fácil escribir las fórmulas en Excel.
Ellesa
1
Oh, las fórmulas de matriz deben ser Ctrl + Shift + Ingresadas para que funcionen. Esta página lo explica mejor que yo: cpearson.com/excel/ArrayFormulas.aspx
Ellesa
He encontrado un problema con esto. Si tengo tres gastos el mismo día, tomará el primer gasto de ese día y lo repetirá tres veces. Aparte de eso, funciona de maravilla.
Duall
Sí, mencioné eso en la respuesta: lo basé en su ejemplo y asumí que las fechas eran únicas. Actualizaré mi respuesta tan pronto como salga del trabajo. :)
Ellesa