Evolución ingresos vs gastos Ver detalle →
Ingresos
Gastos
Ahorro
Distribución por rubro
Total
Gastos por rubro
Presupuesto vs real
Categoría Presupuesto Real Avance
Salud financiera
Tendencia de ahorro
Fórmulas QUERY — copiar y pegar en Google Sheets
QUERY_RUBROS_MES
Tabla de gastos por categoría del mes actual, ordenada de mayor a menor
=QUERY(Gastos!A:J, "SELECT C, SUM(E) WHERE MONTH(A)+1 = "&MONTH(TODAY())& " AND YEAR(A) = "&YEAR(TODAY())& " GROUP BY C ORDER BY SUM(E) DESC LABEL C 'Categoría', SUM(E) 'Total gastado'",1)
QUERY_RUBROS_CON_SUBCATEGORIA
Desglose por categoría L1 Y subcategoría, con porcentaje del total
=QUERY(Gastos!A:J, "SELECT C, D, SUM(E), COUNT(E) WHERE MONTH(A)+1 = "&MONTH(TODAY())& " AND YEAR(A) = "&YEAR(TODAY())& " GROUP BY C, D ORDER BY C ASC, SUM(E) DESC LABEL C 'Categoría', D 'Subcategoría', SUM(E) 'Total', COUNT(E) '# Transacciones'",1)
SUMPRODUCT_CATEGORIA_MES
Total de UNA categoría específica en el mes actual (usa en Dashboard)
=SUMPRODUCT( (MONTH(Gastos!A2:A5000)=MONTH(TODAY()))* (YEAR(Gastos!A2:A5000)=YEAR(TODAY()))* (Gastos!C2:C5000="Mercado")* Gastos!E2:E5000) --- Cambia "Mercado" por cualquier categoría ---
QUERY_MES_SELECCIONADO
Filtra por mes y año seleccionados en celdas — ideal para dashboard interactivo
'--- En CONFIG!A1 pon el mes (1-12), en CONFIG!A2 el año --- =QUERY(Gastos!A:J, "SELECT C, SUM(E) WHERE MONTH(A)+1 = "&CONFIG!A1& " AND YEAR(A) = "&CONFIG!A2& " AND E IS NOT NULL GROUP BY C ORDER BY SUM(E) DESC LABEL C 'Categoría', SUM(E) 'Total'",1)
QUERY_RANGO_FECHAS
Filtra entre dos fechas específicas (ej. quincena, trimestre)
'--- CONFIG!B1 = fecha inicio, CONFIG!B2 = fecha fin --- =QUERY(Gastos!A:J, "SELECT C, D, SUM(E) WHERE A >= date '"&TEXT(CONFIG!B1,"yyyy-mm-dd")&"' AND A <= date '"&TEXT(CONFIG!B2,"yyyy-mm-dd")&"' GROUP BY C, D ORDER BY SUM(E) DESC LABEL SUM(E) 'Total'",1)
FILTER_CATEGORIA_ESPECIFICA
Lista todos los gastos de una categoría, con fecha y descripción
=QUERY(Gastos!A:J, "SELECT A, B, D, E, F WHERE C = '"&CONFIG!C1&"' AND MONTH(A)+1 = "&CONFIG!A1& " AND YEAR(A) = "&CONFIG!A2& " ORDER BY A DESC LABEL A 'Fecha', B 'Descripción', D 'Subcategoría', E 'Monto', F 'Método de pago'",1) '--- CONFIG!C1 = nombre de la categoría a filtrar ---
QUERY_PRESUPUESTO_VS_REAL
Compara presupuesto vs gasto real con semáforo automático
'--- En hoja ANÁLISIS_RUBROS, celda A1 --- =ARRAYFORMULA( IFERROR( {Presupuesto!A2:A20, Presupuesto!B2:B20, SUMIF(Gastos!C:C,Presupuesto!A2:A20,Gastos!E:E), SUMIF(Gastos!C:C,Presupuesto!A2:A20,Gastos!E:E)/Presupuesto!B2:B20-1, IF(SUMIF(Gastos!C:C,Presupuesto!A2:A20,Gastos!E:E)>Presupuesto!B2:B20, "🔴 Excedido", IF(SUMIF(Gastos!C:C,Presupuesto!A2:A20,Gastos!E:E)>Presupuesto!B2:B20*0.9, "🟡 Atención","🟢 OK"))}, ""))
REGLA_50_30_20
Calcula automáticamente la distribución 50/30/20 y compara con lo real
'--- Pega en 3 celdas separadas --- Necesidades (50%): =SUMPRODUCT((MONTH(Gastos!A:A)=MONTH(TODAY()))* (Gastos!H:H="Necesidad")*Gastos!E:E) Deseos (30%): =SUMPRODUCT((MONTH(Gastos!A:A)=MONTH(TODAY()))* (Gastos!H:H="Deseo")*Gastos!E:E) Ahorro/Deudas (20%): =SUMIF(Ingresos!B:B,MONTH(TODAY()),Ingresos!F:F) - B_Necesidades - B_Deseos
TOP_10_GASTOS_MES
Los 10 gastos más altos del mes, con categoría y descripción
=QUERY(Gastos!A:J, "SELECT A, B, C, D, E, F WHERE MONTH(A)+1 = "&MONTH(TODAY())& " AND YEAR(A) = "&YEAR(TODAY())& " ORDER BY E DESC LIMIT 10 LABEL A 'Fecha', B 'Descripción', C 'Categoría', D 'Subcategoría', E 'Monto', F 'Pago'",1)
GASTO_MAYOR_CATEGORIA
¿Qué categoría se lleva más dinero este mes?
'--- Devuelve el nombre de la categoría con mayor gasto --- =INDEX( QUERY(Gastos!A:J, "SELECT C, SUM(E) WHERE MONTH(A)+1="&MONTH(TODAY())& " GROUP BY C ORDER BY SUM(E) DESC LIMIT 1",0),1,1) '--- Devuelve el monto --- =INDEX( QUERY(Gastos!A:J, "SELECT C, SUM(E) WHERE MONTH(A)+1="&MONTH(TODAY())& " GROUP BY C ORDER BY SUM(E) DESC LIMIT 1",0),1,2)
FRECUENCIA_GASTOS_SEMANA
Cuántas transacciones por día de la semana (para ver patrones)
=QUERY(Gastos!A:E, "SELECT DAYOFWEEK(A), COUNT(E), SUM(E) WHERE MONTH(A)+1 = "&MONTH(TODAY())& " GROUP BY DAYOFWEEK(A) ORDER BY DAYOFWEEK(A) ASC LABEL DAYOFWEEK(A) 'Día semana', COUNT(E) '# Gastos', SUM(E) 'Total'",1)
TENDENCIA_12_MESES
Evolución de ingresos, gastos y ahorro mes a mes (últimos 12 meses)
'--- Ingresos por mes --- =QUERY(Ingresos!A:F, "SELECT YEAR(A), MONTH(A)+1, SUM(F) WHERE A IS NOT NULL GROUP BY YEAR(A), MONTH(A) ORDER BY YEAR(A) ASC, MONTH(A) ASC LABEL YEAR(A) 'Año', MONTH(A)+1 'Mes', SUM(F) 'Ingresos'",1) '--- Gastos por mes --- =QUERY(Gastos!A:E, "SELECT YEAR(A), MONTH(A)+1, SUM(E) WHERE A IS NOT NULL GROUP BY YEAR(A), MONTH(A) ORDER BY YEAR(A) ASC, MONTH(A) ASC LABEL YEAR(A) 'Año', MONTH(A)+1 'Mes', SUM(E) 'Gastos'",1)
VARIACION_VS_MES_ANTERIOR
Cuánto cambió cada categoría vs el mes pasado
'--- Mes actual --- =SUMPRODUCT( (MONTH(Gastos!A2:A5000)=MONTH(TODAY()))* (YEAR(Gastos!A2:A5000)=YEAR(TODAY()))* (Gastos!C2:C5000=A2)* Gastos!E2:E5000) '--- Mes anterior --- =SUMPRODUCT( (MONTH(Gastos!A2:A5000)=MONTH(EDATE(TODAY(),-1)))* (YEAR(Gastos!A2:A5000)=YEAR(EDATE(TODAY(),-1)))* (Gastos!C2:C5000=A2)* Gastos!E2:E5000) '--- Variación % --- =(mes_actual - mes_anterior) / mes_anterior * 100
DASHBOARD_RESUMEN_COMPLETO
Una sola fórmula que genera el resumen ejecutivo completo del mes
'=== BLOQUE 1: KPIs principales (pega en Dashboard!B2) === =QUERY( {Ingresos!A:F;Gastos!A:F}, "SELECT Col1, SUM(Col6) WHERE MONTH(Col1)+1="&MONTH(TODAY())& " GROUP BY Col1 LIMIT 1",0) '=== BLOQUE 2: Score financiero automático === =MIN(100,MAX(0, (Tasa_Ahorro/30*30)+ ((1-Util_TC)*20)+ (MIN(Fondo_Emergencia_Meses/6,1)*25)+ (IF(DTI<=0.36,25,MAX(0,25-(DTI-0.36)*50))))) '=== BLOQUE 3: Alerta días al corte TC (pega en Dashboard!D5) === =ARRAYFORMULA( IF(Tarjetas!A2:A10<>"", "⏰ Corte "&Tarjetas!A2:A10&": "& IF(DAY(TODAY())<=Tarjetas!E2:E10, Tarjetas!E2:E10-DAY(TODAY()), EOMONTH(TODAY(),0)+Tarjetas!E2:E10-TODAY())&" días", ""))
NAMED_RANGES_RECOMENDADOS
Define estos rangos con nombre en Google Sheets para que las fórmulas sean legibles
'Datos → Rangos con nombre → Agregar cada uno: Ingresos_Mes = SUMPRODUCT((MONTH(Ingresos!A:A)=MONTH(TODAY()))*Ingresos!F:F) Gastos_Mes = SUMPRODUCT((MONTH(Gastos!A:A)=MONTH(TODAY()))*Gastos!E:E) Balance_Mes = Ingresos_Mes - Gastos_Mes Tasa_Ahorro = Balance_Mes / Ingresos_Mes * 100 Util_TC = SUM(Tarjetas!C:C)/SUM(Tarjetas!B:B) DTI = SUM(Deudas!F:F)/Ingresos_Mes MES_ACTUAL = TEXT(TODAY(),"AAAA-MM") Fondo_Emerg_Meses = FondoEmergencia!C3/FondoEmergencia!B3