{"id":44331,"date":"2026-10-04T08:00:00","date_gmt":"2026-10-04T08:00:00","guid":{"rendered":"https:\/\/housfy.com\/blog\/?p=44331"},"modified":"2026-10-30T10:18:53","modified_gmt":"2026-10-30T10:18:53","slug":"guia-formula-excel-como-calcular-una-hipoteca-fija","status":"publish","type":"post","link":"https:\/\/housfy.com\/blog\/guia-formula-excel-como-calcular-una-hipoteca-fija\/","title":{"rendered":"F\u00f3rmula de la cuota hipotecaria: \u00bfC\u00f3mo calcularla paso a paso?"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Mucha gente se pregunta c\u00f3mo se calcula la cuota mensual de una hipoteca. La respuesta est\u00e1 en la <strong>f\u00f3rmula de la cuota hipotecaria del sistema de amortizaci\u00f3n franc\u00e9s<\/strong>, el que usan la gran mayor\u00eda de hipotecas en Espa\u00f1a:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><em>Cuota = C \u00d7 i \/ [1 \u2212 (1 + i)\u207b\u207f]<\/em><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En esta gu\u00eda te la explicamos paso a paso y con un ejemplo num\u00e9rico pr\u00e1ctico. Tambi\u00e9n te ense\u00f1amos a <a href=\"https:\/\/support.microsoft.com\/es-es\/excel\/functions\/pmt-function\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>aplicarla en Excel con la funci\u00f3n PAGO( )<\/strong><\/a> y a usarla en hipotecas fijas, mixtas y variables. Y si no quieres hacer ni una operaci\u00f3n, <strong>nuestra calculadora la aplica por ti.<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Lo m\u00e1s importante de este art\u00edculo:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Tus mensualidades se calculan con la f\u00f3rmula de la cuota hipotecaria del sistema de amortizaci\u00f3n franc\u00e9s. <strong>Solo necesitas 3 datos; capital prestado, inter\u00e9s y plazo<\/strong> de devoluci\u00f3n en a\u00f1os.<\/li>\n\n\n\n<li>En una hipoteca fija, <strong>la cuota es la misma todos los meses.<\/strong> En una mixta o una variable <strong>se usa la misma f\u00f3rmula, pero se vuelve a aplicar cada vez que cambia el tipo,<\/strong> con el capital pendiente y los meses que quedan.<\/li>\n\n\n\n<li>No tienes por qu\u00e9 hacer las operaciones a mano; <strong>usa la calculadora de este art\u00edculo o la funci\u00f3n PAGO() de Excel.<\/strong><\/li>\n\n\n\n<li>En las primeras cuotas, <strong>una parte muy grande de lo que pagas son intereses<\/strong> (en el ejemplo de esta gu\u00eda, m\u00e1s de la mitad de la primera cuota). Por eso <strong>amortizar en los primeros a\u00f1os es lo que m\u00e1s dinero te ahorra a largo plazo.<\/strong><\/li>\n\n\n\n<li>Para <strong>afinar las condiciones que puedes conseguir con tu perfil<\/strong>, usa el simulador online y gratuito de Housfy o habla con nuestros br\u00f3keres hipotecarios.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<!-- Calculadora: f\u00f3rmula de la cuota hipotecaria paso a paso (pegar en un bloque HTML personalizado) -->\n<div data-fc-tool=\"\" style=\"display:block;max-width:720px;margin:32px auto;min-height:560px;\">\n<noscript><p style=\"font-family:Manrope,Arial,sans-serif;color:#03007A;\">F\u00f3rmula de la cuota hipotecaria (sistema franc\u00e9s): Cuota = C x i \/ [1 &#8211; (1 + i)^-n], donde C es el capital, i el inter\u00e9s mensual (TIN \/ 12) y n el n\u00famero de cuotas. Activa JavaScript para usar la calculadora.<\/p><\/noscript>\n<\/div>\n<script data-cfasync=\"false\" data-no-optimize=\"1\" data-no-defer=\"1\" data-no-minify=\"1\">\n(function () {\n  \/* ====== DATOS EDITABLES ====== *\/\n  var CFG = {\n    dl: true, \/* bot\u00f3n para descargar la tabla en CSV *\/\n    esf: 35, \/* % de los ingresos que los bancos suelen tomar como m\u00e1ximo *\/\n    \/* Bot\u00f3n \"Rellenar con un ejemplo\": condiciones de la hoja de mejores hipotecas *\/\n    ej: { imp: '200.000', anos: '30', fija: ['2,05'], mixta: ['1,50', '5', '0,35'], variable: ['1,15', '1', '0,35'], eur: '3,247' },\n    repFecha: 'condiciones de octubre de 2026',\n    rep: 'Hipoteca a tipo fijo. TIN 2,05 %. TAE 2,446 %, calculada con el simulador del Banco de Espa\u00f1a suponiendo la contrataci\u00f3n de unos seguros de hogar y de vida orientativos de 400 \u20ac en total. Importe de 200.000 \u20ac. Plazo 30 a\u00f1os. 360 cuotas de 744,25 \u20ac. Importe total adeudado: 267.929,87 \u20ac. Cumpliendo condiciones.',\n    url: {\n      sim: 'https:\/\/housfy.com\/hipoteca\/simulador-hipoteca?utm_source=blog',\n      hip: 'https:\/\/housfy.com\/hipoteca?utm_source=blog',\n      broker: 'https:\/\/housfy.com\/hipoteca\/broker-hipotecario?utm_source=blog'\n    }\n  };\n  \/* ============================== *\/\n  var NB = '\\u00a0', DOT = '\\u00b7';\n  var FONT_ID = 'pca-manrope-font';\n  if (!document.getElementById(FONT_ID)) {\n    var lk = document.createElement('link');\n    lk.id = FONT_ID; lk.rel = 'stylesheet';\n    lk.href = 'https:\/\/fonts.googleapis.com\/css2?family=Manrope:wght@400;500;600;700;800&display=swap';\n    document.head.appendChild(lk);\n  }\n  var CSS = [\n    ':host{all:initial;display:block}',\n    '*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}',\n    '.w{font-family:\"Manrope\",system-ui,-apple-system,\"Segoe UI\",Roboto,Arial,sans-serif;font-size:17px;line-height:1.5;color:#03007A;background:#FFFFFF;border:1px solid #D7EAF9;border-radius:24px;overflow:hidden;-webkit-font-smoothing:antialiased;text-align:left}',\n    '.hd{background:linear-gradient(125deg,#03007A 0%,#03007A 45%,#11AEFA 150%);color:#FFFFFF;padding:24px 20px 20px}',\n    '.kick{font-size:14px;font-weight:600;color:#FFFFFF;opacity:.85}',\n    '.title{font-size:23px;line-height:1.22;font-weight:800;margin-top:6px;color:#FFFFFF;letter-spacing:-.01em}',\n    '.title em{font-style:normal;color:#11AEFA}',\n    '.sub{font-size:15px;margin-top:8px;color:#FFFFFF;opacity:.9}',\n    '.prog{display:flex;align-items:center;gap:12px;margin-top:18px}',\n    '.bar{flex:1;height:6px;background:rgba(255,255,255,.22);border-radius:99px;overflow:hidden}',\n    '.bar span{display:block;height:100%;background:#11AEFA;border-radius:99px;transition:width .35s ease}',\n    '.count{font-size:13px;font-weight:700;color:#FFFFFF;white-space:nowrap}',\n    '.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}',\n    '.bd{padding:22px 20px 24px}',\n    '.anim{animation:fcIn .28s ease}',\n    '@keyframes fcIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}',\n    '.q{font-size:21px;font-weight:800;line-height:1.28;outline:none}',\n    '.help{font-size:15px;margin-top:4px;color:rgba(3,0,122,.75)}',\n    '.field{margin-top:16px;min-width:0}',\n    '.field label,.lbl{display:block;font-weight:700;font-size:16px}',\n    '.hint{display:block;font-size:14px;color:rgba(3,0,122,.7);margin-top:2px}',\n    '.seg{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px}',\n    '.seg.t2{grid-template-columns:1fr 1fr;margin-top:10px}',\n    '.opt{display:flex;align-items:center;justify-content:center;text-align:center;background:#FFFFFF;border:2px solid #D7EAF9;border-radius:14px;min-height:52px;padding:8px;font:inherit;font-size:16px;font-weight:700;color:#03007A;cursor:pointer;transition:border-color .15s,background-color .15s}',\n    '.seg.t2 .opt{min-height:44px;font-size:15px}',\n    '.opt:hover{border-color:#11AEFA}',\n    '.opt[aria-pressed=\"true\"]{background:#03007A;border-color:#03007A;color:#FFFFFF}',\n    'button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid #03007A;outline-offset:2px}',\n    '.cta a:focus-visible{outline-color:#FFD85A}',\n    '.inp{display:flex;align-items:center;border:2px solid #D7EAF9;border-radius:14px;margin-top:6px;background:#FFFFFF;padding:0 14px;min-height:54px}',\n    '.inp:focus-within{border-color:#11AEFA}',\n    '.inp input{border:0;outline:0;font:inherit;font-size:19px;font-weight:700;color:#03007A;width:100%;background:transparent;padding:10px 0;min-width:0}',\n    '.inp input:focus-visible{outline:0}',\n    '.inp input::placeholder{color:rgba(3,0,122,.35)}',\n    '.inp span{font-weight:700;color:rgba(3,0,122,.7);white-space:nowrap;margin-left:8px;font-size:16px}',\n    '.g2{display:grid;gap:0 12px}',\n    '@media (min-width:560px){.g2{grid-template-columns:1fr 1fr}}',\n    '.lnk{background:none;border:0;font:inherit;font-size:15px;font-weight:700;color:#03007A;text-decoration:underline;cursor:pointer;padding:10px 0;min-height:44px;margin-top:6px}',\n    '.nav{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:20px;flex-wrap:wrap}',\n    '.back{background:none;border:0;font:inherit;font-size:16px;font-weight:700;color:#03007A;display:inline-flex;gap:6px;align-items:center;padding:10px 2px;min-height:48px;cursor:pointer}',\n    '.back svg{width:18px;height:18px}',\n    '.btn{display:inline-flex;align-items:center;justify-content:center;background:#11AEFA;color:#FFFFFF;border:2px solid #11AEFA;border-radius:999px;padding:12px 22px;font:inherit;font-size:17px;font-weight:800;min-height:52px;cursor:pointer;margin-left:auto;text-align:center;text-decoration:none;transition:box-shadow .15s}',\n    '.btn:hover{box-shadow:0 0 0 4px #D7EAF9}',\n    '.btn[disabled]{opacity:.45;cursor:not-allowed;box-shadow:none}',\n    '.btn.o{background:#FFFFFF;color:#03007A;border-color:#D7EAF9;margin-left:0}',\n    '.btn.o:hover{background:#EFF7FD;border-color:#11AEFA;box-shadow:none}',\n    '.err{font-size:14px;font-weight:700;margin-top:10px}',\n    '.err:empty{display:none}',\n    '.fx{background:#03007A;color:#FFFFFF;border-radius:18px;padding:16px 18px;margin-top:16px;text-align:center}',\n    '.fx p{font-size:13px;font-weight:600;opacity:.85}',\n    '.fx b{display:block;font-size:21px;font-weight:800;margin:4px 0;letter-spacing:.01em}',\n    'sup{font-size:.62em;line-height:0;position:relative;top:-.5em;vertical-align:baseline}',\n    '.tr{margin-top:20px}',\n    '.tr h4{font-size:17px;font-weight:800;line-height:1.3}',\n    '.tr h4 small{display:block;font-size:14px;font-weight:600;color:rgba(3,0,122,.7)}',\n    '.st{list-style:none;margin-top:10px;display:grid;gap:8px;counter-reset:s}',\n    '.st li{display:grid;grid-template-columns:28px 1fr;gap:2px 10px;align-items:start;background:#EFF7FD;border-radius:14px;padding:12px 14px}',\n    '.st li::before{counter-increment:s;content:counter(s);grid-row:span 2;width:28px;height:28px;border-radius:50%;background:#FFD85A;color:#03007A;display:grid;place-items:center;font-size:14px;font-weight:800}',\n    '.st .k{font-size:14px;font-weight:700;color:rgba(3,0,122,.75)}',\n    '.st .v{font-size:16px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;min-width:0}',\n    '.st .v b{font-weight:800}',\n    '.st li.fin{background:#D7EAF9}',\n    '.note{font-size:14px;margin-top:12px;color:rgba(3,0,122,.75)}',\n    '.big{background:#EFF7FD;border-radius:18px;padding:16px 14px;margin-top:14px}',\n    '.two{display:grid;gap:12px}',\n    '@media (min-width:560px){.two{grid-template-columns:1fr 1fr}}',\n    '.lab{font-size:14px;font-weight:700;color:rgba(3,0,122,.75)}',\n    '.num{font-size:32px;font-weight:800;line-height:1.1;margin-top:2px;font-variant-numeric:tabular-nums}',\n    '.num small{font-size:16px;font-weight:700}',\n    '.kpis{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}',\n    '.kpi{background:#FFFFFF;border-radius:14px;padding:12px 10px;min-width:0}',\n    '.kpi span{display:block;font-size:13px;font-weight:700;color:rgba(3,0,122,.75)}',\n    '.kpi b{display:block;font-size:17px;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}',\n    '@media (min-width:560px){.kpi b{font-size:20px}}',\n    '.kpi small{display:block;font-size:13px;color:rgba(3,0,122,.75);margin-top:2px}',\n    '.kpi.full{grid-column:1\/-1}',\n    '.mini{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;border:2px solid #11AEFA;border-radius:16px;padding:14px 16px;margin-top:16px}',\n    '.mini p{font-size:15px;font-weight:700;min-width:0;flex:1 1 200px}',\n    '.mini .btn{margin:0;min-height:46px;padding:10px 18px;font-size:16px}',\n    '.sec{margin-top:24px}',\n    '.sec h4{font-size:18px;font-weight:800}',\n    '.split{display:flex;height:14px;border-radius:99px;overflow:hidden;margin-top:10px;background:#D7EAF9}',\n    '.split i{display:block;height:100%}',\n    '.split .a{background:#03007A}',\n    '.split .b{background:#11AEFA}',\n    '.lg{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:8px;font-size:15px;font-variant-numeric:tabular-nums}',\n    '.lg span::before{content:\"\";display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;background:#03007A}',\n    '.lg span.b::before{background:#11AEFA}',\n    '.tw{overflow-x:auto;margin-top:10px;border:1px solid #D7EAF9;border-radius:14px}',\n    'table{width:100%;border-collapse:collapse;font-size:14px;font-variant-numeric:tabular-nums}',\n    'th{background:#D7EAF9;font-weight:800;text-align:right;padding:8px 10px;white-space:nowrap}',\n    'td{text-align:right;padding:7px 10px;border-top:1px solid #EFF7FD;white-space:nowrap}',\n    'th:first-child,td:first-child{text-align:left}',\n    '.acts{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px;align-items:center}',\n    '.acts .btn{margin-left:0}',\n    '.ok{font-size:14px;font-weight:700;margin-top:6px}',\n    '.ok:empty{display:none}',\n    '.xl{margin-top:12px}',\n    '.xl .k{font-size:14px;font-weight:700;color:rgba(3,0,122,.75)}',\n    '.code{display:flex;align-items:center;gap:8px;margin-top:4px;background:#EFF7FD;border-radius:12px;padding:8px 8px 8px 12px}',\n    '.code code{flex:1;min-width:0;font-family:inherit;font-size:15px;font-weight:700;overflow-wrap:anywhere}',\n    '.cp{flex:none;background:#FFFFFF;border:2px solid #D7EAF9;border-radius:999px;font:inherit;font-size:14px;font-weight:800;color:#03007A;padding:6px 14px;min-height:40px;cursor:pointer}',\n    '.cp:hover{border-color:#11AEFA}',\n    '.cta{background:#03007A;color:#FFFFFF;border-radius:18px;padding:20px 18px;margin-top:24px}',\n    '.cta p.h{font-size:20px;font-weight:800;line-height:1.25}',\n    '.cta p.t{font-size:15px;margin-top:6px;opacity:.9}',\n    '.cta .btn{margin:14px 0 0;width:100%}',\n    '.cta .btn:hover{box-shadow:0 0 0 4px rgba(255,255,255,.3)}',\n    '.ej{margin-top:20px;border:1px solid #D7EAF9;border-radius:14px;padding:12px 14px;font-size:13px;line-height:1.5;color:#6D6D6D}',\n    '.ej b{color:#03007A}',\n    '.ft{font-size:13px;line-height:1.45;color:#6D6D6D;margin:0 20px;padding:14px 0 20px;border-top:1px solid #D7EAF9}',\n    '@media (min-width:640px){.hd{padding:30px 32px 24px}.bd{padding:28px 32px 30px}.title{font-size:28px}.q{font-size:23px}.ft{margin:0 32px;padding:16px 0 24px}.cta .btn{width:auto}.num{font-size:36px}}',\n    '@media (prefers-reduced-motion:reduce){.anim{animation:none}.bar span,.opt,.btn{transition:none}}'\n  ].join('');\n  var I = {\n    back: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M15 6l-6 6 6 6\"\/><\/svg>'\n  };\n  function fmt(n, d) {\n    var neg = n < 0; n = Math.abs(n);\n    var p = n.toFixed(d).split('.');\n    p[0] = p[0].replace(\/\\B(?=(\\d{3})+(?!\\d))\/g, '.');\n    var s = p[0] + (d > 0 ? ',' + p[1] : '');\n    if (Number(n.toFixed(d)) === 0) neg = false;\n    return (neg ? '-' : '') + s;\n  }\n  function eur(n) { return fmt(n, 2) + NB + '\u20ac'; }\n  function pn(r) { return fmt(r, 3).replace(\/0+$\/, '').replace(\/,$\/, ''); }\n  function pc(r) { return pn(r) + NB + '%'; }\n  function num(v) {\n    v = String(v == null ? '' : v).replace(\/[^\\d,.\\-]\/g, '');\n    if (v.indexOf(',') > -1) v = v.replace(\/\\.\/g, '').replace(',', '.');\n    else if (\/^-?\\d{1,3}(\\.\\d{3})+$\/.test(v)) v = v.replace(\/\\.\/g, '');\n    var n = parseFloat(v);\n    return isNaN(n) ? NaN : n;\n  }\n  function yrs(a) { return a + (a === 1 ? ' a\u00f1o' : ' a\u00f1os'); }\n  \/* porcentajes y a\u00f1os: el punto tambi\u00e9n es coma decimal (3.247 = 3,247) *\/\n  function numP(v) { var n = parseFloat(String(v == null ? '' : v).replace(\/[^\\d,.\\-]\/g, '').replace(',', '.')); return isNaN(n) ? NaN : n; }\n  function sgn(a, b) { return pn(a) + (b < 0 ? ' - ' + pn(-b) : ' + ' + pn(b)); }\n  function has(v) { return String(v == null ? '' : v).replace(\/\\s\/g, '') !== ''; }\n  function inR(v, a, b) { if (isNaN(v)) return false; if (v < a) return false; return v <= b; }\n  function clean(v) { return String(v == null ? '' : v).replace(\/[^\\d.,\\-]\/g, ''); }\n  function xd(x, sep) { return String(Math.round(x * 1000000) \/ 1000000).replace('.', sep); }\n  function dec2(x) { return x.toFixed(2).replace('.', ','); }\n  function fresh() { return { i: 0, tipo: 'fija', imp: '', anos: '', tin: '', y1: '', dif: '', eur: '', ing: '', vista: 'mes' }; }\n\n  function cuota(C, r, n) { var i = r \/ 1200; return i === 0 ? C \/ n : C * i \/ (1 - Math.pow(1 + i, -n)); }\n  function calc(S) {\n    var C = num(S.imp), N = Math.round(num(S.anos) * 12), tr = [];\n    if (S.tipo === 'fija') tr.push({ m: N, r: numP(S.tin) });\n    else {\n      var m1 = Math.round(numP(S.y1) * 12);\n      tr.push({ m: m1, r: numP(S.tin) });\n      tr.push({ m: N - m1, r: Math.max(0, numP(S.eur) + numP(S.dif)), neg: numP(S.eur) + numP(S.dif) < 0 });\n    }\n    var rows = [], B = C, left = N, k = 0, tot = 0, totI = 0;\n    tr.forEach(function (t) {\n      t.C = B; t.n = left; t.i = t.r \/ 1200; t.q = cuota(B, t.r, left); t.pw = Math.pow(1 + t.i, -left);\n      for (var j = 0; j < t.m; j++) {\n        var it = B * t.i, cap = t.q - it;\n        if (k === N - 1) cap = B;\n        B = B - cap;\n        rows.push([k + 1, it + cap, it, cap, Math.max(0, B)]);\n        tot += it + cap; totI += it; k++;\n      }\n      left -= t.m;\n    });\n    var qmax = 0; tr.forEach(function (t) { if (t.q > qmax) qmax = t.q; });\n    return { C: C, N: N, tr: tr, rows: rows, tot: tot, totI: totI, qmax: qmax };\n  }\n\n  function mount(host) {\n    if (host.getAttribute('data-fc-ready')) return;\n    host.setAttribute('data-fc-ready', '1');\n    host.innerHTML = '';\n    host.style.minHeight = '';\n    var root = host.attachShadow({ mode: 'open' });\n    root.innerHTML = '<style>' + CSS + '<\/style><div class=\"w\" role=\"region\" aria-label=\"Calculadora de la f\u00f3rmula de la cuota hipotecaria\"><div class=\"hd\"><p class=\"kick\">Calculadora paso a paso<\/p><p class=\"title\" role=\"heading\" aria-level=\"3\">La f\u00f3rmula de la cuota, <em>con tus n\u00fameros<\/em><\/p><p class=\"sub\">Pon importe, plazo e inter\u00e9s. Te ense\u00f1amos cada operaci\u00f3n, la tabla de amortizaci\u00f3n y la f\u00f3rmula para Excel.<\/p><div class=\"prog\"><div class=\"bar\"><span><\/span><\/div><span class=\"count\"><\/span><\/div><\/div><p class=\"sr\" aria-live=\"polite\"><\/p><div class=\"bd\"><\/div><p class=\"ft\">C\u00e1lculo orientativo basado en el sistema de amortizaci\u00f3n franc\u00e9s. En las hipotecas mixtas y variables supone que el tipo del tramo variable (Eur\u00edbor + diferencial) no cambia hasta el final. No incluye gastos, comisiones ni vinculaciones. En ning\u00fan caso sustituye el asesoramiento profesional. Para situaciones complejas, consulta con uno de nuestros gestores.<\/p><\/div>';\n    var bd = root.querySelector('.bd'), live = root.querySelector('.sr'), fillBar = root.querySelector('.bar span'), count = root.querySelector('.count');\n    var S = fresh(), started = false, CODES = [], TXT = { csv: '', tsv: '' };\n    var STEPS = 3;\n\n    function checks() {\n      var L = [], a = num(S.anos), y;\n      L.push(['imp', inR(num(S.imp), 1000, 10000000), 'Escribe un importe entre 1.000 y 10.000.000 \u20ac.']);\n      L.push(['anos', inR(a, 1, 40) ? Math.round(a) === a : false, 'Escribe un plazo de 1 a 40 a\u00f1os, sin decimales.']);\n      L.push(['tin', inR(numP(S.tin), 0, 20), 'Escribe un TIN entre 0 y 20 %.']);\n      if (S.tipo !== 'fija') {\n        y = numP(S.y1);\n        L.push(['y1', inR(y, 1, 39) ? (Math.round(y) === y ? (isNaN(a) ? true : y < a) : false) : false, 'Los a\u00f1os del primer tramo deben ser un n\u00famero entero menor que el plazo.']);\n        L.push(['dif', inR(numP(S.dif), -1, 10), 'Escribe un diferencial entre -1 y 10 %.']);\n        L.push(['eur', inR(numP(S.eur), -2, 10), 'Escribe un Eur\u00edbor entre -2 y 10 %.']);\n      }\n      L.push(['ing', has(S.ing) ? inR(num(S.ing), 100, 1000000) : true, 'Escribe tus ingresos netos al mes o deja el campo vac\u00edo.']);\n      return L;\n    }\n    function ok() { var L = checks(); for (var k = 0; k < L.length; k++) { if (!L[k][1]) return false; } return true; }\n    function why() {\n      var L = checks();\n      for (var k = 0; k < L.length; k++) { if (!L[k][1]) { if (has(S[L[k][0]])) return L[k][2]; } }\n      return '';\n    }\n    function progress() {\n      fillBar.style.width = Math.round(((S.i + 1) \/ STEPS) * 100) + '%';\n      count.textContent = 'Paso ' + (S.i + 1) + ' de ' + STEPS;\n      live.textContent = count.textContent;\n    }\n    function backBtn(label) { return '<button type=\"button\" class=\"back\" data-act=\"back\">' + I.back + (label || 'Atr\u00e1s') + '<\/button>'; }\n    function goBtn(label) { return '<button type=\"button\" class=\"btn\" data-act=\"next\"' + (ok() ? '' : ' disabled') + '>' + label + '<\/button>'; }\n    function nav(right) { return '<div class=\"nav\">' + (S.i > 0 ? backBtn() : '') + right + '<\/div><p class=\"err\" role=\"status\">' + why() + '<\/p>'; }\n    function seg(key, label, list, cls) {\n      var h = '<div class=\"field\"><span class=\"lbl\" id=\"fc-' + key + '-l\">' + label + '<\/span><div class=\"seg' + (cls ? ' ' + cls : '') + '\" role=\"group\" aria-labelledby=\"fc-' + key + '-l\">';\n      list.forEach(function (o) { h += '<button type=\"button\" class=\"opt\" data-s=\"' + key + '\" data-v=\"' + o[0] + '\" aria-pressed=\"' + (S[key] === o[0]) + '\">' + o[1] + '<\/button>'; });\n      return h + '<\/div><\/div>';\n    }\n    function field(key, label, hint, ph, unit) {\n      return '<div class=\"field\"><label for=\"fc-' + key + '\">' + label + '<\/label>' + (hint ? '<span class=\"hint\" id=\"fc-' + key + '-h\">' + hint + '<\/span>' : '') + '<div class=\"inp\"><input id=\"fc-' + key + '\" data-f=\"' + key + '\" type=\"text\" inputmode=\"decimal\" autocomplete=\"off\" placeholder=\"' + ph + '\" value=\"' + clean(S[key]) + '\"' + (hint ? ' aria-describedby=\"fc-' + key + '-h\"' : '') + '><span>' + unit + '<\/span><\/div><\/div>';\n    }\n\n    function viewDatos() {\n      var h = '<p class=\"q\" tabindex=\"-1\">Tu hipoteca<\/p><p class=\"help\">Pon solo lo que ya sabes. La calculadora hace el resto.<\/p>';\n      h += seg('tipo', 'Tipo de inter\u00e9s', [['fija', 'Fijo'], ['mixta', 'Mixto'], ['variable', 'Variable']]);\n      h += '<div class=\"g2\">' + field('imp', 'Importe del pr\u00e9stamo', '', '200.000', '\u20ac') + field('anos', 'Plazo', '', '30', 'a\u00f1os') + '<\/div>';\n      if (S.tipo === 'fija') h += field('tin', 'TIN anual', 'Est\u00e1 en la oferta del banco o en la FEIN.', '2,05', '%');\n      else {\n        var mx = S.tipo === 'mixta';\n        h += '<div class=\"g2\">' + field('tin', mx ? 'TIN del tramo fijo' : 'TIN inicial', '', mx ? '1,50' : '1,15', '%') + field('y1', mx ? 'A\u00f1os a tipo fijo' : 'A\u00f1os a tipo inicial', mx ? '' : 'Suele ser 1 a\u00f1o.', mx ? '5' : '1', 'a\u00f1os') + '<\/div>';\n        h += '<div class=\"g2\">' + field('dif', 'Diferencial', 'Lo que se suma al Eur\u00edbor.', '0,35', '%') + field('eur', 'Eur\u00edbor', 'El \u00faltimo publicado o el que quieras suponer.', '3,00', '%') + '<\/div>';\n      }\n      h += field('ing', 'Ingresos netos al mes (opcional)', 'Para ver qu\u00e9 parte de tu sueldo se lleva la cuota.', '2.500', '\u20ac\/mes');\n      h += '<button type=\"button\" class=\"lnk\" data-act=\"ej\">Rellenar con un ejemplo<\/button>';\n      h += nav(goBtn('Ver la f\u00f3rmula paso a paso'));\n      return h;\n    }\n    function stepsHTML(t, k, R) {\n      var h = '<ol class=\"st\">', i8 = fmt(t.i, 8), mx = S.tipo === 'mixta';\n      var rateTxt = k === 0 ? pn(t.r) : '(' + sgn(numP(S.eur), numP(S.dif)) + ')';\n      h += '<li><span class=\"k\">i = inter\u00e9s mensual<\/span><span class=\"v\">' + (t.neg ? 'Eur\u00edbor + diferencial da un tipo negativo; el tipo se queda en 0, as\u00ed que <b>i = 0<\/b>' : rateTxt + ' \/ 12 \/ 100 = <b>' + i8 + '<\/b>') + '<\/span><\/li>';\n      h += '<li><span class=\"k\">n = n\u00famero de cuotas<\/span><span class=\"v\">' + (k === 0 ? (R.tr.length > 1 ? yrs(t.m \/ 12) + ' ' + DOT + ' 12 = <b>' + t.m + '<\/b> en este tramo; la cuota se calcula con todo el plazo: ' + yrs(num(S.anos)) + ' ' + DOT + ' 12 = <b>' + t.n + '<\/b>' : yrs(num(S.anos)) + ' ' + DOT + ' 12 = <b>' + t.n + '<\/b>') : R.N + ' - ' + R.tr[0].m + ' ya pagadas = <b>' + t.n + '<\/b>') + '<\/span><\/li>';\n      h += '<li><span class=\"k\">C = capital<\/span><span class=\"v\">' + (k === 0 ? 'Lo que te prestan = <b>' + eur(t.C) + '<\/b>' : 'Lo que queda por pagar tras la cuota ' + R.tr[0].m + ' = <b>' + eur(t.C) + '<\/b>') + '<\/span><\/li>';\n      if (t.i === 0) {\n        h += '<li class=\"fin\"><span class=\"k\">Cuota (con inter\u00e9s 0, C \/ n)<\/span><span class=\"v\">' + fmt(t.C, 2) + ' \/ ' + t.n + ' = <b>' + eur(t.q) + ' al mes<\/b><\/span><\/li>';\n        return h + '<\/ol>';\n      }\n      h += '<li><span class=\"k\">(1 + i)<sup>-n<\/sup><\/span><span class=\"v\">' + fmt(1 + t.i, 8) + '<sup>-' + t.n + '<\/sup> = <b>' + fmt(t.pw, 8) + '<\/b><\/span><\/li>';\n      h += '<li><span class=\"k\">1 - (1 + i)<sup>-n<\/sup><\/span><span class=\"v\">1 - ' + fmt(t.pw, 8) + ' = <b>' + fmt(1 - t.pw, 8) + '<\/b><\/span><\/li>';\n      h += '<li><span class=\"k\">C ' + DOT + ' i<\/span><span class=\"v\">' + fmt(t.C, 2) + ' ' + DOT + ' ' + i8 + ' = <b>' + fmt(t.C * t.i, 2) + '<\/b><\/span><\/li>';\n      h += '<li class=\"fin\"><span class=\"k\">Cuota = C ' + DOT + ' i \/ [1 - (1 + i)<sup>-n<\/sup>]<\/span><span class=\"v\">' + fmt(t.C * t.i, 2) + ' \/ ' + fmt(1 - t.pw, 8) + ' = <b>' + eur(t.q) + ' al mes<\/b><\/span><\/li>';\n      return h + '<\/ol>';\n    }\n    function viewFormula() {\n      var R = calc(S), multi = R.tr.length > 1, h = '<p class=\"q\" tabindex=\"-1\">Tu cuota, operaci\u00f3n a operaci\u00f3n<\/p>';\n      h += '<div class=\"fx\"><p>F\u00f3rmula del sistema franc\u00e9s<\/p><b>Cuota = C ' + DOT + ' i \/ [1 - (1 + i)<sup>-n<\/sup>]<\/b><p>C: capital ' + DOT + ' i: inter\u00e9s mensual ' + DOT + ' n: n\u00famero de cuotas<\/p><\/div>';\n      if (multi) h += '<p class=\"note\">' + (S.tipo === 'mixta' ? 'En una mixta' : 'En una variable') + ' se usa la misma f\u00f3rmula dos veces: una por tramo. Al cambiar el tipo, se recalcula con lo que queda por pagar y los meses que faltan.<\/p>';\n      R.tr.forEach(function (t, k) {\n        var y1 = R.tr[0].m \/ 12;\n        h += '<div class=\"tr\">';\n        if (multi) h += '<h4>' + (k === 0 ? 'Tramo 1: ' + (y1 === 1 ? 'a\u00f1o 1' : 'a\u00f1os 1 a ' + y1) : 'Tramo 2: del a\u00f1o ' + (y1 + 1) + ' al ' + (R.N \/ 12)) + '<small>' + (k === 0 ? (S.tipo === 'mixta' ? 'Tipo fijo: ' : 'Tipo inicial: ') + pc(t.r) : 'Eur\u00edbor + diferencial: ' + sgn(numP(S.eur), numP(S.dif)) + ' = ' + pc(t.r) + (t.neg ? ' (el tipo no baja de 0)' : '')) + '<\/small><\/h4>';\n        h += stepsHTML(t, k, R) + '<\/div>';\n      });\n      if (multi) h += '<p class=\"note\">El Eur\u00edbor se revisa cada 6 o 12 meses seg\u00fan tu contrato. En cada revisi\u00f3n se repite el tramo 2 con el capital pendiente, los meses que quedan y el nuevo tipo.<\/p>';\n      h += '<p class=\"note\">Los pasos intermedios se muestran redondeados; la cuota se calcula con todos los decimales.<\/p>';\n      h += nav(goBtn('Ver tabla y f\u00f3rmula de Excel'));\n      return h;\n    }\n    function tableHTML(R) {\n      var h = '<div class=\"tw\"><table><thead><tr><th scope=\"col\">' + (S.vista === 'mes' ? 'Mes' : 'A\u00f1o') + '<\/th><th scope=\"col\">Intereses<\/th><th scope=\"col\">Capital<\/th><th scope=\"col\">Pendiente<\/th><\/tr><\/thead><tbody>';\n      if (S.vista === 'mes') {\n        R.rows.slice(0, 12).forEach(function (r) { h += '<tr><td>' + r[0] + '<\/td><td>' + fmt(r[2], 2) + '<\/td><td>' + fmt(r[3], 2) + '<\/td><td>' + fmt(r[4], 2) + '<\/td><\/tr>'; });\n      } else {\n        for (var y = 0; y * 12 < R.rows.length; y++) {\n          var it = 0, ca = 0, last = R.rows[Math.min(R.rows.length, y * 12 + 12) - 1];\n          R.rows.slice(y * 12, y * 12 + 12).forEach(function (r) { it += r[2]; ca += r[3]; });\n          h += '<tr><td>' + (y + 1) + '<\/td><td>' + fmt(it, 2) + '<\/td><td>' + fmt(ca, 2) + '<\/td><td>' + fmt(last[4], 2) + '<\/td><\/tr>';\n        }\n      }\n      return h + '<\/tbody><\/table><\/div><p class=\"note\">Importes en euros, calculados con todos los decimales (en el recibo del banco puede haber diferencias de un c\u00e9ntimo). ' + (S.vista === 'mes' ? 'Intereses de cada mes = capital pendiente ' + DOT + ' i.' : 'Cada fila suma las 12 cuotas del a\u00f1o.') + '<\/p>';\n    }\n    function codeRow(label, code) {\n      CODES.push(code);\n      return '<div class=\"xl\"><span class=\"k\">' + label + '<\/span><div class=\"code\"><code>' + code + '<\/code><button type=\"button\" class=\"cp\" data-act=\"cp\" data-c=\"' + (CODES.length - 1) + '\" aria-label=\"Copiar f\u00f3rmula de ' + label + '\">Copiar<\/button><\/div><\/div>';\n    }\n    function viewResult() {\n      var R = calc(S), multi = R.tr.length > 1, h = '', ing = has(S.ing) ? num(S.ing) : 0, ratio = ing ? Math.round(R.qmax \/ ing * 100) : 0;\n      CODES = [];\n      h += '<p class=\"q\" tabindex=\"-1\">Tu resultado<\/p><div class=\"big\">';\n      if (!multi) h += '<p class=\"lab\">Tu cuota mensual<\/p><p class=\"num\">' + eur(R.tr[0].q) + '<\/p>';\n      else {\n        var y1 = R.tr[0].m \/ 12;\n        h += '<div class=\"two\"><div><p class=\"lab\">' + (y1 === 1 ? 'A\u00f1o 1' : 'A\u00f1os 1 a ' + y1) + '<\/p><p class=\"num\">' + eur(R.tr[0].q) + ' <small>al mes<\/small><\/p><\/div><div><p class=\"lab\">Desde el a\u00f1o ' + (y1 + 1) + '<\/p><p class=\"num\">' + eur(R.tr[1].q) + ' <small>al mes<\/small><\/p><\/div><\/div>';\n      }\n      h += '<div class=\"kpis\"><div class=\"kpi\"><span>Intereses totales<\/span><b>' + eur(R.totI) + '<\/b><\/div><div class=\"kpi\"><span>Total devuelto<\/span><b>' + eur(R.tot) + '<\/b><\/div>';\n      if (ing) h += '<div class=\"kpi full\"><span>Parte de tus ingresos<\/span><b>' + ratio + NB + '%<\/b><small>' + (multi ? 'Con la cuota m\u00e1s alta. ' : '') + 'Los bancos suelen pedir que no pase del ' + CFG.esf + NB + '%.<\/small><\/div>';\n      h += '<\/div>';\n      h += '<div class=\"mini\"><p>\u00bfY con el tipo que te dar\u00edan a ti? Calc\u00falalo con condiciones reales.<\/p><a class=\"btn\" href=\"' + CFG.url.sim + '\" target=\"_blank\" rel=\"noopener\">Simula tu hipoteca<\/a><\/div>';\n      var r0 = R.rows[0], pi = r0[1] > 0 ? Math.round(r0[2] \/ r0[1] * 100) : 0;\n      h += '<div class=\"sec\"><h4>Tu primera cuota por dentro<\/h4><div class=\"split\" aria-hidden=\"true\"><i class=\"a\" style=\"width:' + pi + '%\"><\/i><i class=\"b\" style=\"width:' + (100 - pi) + '%\"><\/i><\/div><div class=\"lg\"><span>Intereses: ' + eur(r0[2]) + ' (' + pi + NB + '%)<\/span><span class=\"b\">Capital: ' + eur(r0[3]) + ' (' + (100 - pi) + NB + '%)<\/span><\/div><p class=\"note\">Intereses = ' + fmt(R.C, 2) + ' ' + DOT + ' ' + fmt(R.tr[0].i, 8) + '. El resto de la cuota amortiza capital. Mientras no cambie el tipo, cada mes debes algo menos, as\u00ed que pagas menos intereses y amortizas m\u00e1s.<\/p><\/div>';\n      h += '<div class=\"sec\"><h4>Tabla de amortizaci\u00f3n<\/h4>' + '<div class=\"seg t2\" role=\"group\" aria-label=\"Vista de la tabla\"><button type=\"button\" class=\"opt\" data-s=\"vista\" data-v=\"mes\" aria-pressed=\"' + (S.vista === 'mes') + '\">Primeros 12 meses<\/button><button type=\"button\" class=\"opt\" data-s=\"vista\" data-v=\"ano\" aria-pressed=\"' + (S.vista === 'ano') + '\">A\u00f1o a a\u00f1o<\/button><\/div>' + tableHTML(R);\n      h += '<div class=\"acts\">' + (CFG.dl ? '<button type=\"button\" class=\"btn o\" data-act=\"csv\">Descargar tabla (CSV)<\/button>' : '') + '<button type=\"button\" class=\"btn o\" data-act=\"tsv\">Copiar tabla para Excel<\/button><\/div><p class=\"ok\" role=\"status\" data-ok=\"t\"><\/p><\/div>';\n      var cs = [], ts = [];\n      cs.push('Mes;Cuota;Intereses;Capital amortizado;Capital pendiente'); ts.push('Mes\\tCuota\\tIntereses\\tCapital amortizado\\tCapital pendiente');\n      R.rows.forEach(function (r) { var a = [r[0], dec2(r[1]), dec2(r[2]), dec2(r[3]), dec2(r[4])]; cs.push(a.join(';')); ts.push(a.join('\\t')); });\n      TXT.csv = cs.join('\\r\\n'); TXT.tsv = ts.join('\\n');\n      h += '<div class=\"sec\"><h4>Tu f\u00f3rmula para Excel<\/h4><p class=\"note\" style=\"margin-top:4px\">P\u00e9gala en una celda y te dar\u00e1 la misma cuota.<\/p>';\n      R.tr.forEach(function (t, k) {\n        var cap = xd(Math.round(t.C * 100) \/ 100, ','), rate = k === 0 ? xd(t.r \/ 100, ',') : (t.neg ? '0' : '(' + xd(numP(S.eur) \/ 100, ',') + '+' + xd(numP(S.dif) \/ 100, ',') + ')');\n        var tag = multi ? ' (tramo ' + (k + 1) + ')' : '';\n        h += codeRow('Excel' + tag, '=PAGO(' + rate + '\/12;' + t.n + ';-' + cap + ')');\n        h += codeRow('Google Sheets' + tag, '=PMT(' + rate + '\/12;' + t.n + ';-' + cap + ')');\n      });\n      var t0 = R.tr[0];\n      h += '<p class=\"note\">Excel en ingl\u00e9s' + (multi ? ', tramo 1' : '') + ': =PMT(' + xd(t0.r \/ 100, '.') + '\/12,' + t0.n + ',-' + xd(Math.round(t0.C * 100) \/ 100, '.') + '). El capital va en negativo para que la cuota salga en positivo.' + (multi ? ' El capital del tramo 2 es el pendiente tras la cuota ' + t0.m + ' (lo tienes en la tabla).' : '') + '<\/p><p class=\"ok\" role=\"status\" data-ok=\"x\"><\/p><\/div>';\n      var c;\n      if (!ing) c = ['\u00bfTe cuadran los n\u00fameros?', 'Pide tu hipoteca y busca las mejores condiciones para tu perfil.', 'Solicita tu hipoteca', CFG.url.hip];\n      else if (ratio <= CFG.esf) c = ['Tu cuota est\u00e1 dentro de lo habitual', 'Se lleva el ' + ratio + NB + '% de tus ingresos, dentro de lo que suelen pedir los bancos. Da el siguiente paso.', 'Solicita tu hipoteca', CFG.url.hip];\n      else c = ['Tu cuota pasa del ' + CFG.esf + NB + '% de tus ingresos', 'Un br\u00f3ker hipotecario puede buscarte ' + (num(S.anos) < 30 ? 'm\u00e1s plazo o un tipo mejor' : 'un tipo mejor o una hipoteca que encaje mejor') + ' con tus ingresos.', 'Habla con un br\u00f3ker', CFG.url.broker];\n      h += '<div class=\"cta\"><p class=\"h\">' + c[0] + '<\/p><p class=\"t\">' + c[1] + '<\/p><a class=\"btn\" href=\"' + c[3] + '\" target=\"_blank\" rel=\"noopener\">' + c[2] + '<\/a><\/div>';\n      h += '<div class=\"acts\" style=\"margin-top:20px\"><button type=\"button\" class=\"btn o\" data-act=\"restart\">Hacer otro c\u00e1lculo<\/button>' + backBtn('Volver a la f\u00f3rmula') + '<\/div>';\n      h += '<p class=\"ej\"><b>Ejemplo representativo (' + CFG.repFecha + ').<\/b> ' + CFG.rep + '<\/p>';\n      return h;\n    }\n    function focusEl(el) { try { el.focus({ preventScroll: true }); } catch (e) { el.focus(); } }\n    function render(keep) {\n      var y = keep ? window.pageYOffset : 0, ae = root.activeElement, sel = null;\n      if (keep) {\n        if (ae) {\n          if (ae.getAttribute('data-s')) sel = '[data-s=\"' + ae.getAttribute('data-s') + '\"][data-v=\"' + ae.getAttribute('data-v') + '\"]';\n          else if (ae.getAttribute('data-act')) sel = '[data-act=\"' + ae.getAttribute('data-act') + '\"]';\n        }\n      }\n      var v = S.i === 0 ? viewDatos() : (S.i === 1 ? viewFormula() : viewResult());\n      bd.innerHTML = '<div class=\"' + (keep ? '' : 'anim') + '\">' + v + '<\/div>';\n      progress();\n      if (keep) { var el = sel ? root.querySelector(sel) : null; if (el) focusEl(el); window.scrollTo(window.pageXOffset, y); return; }\n      if (started) {\n        var f = bd.querySelector('[tabindex=\"-1\"]');\n        if (f) focusEl(f);\n        if (host.getBoundingClientRect().top < 0) host.scrollIntoView({ behavior: 'smooth', block: 'start' });\n      }\n    }\n    function refresh() {\n      var b = root.querySelector('[data-act=\"next\"]'), er = root.querySelector('.err');\n      if (b) b.disabled = !ok();\n      if (er) er.textContent = why();\n    }\n    function say(key, msg) { var o = root.querySelector('[data-ok=\"' + key + '\"]'); if (o) o.textContent = msg; }\n    function copy(t, key, msg) {\n      function fb() {\n        var ta = document.createElement('textarea'), done = false;\n        ta.value = t; ta.setAttribute('readonly', ''); ta.style.position = 'fixed'; ta.style.top = '0'; ta.style.opacity = '0';\n        root.appendChild(ta); ta.select();\n        try { done = document.execCommand('copy'); } catch (e) { done = false; }\n        root.removeChild(ta);\n        say(key, done ? msg : 'No se ha podido copiar. Selecciona el texto y c\u00f3pialo a mano.');\n      }\n      if (navigator.clipboard) { navigator.clipboard.writeText(t).then(function () { say(key, msg); }, fb); } else fb();\n    }\n    function download() {\n      try {\n        var b = new Blob(['\\ufeff' + TXT.csv], { type: 'text\/csv;charset=utf-8' }), u = URL.createObjectURL(b), a = document.createElement('a');\n        a.href = u; a.download = 'tabla-amortizacion.csv'; document.body.appendChild(a); a.click();\n        setTimeout(function () { URL.revokeObjectURL(u); a.parentNode.removeChild(a); }, 1000);\n        say('t', 'Tabla descargada.');\n      } catch (e) { say('t', 'No se ha podido descargar. Usa el bot\u00f3n de copiar.'); }\n    }\n    root.addEventListener('click', function (e) {\n      var b = e.target.closest('button');\n      if (!b) return;\n      if (b.disabled) return;\n      started = true;\n      if (b.hasAttribute('data-s')) { S[b.getAttribute('data-s')] = b.getAttribute('data-v'); render(true); return; }\n      var act = b.getAttribute('data-act');\n      if (act === 'next') { if (S.i < STEPS - 1) S.i++; render(); }\n      if (act === 'back') { if (S.i > 0) S.i--; render(); }\n      if (act === 'restart') { S = fresh(); render(); }\n      if (act === 'ej') {\n        var E = CFG.ej, a = E[S.tipo];\n        S.imp = E.imp; S.anos = E.anos; S.tin = a[0];\n        if (S.tipo !== 'fija') { S.y1 = a[1]; S.dif = a[2]; S.eur = E.eur; }\n        render(true);\n      }\n      if (act === 'csv') download();\n      if (act === 'tsv') copy(TXT.tsv, 't', 'Tabla copiada. P\u00e9gala en una hoja de c\u00e1lculo.');\n      if (act === 'cp') copy(CODES[+b.getAttribute('data-c')], 'x', 'F\u00f3rmula copiada. P\u00e9gala en una celda.');\n    });\n    root.addEventListener('input', function (e) {\n      var f = e.target.getAttribute ? e.target.getAttribute('data-f') : null;\n      if (!f) return;\n      S[f] = clean(e.target.value);\n      refresh();\n    });\n    root.addEventListener('keydown', function (e) {\n      if (e.key !== 'Enter') return;\n      if (e.target.tagName !== 'INPUT') return;\n      var b = root.querySelector('[data-act=\"next\"]');\n      if (b) { if (!b.disabled) { started = true; S.i++; render(); } }\n    });\n    render();\n  }\n  function init() { var hs = document.querySelectorAll('[data-fc-tool]'); for (var i = 0; i < hs.length; i++) mount(hs[i]); }\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init); else init();\n})();\n<\/script>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>En este art\u00edculo aprender\u00e1s:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>La f\u00f3rmula del sistema de amortizaci\u00f3n franc\u00e9s<\/li>\n\n\n\n<li>Calculadora de la cuota hipotecaria<\/li>\n\n\n\n<li>\u00bfC\u00f3mo calcular la cuota de la hipoteca en Excel?<\/li>\n\n\n\n<li>\u00bfC\u00f3mo se calcula la cuota mensual de una hipoteca? Fija, mixta y variable<\/li>\n\n\n\n<li>Simula tu hipoteca con Housfy<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">La f\u00f3rmula del sistema de amortizaci\u00f3n franc\u00e9s<\/h2>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><em>La f\u00f3rmula del sistema de amortizaci\u00f3n franc\u00e9s es Cuota = C \u00d7 i \/ [1 \u2212 (1 + i)\u207b\u207f], donde C es el capital prestado, i el tipo de inter\u00e9s mensual y n el n\u00famero de cuotas.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En 2026, <a href=\"https:\/\/clientebancario.bde.es\/pcb\/es\/menu-horizontal\/productosservici\/financiacion\/hipotecas\/guia-textual\/primerospasoscon\/Cuota_hipotecaria.html\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>la gran mayor\u00eda de hipotecas en Espa\u00f1a se calculan con el sistema de amortizaci\u00f3n franc\u00e9s<\/strong><\/a>, que es de <strong>donde nace la f\u00f3rmula de la cuota hipotecaria.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Su principal caracter\u00edstica es que <strong>la cuota es la misma todos los meses que dura el pr\u00e9stamo<\/strong>; al principio pagas m\u00e1s intereses y menos capital y al final es al rev\u00e9s.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Como hemos avanzado previamente,<strong> la f\u00f3rmula de la cuota hipotecaria del sistema franc\u00e9s es la siguiente:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong><em>Cuota = C \u00d7 i \/ [1 \u2212 (1 + i)\u207b\u207f]<\/em><\/strong><\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cada <strong>variable <\/strong>significa lo siguiente:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>C \u2014 Capital.<\/strong> El <strong>importe <\/strong>que te presta el banco (por ejemplo, 200.000\u20ac).<\/li>\n\n\n\n<li><strong>i \u2014 Tipo de inter\u00e9s mensual.<\/strong> El <strong>TIN anual dividido entre 12.<\/strong> Si tu TIN es del 3 %, entonces i = 0,03 \/ 12 = 0,0025. Si quieres profundizar m\u00e1s acerca de <a href=\"https:\/\/housfy.com\/blog\/como-calcular-intereses-hipoteca-guia-facil\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>c\u00f3mo se calculan los intereses de tu hipoteca<\/strong><\/a>, no dudes en consultarlo.<\/li>\n\n\n\n<li><strong>n \u2014 N\u00famero de cuotas.<\/strong> Los <strong>a\u00f1os del pr\u00e9stamo multiplicados por 12.<\/strong> Una hipoteca a 25 a\u00f1os son 25 \u00d7 12 = 300 cuotas.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Consejo Housfy:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No todas las hipotecas parten del mismo inter\u00e9s, y ah\u00ed es donde se juega buena parte de tu cuota. Antes de calcular nada, compara; <a href=\"https:\/\/housfy.com\/hipoteca\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>pide la hipoteca que mejor encaje con tu situaci\u00f3n financiera de la mano de Housfy<\/strong><\/a> y <strong>aplica la f\u00f3rmula sobre las condiciones reales que puedes conseguir.<\/strong><\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><div\r\n\t\t\t\tid=\"hustle-embedded-id-30\"\r\n\t\t\t\tclass=\"hustle-ui hustle-inline hustle-palette--gray_slate hustle_module_id_30 module_id_30   hustle-size--custom\"\r\n\t\t\t\t\r\n\t\t\tdata-id=\"30\"\r\n\t\t\tdata-render-id=\"0\"\r\n\t\t\tdata-tracking=\"enabled\"\r\n\t\t\t\r\n\t\t\t\tdata-intro=\"no_animation\"\r\n\t\t\t\tdata-sub-type=\"shortcode\"\r\n\t\t\t\t\r\n\t\t\t\tstyle=\"opacity: 0;\"\r\n\t\t\t\taria-label=\" Encuentra la mejor hipoteca posible para ti popup\"\r\n\t\t\t><div class=\"hustle-inline-content\"><div class=\"hustle-info hustle-info--compact\"><div class=\"hustle-main-wrapper\"><div class=\"hustle-layout\"><div class=\"hustle-content\"><div class=\"hustle-content-wrap\"><div class=\"hustle-group-title\"><h3 class=\"hustle-title\"> Encuentra la mejor hipoteca posible para ti<\/h3><h4 class=\"hustle-subtitle\">Ir de banco en banco es del pasado<\/h4><\/div><div class=\"hustle-cta-container\"><a class=\"hustle-button hustle-button-cta \" href=\"https:\/\/housfy.com\/hipoteca?utm_source=traffic_CTABanner_Embed_blog&#038;utm_medium=CTABanner&#038;utm_campaign=CTABanner_Embed_hipoteca_blog&#038;utm_term=hipoteca_CTABanner_Embed_blog\" target=\"_self\" data-cta-type=\"cta\">INF\u00d3RMATE GRATIS<\/a><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Calculadora de la cuota hipotecaria<\/h2>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><em>Para calcular la cuota de tu hipoteca solo necesitas tres datos (importe, plazo e inter\u00e9s) y la calculadora que tienes al principio de este art\u00edculo, que aplica la f\u00f3rmula por ti.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La calculadora que tienes al principio del art\u00edculo funciona con<strong> hipotecas fijas, mixtas y variables<\/strong> y, en 3 pantallas, te muestra:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Cada operaci\u00f3n de la f\u00f3rmula con tus n\u00fameros; <strong>el inter\u00e9s mensual (i), el n\u00famero de cuotas (n), la potencia (1 + i)\u207b\u207f y la cuota final.<\/strong><\/li>\n\n\n\n<li><strong>Qu\u00e9 parte de tu primera cuota son intereses y qu\u00e9 parte capital, el total de intereses y lo que devolver\u00e1s <\/strong>en total.<\/li>\n\n\n\n<li><strong>La tabla de amortizaci\u00f3n de los 12 primeros meses<\/strong> o a\u00f1o a a\u00f1o, y la tabla completa para descargar o copiar en una hoja de c\u00e1lculo.<\/li>\n\n\n\n<li>La <strong>f\u00f3rmula de Excel y de Google Sheets ya escrita con tus datos<\/strong>, lista para copiar.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Si quieres calcularla con condiciones reales de mercado, <strong>al final del art\u00edculo tienes nuestro simulador;<\/strong> y si prefieres que alguien haga los n\u00fameros contigo, <strong>habla con uno de nuestros br\u00f3keres hipotecarios.<\/strong><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"data:image\/gif,GIF89a%01%00%01%00%80%00%00%00%00%00%FF%FF%FF%21%F9%04%01%00%00%00%00%2C%00%00%00%00%01%00%01%00%00%02%01D%00%3B\" data-layzr=\"https:\/\/static0.housfy.com\/prod\/blog\/images\/2023\/01\/22082222\/Formula-de-la-cuota-hipotecaria-1.jpg\" alt=\"F\u00f3rmula de la cuota hipotecaria\" class=\"wp-image-70928\" title=\"- Housfy\"><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\">Ejemplo num\u00e9rico paso a paso<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Apliquemos la f\u00f3rmula de la cuota hipotecaria a un caso pr\u00e1ctico; <strong>una hipoteca de 200.000\u20ac a un TIN del 3% y a 25 a\u00f1os.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Primero <strong>calculamos las variables:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>C = 200.000\u20ac<\/li>\n\n\n\n<li>i = 0,03 \/ 12 = 0,0025<\/li>\n\n\n\n<li>n = 25 \u00d7 12 = 300<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Si<strong> las sustituimos en la f\u00f3rmula<\/strong>, nos queda:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><em>Cuota = 200.000 \u00d7 0,0025 \/ [1 \u2212 (1,0025)\u207b\u00b3\u2070\u2070] = 948,42\u20ac\/mes<\/em><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Esos 948,42\u20ac no cambian en 25 a\u00f1os, pero el reparto entre intereses y capital s\u00ed.<\/strong> As\u00ed se ven las 3 primeras cuotas:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-right\" data-align=\"right\">Cuota<\/th><th class=\"has-text-align-right\" data-align=\"right\">Cuota total<\/th><th class=\"has-text-align-right\" data-align=\"right\">Intereses<\/th><th class=\"has-text-align-right\" data-align=\"right\">Capital amortizado<\/th><th class=\"has-text-align-right\" data-align=\"right\">Capital pendiente<\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-right\" data-align=\"right\">1<\/td><td class=\"has-text-align-right\" data-align=\"right\">948,42\u20ac<\/td><td class=\"has-text-align-right\" data-align=\"right\">500,00\u20ac<\/td><td class=\"has-text-align-right\" data-align=\"right\">448,42\u20ac<\/td><td class=\"has-text-align-right\" data-align=\"right\">199.551,58\u20ac<\/td><\/tr><tr><td class=\"has-text-align-right\" data-align=\"right\">2<\/td><td class=\"has-text-align-right\" data-align=\"right\">948,42\u20ac<\/td><td class=\"has-text-align-right\" data-align=\"right\">498,88\u20ac<\/td><td class=\"has-text-align-right\" data-align=\"right\">449,54\u20ac<\/td><td class=\"has-text-align-right\" data-align=\"right\">199.102,03\u20ac<\/td><\/tr><tr><td class=\"has-text-align-right\" data-align=\"right\">3<\/td><td class=\"has-text-align-right\" data-align=\"right\">948,42\u20ac<\/td><td class=\"has-text-align-right\" data-align=\"right\">497,76\u20ac<\/td><td class=\"has-text-align-right\" data-align=\"right\">450,67\u20ac<\/td><td class=\"has-text-align-right\" data-align=\"right\">198.651,37\u20ac<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\"><strong><em><em>Cifras calculadas con todos los decimales y redondeadas a c\u00e9ntimos; en el recibo del banco puede haber diferencias de un c\u00e9ntimo.<\/em><\/em><\/strong><\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">La f\u00f3rmula da directamente esos 948,42\u20ac, pero <strong>\u00bfc\u00f3mo salen los intereses de cada mes?<\/strong> Multiplicando el capital pendiente por el inter\u00e9s mensual (i).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En la primera cuota: 200.000 \u00d7 0,0025 = 500\u20ac. El resto de la cuota (448,42\u20ac) amortiza capital. <strong>Al mes siguiente, como debes un poco menos, pagas un poco menos de intereses y amortizas un poco m\u00e1s. Y as\u00ed, cuota tras cuota.<\/strong> En total, en los 25 a\u00f1os pagar\u00edas 84.526,79\u20ac de intereses.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><em>Consejo experto: <\/em><\/strong><em>En la primera cuota de este ejemplo, m\u00e1s de la mitad son intereses (500 de 948,42\u20ac). Por eso <a href=\"https:\/\/housfy.com\/blog\/amortizar-hipoteca-fija-te-explicamos-como\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong><em>una amortizaci\u00f3n anticipada en los primeros a\u00f1os es mucho m\u00e1s rentable<\/em><\/strong><\/a> que hacerla al final; <strong>reduces capital cuando todav\u00eda pesa mucho en los intereses futuros.<\/strong><\/em><\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"data:image\/gif,GIF89a%01%00%01%00%80%00%00%00%00%00%FF%FF%FF%21%F9%04%01%00%00%00%00%2C%00%00%00%00%01%00%01%00%00%02%01D%00%3B\" data-layzr=\"https:\/\/static0.housfy.com\/prod\/blog\/images\/2023\/01\/03161355\/Como-se-calcula-la-cuota-de-una-hipoteca-5.jpg\" alt=\"C\u00f3mo se calcula la cuota de una hipoteca\" class=\"wp-image-66877\" title=\"- Housfy\"><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">\u00bfC\u00f3mo calcular la cuota de la hipoteca en Excel?<\/h2>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><em>Para calcular la cuota de la hipoteca en Excel usa la funci\u00f3n PAGO(tasa;nper;va), con el capital en negativo para que Excel te devuelva la cuota como un n\u00famero positivo<\/em>.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>tasa<\/strong>: el <strong>inter\u00e9s <\/strong>mensual \u2192 0,03\/12<\/li>\n\n\n\n<li><strong>nper<\/strong>: el n\u00famero de <strong>cuotas <\/strong>\u2192 25*12<\/li>\n\n\n\n<li><strong>va<\/strong>: el <strong>capital<\/strong>, en negativo \u2192 -200000<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Aplicado a <strong>nuestro ejemplo<\/strong>, la f\u00f3rmula de la cuota en Excel queda as\u00ed:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Celda<\/th><th>Contenido<\/th><th class=\"has-text-align-right\" data-align=\"right\">Resultado<\/th><\/tr><\/thead><tbody><tr><td>A1<\/td><td>=PAGO(0,03\/12;25*12;-200000)<\/td><td class=\"has-text-align-right\" data-align=\"right\">948,42\u20ac<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Ten en cuenta estos <strong>detalles<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Escribe la <strong>f\u00f3rmula sin espacios entre PAGO y el par\u00e9ntesis.<\/strong><\/li>\n\n\n\n<li>En Excel en espa\u00f1ol <strong>los argumentos se separan con punto y coma (;).<\/strong> En Excel en ingl\u00e9s la funci\u00f3n se llama PMT y se separa con comas: =PMT(0.03\/12,25*12,-200000).<\/li>\n\n\n\n<li>En<strong> Google Sheets con la configuraci\u00f3n regional de Espa\u00f1a:<\/strong> =PMT(0,03\/12;25*12;-200000).<\/li>\n\n\n\n<li>Por dentro, <strong>PAGO() resuelve la misma f\u00f3rmula de la cuota hipotecaria que hemos visto <\/strong>arriba.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Para comparar escenarios, pon el importe en A1, el TIN en A2 (por ejemplo, 3%) y los a\u00f1os en A3, y escribe =PAGO(A2\/12;A3*12;-A1). <strong>Cambia cualquier celda y la cuota se recalcula al instante.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si tu hipoteca es mixta o variable, <strong>repite la funci\u00f3n en cada tramo con el capital pendiente y las cuotas que quedan<\/strong> (te lo explicamos en el siguiente apartado).<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"data:image\/gif,GIF89a%01%00%01%00%80%00%00%00%00%00%FF%FF%FF%21%F9%04%01%00%00%00%00%2C%00%00%00%00%01%00%01%00%00%02%01D%00%3B\" data-layzr=\"https:\/\/static0.housfy.com\/prod\/blog\/images\/2023\/01\/22082939\/Formula-de-la-cuota-hipotecaria-2.jpg\" alt=\"F\u00f3rmula de la cuota hipotecaria\" class=\"wp-image-70929\" title=\"- Housfy\"><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">\u00bfC\u00f3mo se calcula la cuota mensual de una hipoteca? Fija vs. variable<\/h2>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><em>La cuota mensual se calcula con el sistema franc\u00e9s en los tres casos. La diferencia est\u00e1 en el inter\u00e9s (i): en la hipoteca fija es el mismo toda la vida del pr\u00e9stamo; en la mixta y en la variable, cambia en cada tramo o revisi\u00f3n, y la cuota se recalcula con el capital pendiente y los meses que quedan.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En una hipoteca fija, <strong>la cuota se calcula una sola vez y no se mueve pase lo que pase.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En una hipoteca mixta, <strong>la cuota se calcula al menos 2 veces:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Tramo fijo.<\/strong>\u00a0Se aplica la f\u00f3rmula con el tipo fijo, el capital total y el plazo completo.<\/li>\n\n\n\n<li><strong>Tramo variable.<\/strong>\u00a0Al acabar el tramo fijo, se vuelve a aplicar con el capital que queda por pagar, los meses que faltan y el nuevo tipo (Eur\u00edbor + diferencial). Y se repite en cada revisi\u00f3n del Eur\u00edbor.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Por ejemplo, una <strong>mixta de 200.000\u20ac a 30 a\u00f1os al 1,50% los 5 primeros a\u00f1os y Eur\u00edbor + 0,35% despu\u00e9s.<\/strong> Suponiendo un Eur\u00edbor del 3,247% que no cambia:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>A\u00f1os 1 a 5<\/strong>: i = 0,015 \/ 12 y n = 360 \u2192 cuota de 690,24\u20ac.<\/li>\n\n\n\n<li><strong>Tras la cuota 60<\/strong> quedan por pagar 172.587,58\u20ac.<\/li>\n\n\n\n<li><strong>Desde el a\u00f1o 6<\/strong>: i = (0,03247 + 0,0035) \/ 12, n = 300 y C = 172.587,58\u20ac \u2192 cuota de 873,02\u20ac.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">En Excel ser\u00edan 2 f\u00f3rmulas:<strong> =PAGO(0,015\/12;360;-200000) y =PAGO(0,03597\/12;300;-172587,58).<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En una hipoteca variable, <strong>el tipo se compone de un diferencial fijo m\u00e1s el Eur\u00edbor. <\/strong>Suele empezar con un tipo inicial, normalmente durante el primer a\u00f1o (a veces, 6 meses), y, despu\u00e9s, el Eur\u00edbor se actualiza en cada revisi\u00f3n (normalmente cada 6 o 12 meses).<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><em><strong>Nota importante: <\/strong>En <strong>cada revisi\u00f3n se recalcula la i<\/strong> y, con ella, <a href=\"https:\/\/clientebancario.bde.es\/pcb\/es\/menu-horizontal\/productosservici\/relacionados\/tiposinteres\/guia-textual\/tiposinteresrefe\/tipo_referencia_oficial_mercado_hipotecario.html\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>una nueva cuota para el capital que a\u00fan quede pendiente<\/strong><\/a>, con la misma f\u00f3rmula.<\/em><\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><br>Hipoteca fija<\/th><th>Hipoteca mixta<\/th><th>Hipoteca variable<\/th><\/tr><\/thead><tbody><tr><td><strong>Tipo de inter\u00e9s<\/strong><\/td><td>Fijo toda la vida del pr\u00e9stamo<\/td><td>Fijo unos a\u00f1os; despu\u00e9s, diferencial + Eur\u00edbor<\/td><td>Diferencial + Eur\u00edbor (a veces, con un tipo inicial)<\/td><\/tr><tr><td><strong>\u00bfC\u00f3mo se calcula la cuota?<\/strong><\/td><td>Sistema franc\u00e9s, i constante<\/td><td>Sistema franc\u00e9s, una vez en el tramo fijo y otra en cada revisi\u00f3n<\/td><td>Sistema franc\u00e9s, i se recalcula en cada revisi\u00f3n<\/td><\/tr><tr><td><strong>\u00bfCu\u00e1ndo cambia?<\/strong><\/td><td>Nunca<\/td><td>Al acabar el tramo fijo y en cada revisi\u00f3n posterior<\/td><td>En cada revisi\u00f3n (Eur\u00edbor)<\/td><\/tr><tr><td><strong>Previsibilidad<\/strong><\/td><td>Total<\/td><td>Total en el tramo fijo; despu\u00e9s, depende del Eur\u00edbor<\/td><td>Depende del Eur\u00edbor<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Consejo Housfy:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/housfy.com\/blog\/hipoteca-fija-variable-elegir\/\"><strong>\u00bfNo tienes claro si te conviene una hipoteca fija o variable?<\/strong><\/a> Ponte en contacto con <a href=\"https:\/\/housfy.com\/hipoteca\/broker-hipotecario\"><strong>nuestros br\u00f3keres hipotecarios<\/strong><\/a> para que te gu\u00eden y se pongan en contacto con los m\u00e1s de 20 bancos con los que colaboramos para que salgan las <strong>mejores condiciones adaptadas a tu perfil.<\/strong><\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><div\r\n\t\t\t\tid=\"hustle-embedded-id-79\"\r\n\t\t\t\tclass=\"hustle-ui hustle-inline hustle-palette--gray_slate hustle_module_id_79 module_id_79   hustle-size--custom\"\r\n\t\t\t\t\r\n\t\t\tdata-id=\"79\"\r\n\t\t\tdata-render-id=\"0\"\r\n\t\t\tdata-tracking=\"enabled\"\r\n\t\t\t\r\n\t\t\t\tdata-intro=\"no_animation\"\r\n\t\t\t\tdata-sub-type=\"shortcode\"\r\n\t\t\t\t\r\n\t\t\t\tstyle=\"opacity: 0;\"\r\n\t\t\t\taria-label=\"Consulta con br\u00f3keres hipotecarios expertos popup\"\r\n\t\t\t><div class=\"hustle-inline-content\"><div class=\"hustle-info hustle-info--compact\"><div class=\"hustle-main-wrapper\"><div class=\"hustle-layout\"><div class=\"hustle-content\"><div class=\"hustle-content-wrap\"><div class=\"hustle-group-title\"><h3 class=\"hustle-title\">Consulta con br\u00f3keres hipotecarios expertos<\/h3><h4 class=\"hustle-subtitle\">Conoce cada detalle de tu futura hipoteca y resuelve todas tus dudas<\/h4><\/div><div class=\"hustle-cta-container\"><a class=\"hustle-button hustle-button-cta \" href=\"https:\/\/housfy.com\/hipoteca\/broker-hipotecario?utm_source=traffic_CTABanner_Embed_blog&#038;utm_medium=CTABanner&#038;utm_campaign=CTABanner_Embed_broker_hipotecario_blog&#038;utm_term=broker_hipotecario_CTABanner_Embed_blog\" target=\"_blank\" data-cta-type=\"cta\">INF\u00d3RMATE GRATIS<\/a><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Simula tu hipoteca con Housfy<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ahora que ya sabes <strong>c\u00f3mo se calcula una hipoteca fija y una variable con la f\u00f3rmula de la cuota hipotecaria<\/strong>, con Excel y con nuestra calculadora propia, es momento de dejar que <a href=\"https:\/\/housfy.com\/hipoteca\/simulador-hipoteca\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>nuestro simulador gratuito y online<\/strong><\/a> lo haga por ti.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><div\r\n\t\t\t\tid=\"hustle-embedded-id-36\"\r\n\t\t\t\tclass=\"hustle-ui hustle-inline hustle-palette--gray_slate hustle_module_id_36 module_id_36   hustle-size--custom\"\r\n\t\t\t\t\r\n\t\t\tdata-id=\"36\"\r\n\t\t\tdata-render-id=\"0\"\r\n\t\t\tdata-tracking=\"enabled\"\r\n\t\t\t\r\n\t\t\t\tdata-intro=\"no_animation\"\r\n\t\t\t\tdata-sub-type=\"shortcode\"\r\n\t\t\t\t\r\n\t\t\t\tstyle=\"opacity: 0;\"\r\n\t\t\t\taria-label=\"Calcula tu hipoteca online y gratis popup\"\r\n\t\t\t><div class=\"hustle-inline-content\"><div class=\"hustle-info hustle-info--compact\"><div class=\"hustle-main-wrapper\"><div class=\"hustle-layout\"><div class=\"hustle-content\"><div class=\"hustle-content-wrap\"><div class=\"hustle-group-title\"><h3 class=\"hustle-title\">Calcula tu hipoteca online y gratis<\/h3><h4 class=\"hustle-subtitle\">Utiliza nuestro simulador de hipotecas y descubre la cuota mensual<\/h4><\/div><div class=\"hustle-cta-container\"><a class=\"hustle-button hustle-button-cta \" href=\"https:\/\/housfy.com\/hipoteca\/simulador-hipoteca?utm_source=traffic_CTABanner_Embed_blog&#038;utm_medium=CTABanner&#038;utm_campaign=CTABanner_Embed_simulador_hipoteca_blog&#038;utm_term=simulador_hipoteca_CTABanner_Embed_blog\" target=\"_self\" data-cta-type=\"cta\">EMPEZAR SIMULACI\u00d3N<\/a><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Preguntas frecuentes (FAQ\u2019s)<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfC\u00f3mo se calculan las cuotas de la hipoteca?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Se calculan con la f\u00f3rmula de la cuota hipotecaria del sistema franc\u00e9s: <strong>Cuota = C \u00d7 i \/ [1 \u2212 (1 + i)\u207b\u207f], donde C es el capital, i el inter\u00e9s mensual y n el n\u00famero de cuotas.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Con tipo fijo, <strong>el resultado es la misma cuota cada mes<\/strong>, aunque por dentro cada vez pagues menos intereses y amortices m\u00e1s capital. Con tipo mixto o variable, la cuota se vuelve a calcular cada vez que cambia el tipo.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfC\u00f3mo puedo calcular la cuota de mi hipoteca sin f\u00f3rmulas?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Puedes calcular la cuota de tu hipoteca sin hacer ninguna operaci\u00f3n con <strong>la calculadora que te ofrece Housfy<\/strong> en este art\u00edculo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Solo tienes que poner el importe, el plazo y el inter\u00e9s. <strong>La calculadora aplica la f\u00f3rmula de la cuota hipotecaria por ti y te da la tabla de amortizaci\u00f3n y la f\u00f3rmula de Excel ya escrita con tus datos.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si quieres condiciones reales y personalizadas,<strong> lo m\u00e1s r\u00e1pido es usar el simulador de Housfy<\/strong> y hablar con uno de nuestros br\u00f3keres hipotecarios.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfQu\u00e9 pasa si cambia el Eur\u00edbor en mi hipoteca variable?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">En cada revisi\u00f3n (habitualmente cada 6 o 12 meses),<strong> se recalcula el inter\u00e9s de tu hipoteca variable<\/strong> (diferencial + Eur\u00edbor) en funci\u00f3n de lo que haya cambiado este \u00edndice.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Junto con el inter\u00e9s, cambia la cuota sobre el capital que queda pendiente de devolver del pr\u00e9stamo. <strong>Si el Eur\u00edbor sube, tu cuota sube; si baja, tu cuota baja. <\/strong>En una hipoteca fija esto no ocurre nunca.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfD\u00f3nde puedo simular mi hipoteca online?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Con el<strong> simulador online y gratuito de Housfy<\/strong> puedes calcular tu cuota hipotecaria mensual y adem\u00e1s puedes ver c\u00f3mo cambia seg\u00fan el importe, el plazo y el tipo de inter\u00e9s.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Adem\u00e1s, un br\u00f3ker puede afinar los n\u00fameros con las condiciones que consigas en el mercado y comparar bancos por ti, <strong>consiguiendo las mejores ofertas para tu perfil.<\/strong><\/p>\n\n\n\n<p style=\"font-size: 0.75em; font-style: italic; color: #666;\">Las im\u00e1genes de este art\u00edculo se han generado con inteligencia artificial. Sirven para ilustrar visualmente los conceptos explicados y facilitar su comprensi\u00f3n.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mucha gente se pregunta c\u00f3mo se calcula la cuota mensual de una hipoteca. La respuesta est\u00e1 en la f\u00f3rmula de la cuota hipotecaria del sistema de amortizaci\u00f3n franc\u00e9s, el que usan la gran mayor\u00eda de hipotecas en Espa\u00f1a: Cuota = C \u00d7 i \/  En esta gu\u00eda te la explicamos paso a paso y con un ejemplo num\u00e9rico pr\u00e1ctico. Tambi\u00e9n te ense\u00f1amos a aplicarla en Excel con la funci\u00f3n PAGO( ) y a usarla en hipotecas fijas, mixtas y variables. Y si no quieres hacer ni una operaci\u00f3n, nuestra calculadora la aplica por ti. Lo <\/p>\n","protected":false},"author":62,"featured_media":70927,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[123],"tags":[],"class_list":["post-44331","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hipoteca","has_thumb"],"img_url":"https:\/\/static0.housfy.com\/prod\/blog\/images\/2023\/01\/22082115\/Formula-de-la-cuota-hipotecaria.jpg","_links":{"self":[{"href":"https:\/\/housfy.com\/blog\/wp-json\/wp\/v2\/posts\/44331","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/housfy.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/housfy.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/housfy.com\/blog\/wp-json\/wp\/v2\/users\/62"}],"replies":[{"embeddable":true,"href":"https:\/\/housfy.com\/blog\/wp-json\/wp\/v2\/comments?post=44331"}],"version-history":[{"count":102,"href":"https:\/\/housfy.com\/blog\/wp-json\/wp\/v2\/posts\/44331\/revisions"}],"predecessor-version":[{"id":72166,"href":"https:\/\/housfy.com\/blog\/wp-json\/wp\/v2\/posts\/44331\/revisions\/72166"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/housfy.com\/blog\/wp-json\/wp\/v2\/media\/70927"}],"wp:attachment":[{"href":"https:\/\/housfy.com\/blog\/wp-json\/wp\/v2\/media?parent=44331"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/housfy.com\/blog\/wp-json\/wp\/v2\/categories?post=44331"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/housfy.com\/blog\/wp-json\/wp\/v2\/tags?post=44331"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}