.pi-art{max-width:820px;margin:0 auto;padding:8px 20px;color:#2b3242;line-height:1.75;font-size:17px}.pi-art h1{font-size:36px;font-weight:700;color:#1A2340;line-height:1.25;margin:0 0 22px}.pi-art h2{color:#1A2340;font-size:28px;line-height:1.3;margin:48px 0 14px;font-weight:700;scroll-margin-top:90px}.pi-art h3{color:#1A3A6E;font-size:20px;margin:32px 0 8px;font-weight:600}.pi-art p{margin:0 0 18px}.pi-art strong{color:#1A2340}.pi-art ul{margin:0 0 20px;padding-left:0;list-style:none}.pi-art ul li{position:relative;padding-left:26px;margin-bottom:11px}.pi-art ul li:before{content:»»;position:absolute;left:6px;top:12px;width:7px;height:7px;border-radius:50%;background:#4A7FD4}.pi-art ol{margin:0 0 20px;padding-left:22px}.pi-art ol li{margin-bottom:11px;padding-left:6px}.pi-art a{color:#1A3A6E;text-decoration:underline;text-underline-offset:2px}.pi-art a:hover{color:#4A7FD4}.pi-entradilla{font-size:19px;line-height:1.65;color:#39415a;border-left:4px solid #4A7FD4;padding-left:20px;margin:0 0 34px}.pi-toc{background:#F4F7FC;border:1px solid #dfe6f2;border-radius:10px;padding:22px 26px;margin:0 0 40px}.pi-toc h2{font-size:16px;margin:0 0 12px;text-transform:uppercase;letter-spacing:.06em;color:#5b6579}.pi-toc ol{margin:0;padding-left:20px}.pi-toc ol li{margin-bottom:7px}.pi-toc a{text-decoration:none;color:#1A3A6E}.pi-toc a:hover{text-decoration:underline}.pi-code{background:#1A2340;color:#dbe4f5;border-radius:8px;padding:14px 18px;margin:0 0 18px;font-family:’SFMono-Regular’,Consolas,’Liberation Mono’,Menlo,monospace;font-size:14.5px;line-height:1.6;overflow-x:auto;white-space:pre}.pi-code .c{color:#7FA8E8}.pi-code-cap{font-size:13.5px;color:#6a7385;margin:-10px 0 22px}.pi-tabla{width:100%;border-collapse:collapse;margin:24px 0;font-size:15.5px}.pi-tabla th{background:#1A2340;color:#fff;text-align:left;padding:12px 14px;font-weight:600}.pi-tabla td{padding:11px 14px;border-bottom:1px solid #e3e8f0;vertical-align:top}.pi-tabla tr:nth-child(even) td{background:#f8fafd}.pi-tabla code{background:#EFF5FF;color:#1A3A6E;padding:1px 6px;border-radius:4px;font-size:14px;font-family:’SFMono-Regular’,Consolas,monospace}.pi-box{border-radius:0 8px 8px 0;padding:20px 24px;margin:26px 0}.pi-box p:last-child{margin-bottom:0}.pi-box-t{display:block;font-weight:700;margin-bottom:6px;font-size:15px;text-transform:uppercase;letter-spacing:.05em}.pi-tip{background:#EFF5FF;border-left:4px solid #4A7FD4}.pi-tip .pi-box-t{color:#1A3A6E}.pi-warn{background:#FFF8E6;border-left:4px solid #E0A81C}.pi-warn .pi-box-t{color:#8a660b}.pi-err{background:#FDF0EF;border-left:4px solid #D06054}.pi-err .pi-box-t{color:#9c392e}.pi-cta{background:linear-gradient(135deg,#1A3A6E 0%,#1A2340 100%);border-radius:12px;padding:32px;margin:44px 0;text-align:center}.pi-cta h3{color:#fff;margin:0 0 8px;font-size:23px}.pi-cta p{color:#b9c4dc;margin:0 0 20px;font-size:16px}.pi-cta a{display:inline-block;background:#4A7FD4;color:#fff;padding:13px 30px;border-radius:8px;text-decoration:none;font-weight:600;font-size:16px}.pi-cta a:hover{background:#3E6DBB;color:#fff}.pi-faq{border-top:1px solid #e3e8f0;margin-top:8px}.pi-faq details{border-bottom:1px solid #e3e8f0}.pi-faq summary{cursor:pointer;padding:18px 34px 18px 0;font-weight:600;color:#1A2340;position:relative;list-style:none;font-size:17px}.pi-faq summary::-webkit-details-marker{display:none}.pi-faq summary:after{content:»+»;position:absolute;right:6px;top:15px;font-size:24px;color:#4A7FD4;font-weight:400;line-height:1}.pi-faq details[open] summary:after{content:»2212″}.pi-faq .pi-faq-b{padding:0 0 20px}.pi-faq .pi-faq-b p:last-child{margin-bottom:0}.pi-rel{background:#F4F7FC;border-radius:12px;padding:26px 30px;margin:40px 0 24px}.pi-rel h3{margin:0 0 14px;color:#1A2340}.pi-rel ul{margin:0}.pi-rel ul li{margin-bottom:9px}.pi-legal{font-size:13.5px;color:#6a7385;line-height:1.6;border-top:1px solid #e3e8f0;padding-top:20px;margin-top:36px}.pi-fuentes{border-top:2px solid #1A2340;padding-top:22px;margin-top:44px}.pi-fuentes h2{font-size:20px;margin:0 0 6px;text-transform:uppercase;letter-spacing:.06em;color:#1A2340}.pi-fuentes .pi-fuentes-sub{font-size:14px;color:#6a7385;margin:0 0 16px}.pi-fuentes ol{margin:0;padding-left:22px}.pi-fuentes li{font-size:15px;color:#3a4358;margin-bottom:12px;line-height:1.6}.pi-fuentes li a{word-break:break-word}.pi-fuentes .pi-fuente-nota{display:block;font-size:13.5px;color:#6a7385;margin-top:2px}@media(max-width:700px){.pi-art{padding:8px 16px;font-size:16px}.pi-art h1{font-size:28px}.pi-art h2{font-size:24px}.pi-entradilla{font-size:17px}.pi-rel,.pi-toc{padding:22px 18px}.pi-cta{padding:26px 20px}.pi-code{font-size:13px}.pi-tabla{font-size:14px}.pi-tabla th,.pi-tabla td{padding:9px 9px}}

Cómo calcular la rentabilidad real de tu cartera en Google Sheets (XIRR)

CM
Escrito por Carlos M.
Fundador de PlanInversor · Publicado el 30 de septiembre de 2026

Metodología y fuentes →

Si inviertes aportando cada mes, el porcentaje que te muestra tu bróker casi con seguridad no es tu rentabilidad. Ni el que sale de dividir la ganancia entre lo aportado. El problema no es de cálculo, es de pregunta: la mayoría de las cifras responden a algo distinto de lo que tú quieres saber. La función XIRR responde a la pregunta correcta, y está en Google Sheets desde siempre.

Por qué el porcentaje que ves está mal

Imagina que llevas dos años aportando 100 € al mes. Has puesto 2.400 € y tu cartera vale 2.700 €. Has ganado 300 €. ¿Cuál es tu rentabilidad?

La respuesta intuitiva es 300 entre 2.400, un 12,5 %. Y como han pasado dos años, muchos dividen entre dos y concluyen que ganan un 6,25 % anual.

Esa cifra está mal, y no por poco: tu rentabilidad real anualizada es del 11,76 %, casi el doble.

El motivo es sencillo cuando se ve. Los 100 € que aportaste el primer mes llevan dos años trabajando. Los que aportaste el mes pasado llevan treinta días. No puedes tratar a todos los euros como si hubieran estado invertidos el mismo tiempo, porque no lo han estado. De media, tu dinero solo ha estado dentro algo más de un año, no dos.

Este problema es propio de quien invierte con aportaciones periódicas. Si hubieras metido los 2.400 € de golpe el primer día, la división simple funcionaría. En cuanto aportas cada mes, deja de funcionar.

Dos preguntas distintas que se confunden

Hay dos formas legítimas de medir una rentabilidad, y responden a preguntas diferentes:

Medida Qué pregunta responde Para quién
Rentabilidad ponderada por tiempo (TWR) ¿Qué tal lo ha hecho el fondo o el índice, al margen de cuándo entró el dinero? Gestoras, para comparar productos entre sí
Rentabilidad ponderada por dinero (MWR o TIR) ¿Qué tal lo he hecho yo, con mis aportaciones y en mis fechas? Tú

Las fichas de los fondos publican la primera, porque es la única forma justa de comparar dos productos: neutraliza el efecto de cuándo entra y sale el dinero de los partícipes, algo que el gestor no controla.

Pero esa cifra no es la tuya. Si el fondo subió un 20 % en enero y tú entraste en febrero, ese 20 % aparece en su ficha y no en tu bolsillo. Lo que tú quieres saber es la segunda: qué ha rendido tu dinero, entrando cuando entró.

La consecuencia práctica

Que tu rentabilidad no coincida con la del fondo no significa que algo esté mal. Significa que estáis midiendo cosas distintas. Es normal y esperable, y es exactamente lo que XIRR pone números.

Qué es XIRR y por qué es la tuya

XIRR calcula la tasa de rendimiento anual que hace que todos tus movimientos de dinero cuadren, teniendo en cuenta la fecha exacta de cada uno. Es la versión con fechas reales de la TIR de toda la vida.

En la práctica hace esto: coge cada aportación con su fecha, coge el valor actual de tu cartera con la fecha de hoy, y busca el porcentaje anual que explica el resultado. Un euro que lleva tres años dentro pesa más que uno que lleva tres semanas, que es justo lo que hacía falta.

En Google Sheets la función se llama XIRR si tu hoja está en inglés y TIR.NO.PER si está en español. Son la misma función.

=XIRR(rango_de_importes; rango_de_fechas)
=TIR.NO.PER(rango_de_importes; rango_de_fechas) → en hojas en español
El punto y coma

Como en el resto de funciones, si tu hoja está configurada en español el separador es el punto y coma, no la coma. Copiar un ejemplo de un tutorial en inglés tal cual devuelve error. Puedes comprobar la configuración en Archivo → Configuración → Configuración regional.

Montarlo en Google Sheets paso a paso

Necesitas dos columnas y cinco minutos.

1. Una columna de fechas

En la columna A, la fecha de cada aportación, una por fila. Al final del todo, la fecha de hoy.

2. Una columna de importes

En la columna B, lo que aportaste en cada una de esas fechas en negativo. Y en la última fila, el valor actual de tu cartera en positivo.

A · Fecha B · Importe
1 01/10/2024 −100
2 01/11/2024 −100
3 01/12/2024 −100
… … …
24 01/09/2026 −100
25 30/09/2026 +2.700

3. La fórmula

=TIR.NO.PER(B1:B25; A1:A25)

Da un número decimal. Dale formato de porcentaje a la celda y tendrás tu rentabilidad anualizada real.

Eso es todo. No hace falta que las aportaciones sean iguales ni que estén espaciadas de forma regular: XIRR acepta importes distintos en fechas irregulares, que es precisamente su gracia frente a fórmulas más simples.

Los signos: el error que falla a todo el mundo

Si solo te llevas una cosa de este artículo, que sea esta. La fórmula piensa en términos de flujos de caja desde tu punto de vista:

  • Negativo es dinero que sale de tu bolsillo: cada aportación, cada compra.
  • Positivo es dinero que entra o que tienes: el valor actual de la cartera, un reembolso, un dividendo cobrado y no reinvertido.
Si pones todo con el mismo signo, no funciona

XIRR necesita al menos un importe negativo y uno positivo para tener solución. Si escribes las aportaciones en positivo y el valor final también, la fórmula devuelve #NUM!. No es un fallo tuyo de concepto: es que matemáticamente no hay nada que resolver.

El otro punto donde se tropieza: el valor final no es una aportación más, es una foto de lo que vale tu cartera hoy. Va en la última fila, con la fecha de hoy y en positivo, aunque no hayas vendido nada.

Un ejemplo completo con números

Volvamos al caso del principio: 100 € al mes durante 24 meses, cartera que hoy vale 2.700 €. Mismo dinero aportado, mismo valor final. Lo único que cambia es cuándo entró:

Escenario Aportado Valor hoy Rentabilidad anual real
2.400 € de golpe, hace dos años 2.400 € 2.700 € 6,07 %
100 € al mes durante 24 meses 2.400 € 2.700 € 11,76 %

Los dos han puesto lo mismo y tienen lo mismo. Pero el segundo ha conseguido ese resultado con el dinero invertido la mitad de tiempo, así que su rentabilidad anual es casi el doble. Ninguna de las dos cifras es más «verdadera»: describen situaciones distintas, y la división simple no distingue entre ellas.

Por eso comparar tu porcentaje con el de un amigo, o con el de un índice, sin saber cómo se ha calculado cada uno, lleva a conclusiones equivocadas. Es uno de los errores más comunes al invertir, y de los más silenciosos.

Errores frecuentes y qué significan

Error Causa habitual Solución
#NUM! Todos los importes tienen el mismo signo Aportaciones en negativo, valor final en positivo
#NUM! con signos correctos La tasa real está fuera del rango que prueba la función Añade una estimación inicial: =TIR.NO.PER(B1:B25; A1:A25; 0,1)
#VALUE! o #¡VALOR! La columna de fechas contiene texto, no fechas Da formato de fecha a la columna; si se alinean a la izquierda, son texto
Error de fórmula Separador de argumentos Punto y coma en hojas en español
Un resultado absurdo (−99 %, 400 %) Periodo muy corto o una fecha mal tecleada Revisa las fechas; en periodos de pocos meses la anualización exagera

Cuándo XIRR no es la medida adecuada

La honestidad exige decir también dónde no sirve:

  • En periodos muy cortos. Anualizar tres meses de rentabilidad produce cifras espectaculares y sin sentido. Por debajo de un año, mira la ganancia en euros y no el porcentaje.
  • Para juzgar a un gestor o comparar dos fondos. Ahí la medida correcta es la ponderada por tiempo, que es la que publican las fichas. XIRR mide tus decisiones de aportación, no la calidad del producto.
  • Si quieres saber si vas por buen camino. Para eso sirve más una proyección que una foto del pasado: puedes hacerla con el simulador.

Y un recordatorio que se olvida siempre: XIRR devuelve rentabilidad nominal y antes de impuestos. Para saber qué has ganado de verdad hay que descontar la inflación y, cuando reembolses, la fiscalidad.

Conectarlo con tu hoja de seguimiento

Si ya llevas tu cartera en una hoja de seguimiento en Google Sheets, esto encaja sin tocar nada de lo que tienes. Crea una pestaña nueva llamada «Flujos» con las dos columnas, y en la última fila enlaza el valor actual a la celda de totales de tu hoja principal:

=Cartera!F20 → el valor total, actualizado solo

Si esa celda se actualiza con la función GOOGLEFINANCE, tu XIRR se recalcula solo cada vez que abres el documento. La única fila que tendrás que añadir a mano es la de cada aportación nueva.

Qué hacer con los dividendos

Si tienes ETFs de distribución y reinviertes los dividendos, no los apuntes: ya están dentro del valor de la cartera. Si los cobras y te los gastas, sí van como una fila positiva en su fecha. Con ETFs de acumulación no tienes que hacer nada, porque nunca salen del fondo.

Ya sabes dónde estás. ¿Y a dónde llegas?

XIRR te dice lo que ha rendido tu dinero hasta hoy. El simulador te dice a dónde puede llegar si mantienes el ritmo de aportaciones.

Abrir el simulador gratis →

📘
Lectura recomendada

El pequeño libro para invertir con sentido común — John C. Bogle

Ahora que sabes medir tu rentabilidad real, verás que cada décima de comisión cuenta. Bogle, fundador de Vanguard, dedica su libro justo a eso: por qué los costes se comen la rentabilidad a largo plazo y por qué un fondo indexado barato acaba ganando a la mayoría de gestores.

Ver precio en Amazon

Enlace de afiliado: si compras a través de él, PlanInversor recibe una pequeña comisión sin coste adicional para ti. En calidad de Afiliado de Amazon, obtengo ingresos por las compras adscritas que cumplen los requisitos aplicables. Tienes más detalle en nuestra selección de los mejores libros de inversión indexada.

Preguntas frecuentes

¿Por qué mi rentabilidad no coincide con la que publica el fondo?

Porque miden cosas distintas. La ficha del fondo publica la rentabilidad ponderada por tiempo, que ignora cuándo entró y salió el dinero de cada partícipe. XIRR mide la tuya, con tus aportaciones en tus fechas. Que no coincidan es lo normal, no un error.

¿XIRR o TIR.NO.PER? ¿Cuál uso?

Son la misma función con distinto nombre según el idioma de tu hoja. En Google Sheets en español se llama TIR.NO.PER; en inglés, XIRR. Si copias una fórmula y te da error de nombre, prueba con la otra.

¿Tengo que apuntar cada compra por separado?

Basta con una fila por movimiento de dinero: cada aportación que hagas. No hace falta desglosar por producto si lo que quieres es la rentabilidad del conjunto. Si quieres medir un ETF concreto, haz una tabla aparte solo con sus movimientos.

¿Qué pongo si he vendido algo por el camino?

Una fila positiva con el importe que recibiste y su fecha. Es dinero que salió de la cartera y entró en tu cuenta. El valor final de la última fila será entonces solo lo que te queda invertido.

¿Sirve esto para fondos indexados además de para ETFs?

Sí. A XIRR le da igual el producto: solo necesita importes y fechas. Funciona igual con fondos indexados, ETFs, planes de pensiones o una mezcla de todo, siempre que apuntes cada movimiento de dinero con su fecha.

¿Cada cuánto conviene recalcularlo?

Una vez al trimestre es más que suficiente para una cartera a largo plazo, y mirarlo cada semana solo invita a tomar decisiones por impulso. Si la hoja se actualiza sola, el número estará ahí cuando quieras verlo.

Fuentes

Consultadas en septiembre de 2026.

  1. Google — Documentación oficial de la función TIR.NO.PER (XIRR), Ayuda de Editores de Documentos de Google.Sintaxis, argumentos, requisito de signos opuestos y uso de la estimación inicial.
  2. Google — Documentación oficial de la función TIR (IRR), para flujos a intervalos regulares.Requisito de incluir al menos un flujo negativo y uno positivo.
  3. CFA Institute — GIPS Guidance Statement on Calculation Methodology (PDF).Norma del sector sobre rentabilidad ponderada por tiempo y por dinero, y por qué la primera es la que publican las gestoras.