Una buena hoja de cálculo puede hacer que 162,000 declaraciones parezcan pocas, al menos hasta que alguien ordene texto como fechas.
Los datos de 'insiders' tienen fama de ser especializados. No lo son. La mayor parte del trabajo es administrativo, lo cual es una buena noticia, porque Excel es muy bueno en el trabajo administrativo cuando dejas de pedirle que sea una base de datos y le permites ser una hoja de cálculo.
Este artículo es una guía práctica para tomar una exportación CSV de declaraciones de 'insiders' y convertirla en algo que realmente pueda usar. Sin macros, sin acrobacias de Power Query, sin VBA heroico escrito por alguien que ya dejó la empresa. Solo una importación limpia, algunas recetas de tablas dinámicas y fórmulas de ejemplo que reducen las probabilidades de pasar vergüenza frente a un gestor de cartera.
Por qué Excel sigue ganando la primera ronda
La primera pasada sobre las transacciones de iniciados no suele ser un problema de modelado. Es un problema de filtrado. Usted quiere saber:
- qué emisores tienen compras recientes,
- si la actividad se agrupa entre varios iniciados,
- si las operaciones son compras en el mercado abierto o algo menos informativo,
- si las fechas de presentación de informes se retrasan con respecto a las fechas de transacción,
- y si los valores son lo suficientemente grandes como para merecer atención.
Eso es territorio de tablas dinámicas.
Un CSV decente puede responder a estas preguntas más rápido en Excel que en la mayoría de los paneles internos, en gran parte porque Excel permite al analista improvisar. Puede arrastrar campos, probar una hipótesis y abandonarla 20 segundos después sin necesidad de un ticket de ingeniería. Este es uno de los pocos lugares donde el software antiguo se justifica.
El CSV mínimo viable de iniciados
Si está descargando datos de una plataforma interna o de un proveedor, la exportación ideal incluye estas columnas:
| Columna | Por qué es importante |
|---|---|
| filing_id | Clave única, útil para la deduplicación |
| issuer_name | La empresa que le interesa |
| issuer_ticker | Agrupación y etiquetas de gráficos más fáciles |
| insider_name | Identifica a la persona que informa |
| insider_role | CEO, director, propietario del 10%, etc. |
| transaction_date | El evento económico |
| filing_date | El evento de divulgación |
| transaction_code | Compra, venta, ejercicio de opciones, donación, etc. |
| security_type | Acciones ordinarias, derivados, RSU, etc. |
| shares | Tamaño de la posición en unidades |
| price | Precio por acción, cuando corresponda |
| transaction_value | Acciones × precio, si está disponible |
| ownership_nature | Propiedad directa o indirecta |
| market | EE. UU., FR, etc., si es de mercado cruzado |
| currency | Necesario si los valores están mezclados |
Si su exportación carece de uno de estos, escriba n/a en sus notas de proceso en lugar de pretender que el campo nunca importó. La falta de datos es parte del análisis.
Antes de dinamizar, haga tres cosas
Convierta el rango en una tabla
Seleccione cualquier celda del CSV, presioneCtrl + T, confirme los encabezados. Asigne un nombre civilizado a la tabla, comotblInsider.Corrija las columnas de fecha inmediatamente
Verifique quetransaction_dateyfiling_datesean fechas reales, no texto alineado a la izquierda que pretende ser fechas. Si Excel cree que2026-03-04es prosa, su resumen mensual se convertirá en arte abstracto.Estandarizar el valor de la transacción Si el CSV no incluye
transaction_value, añádalo como una columna calculada:=[@shares]*[@price]Si falta alguno de los campos, utilice:
=IFERROR([@shares]*[@price],NA())
La configuración de cinco minutos
El libro de trabajo útil más rápido tiene tres hojas:
RawDataPivotsLookups
Esa estructura es suficiente para mantener las cosas ordenadas sin pretender que está construyendo un almacén de datos en un libro de trabajo.
Paso 1, importar el CSV limpiamente
Abra el CSV en Excel, o use Datos > Desde texto/CSV si desea más control sobre los tipos. Una vez cargado:
- convierta a una tabla,
- congele la fila superior,
- aplique filtros,
- y formatee
shares,priceytransaction_valuecomo números.
Si su archivo contiene monedas mixtas, no agregue campos de valor entre monedas a menos que tenga una columna normalizada por tipo de cambio. Esto parece obvio. También es así como nacen los gráficos deficientes.
Paso 2, añadir columnas auxiliares
Las columnas auxiliares son donde Excel pasa de ser tolerable a útil. Aquí están las que vale la pena añadir.
Valor con signo
Si sus códigos de transacción distinguen compras de ventas, cree una medida con signo para que las compras sean positivas y las ventas negativas.
=IF(OR([@transaction_code]="P",[@transaction_code]="Buy"),[@transaction_value],
IF(OR([@transaction_code]="S",[@transaction_code]="Sell"),-[@transaction_value],0))
Ajuste los códigos para que coincidan con su fuente. Los datos del Formulario 4 de EE. UU. a menudo usan P para compra y S para venta. Otros conjuntos de datos pueden usar etiquetas en lenguaje natural.
Agrupación por año-mes
Para las tablas dinámicas mensuales, una etiqueta de texto suele ser más fácil que la agrupación automática de fechas de Excel.
=TEXT([@transaction_date],"yyyy-mm")
Si prefiere una fecha real de fin de mes para ordenar y graficar:
=EOMONTH([@transaction_date],0)
Retraso de la presentación en días
Esto es útil tanto operativa como analíticamente.
=[@filing_date]-[@transaction_date]
Formatee como un número. Si el resultado no tiene sentido, sus fechas son texto.
Indicador de mercado abierto
Un simple indicador binario ayuda a aislar la parte del conjunto de datos que suele contener la mayor señal.
=IF(OR([@transaction_code]="P",[@transaction_code]="S",[@transaction_code]="Buy",[@transaction_code]="Sell"),1,0)
Una versión más refinada excluiría las operaciones de planes o los eventos de derivados si su fuente tiene esos campos.
Etiqueta de "insider"
Esto no es necesario, pero facilita la lectura de las tablas dinámicas.
=[@insider_name]&" ("&[@insider_role]&")"
Paso 3: cree su primera tabla dinámica
Inserte una tabla dinámica de tblInsider en la hoja Pivots.
La primera tabla dinámica debe responder a la pregunta directa: ¿quién compra qué?
Filas
- issuer_name
Columnas
- transaction_code
Valores
- Suma de transaction_value
- Recuento de filing_id
Filtros
- transaction_date
- insider_role
- security_type
- market
Esto le indica al instante si la actividad reciente de una empresa está dominada por compras, ventas o trámites administrativos.
Recetas de tablas dinámicas que realmente valen la pena
La mayoría de los libros de trabajo de datos de "insiders" se vuelven inutilizables porque intentan mostrar todo a la vez. Es mejor tener tres tablas dinámicas con funciones claras.
Receta 1, mapa de calor por emisor
Esta es su vista de triaje.
Filas
- issuer_name
Columnas
- year_month
Valores
- Suma de signed_value
Filtros
- open_market_flag = 1
- market
- insider_role
Lo que muestra: si una empresa tiene un grupo de compras netas o ventas netas a lo largo del tiempo.
Por qué es importante: las operaciones aisladas pueden ser ruido. Las compras netas repetidas por parte de varios insiders son más difíciles de descartar. No siempre son predictivas, pero al menos son interesantes.
Hágalo legible
- Ordene las filas por el valor firmado del último mes.
- Aplique formato condicional con una escala de rojo a verde.
- Mantenga el horizonte de fechas corto, digamos de 6 a 12 meses.
Si la tabla dinámica parece un árbol de Navidad después de esto, sus clasificaciones necesitan trabajo.
Receta 2, clasificación de insiders
Este responde quién es el más activo.
Filas
- insider_label
Valores
- Suma de transaction_value
- Recuento de filing_id
Filtros
- transaction_code
- transaction_date
- issuer_name
Lo que muestra: qué insiders están realizando las mayores operaciones y si la actividad se concentra en una persona o se distribuye entre varias.
Por qué es importante: un solo director que realiza una pequeña compra es una cosa. Que el CEO, el CFO y dos directores compren en el mismo mes es otra.
Añadir un filtro de los 10 principales
Haga clic derecho en las etiquetas de fila, aplique un Filtro de valor > 10 principales por la suma del valor de la transacción. Esta es la ruta más rápida para una lista de seguimiento utilizable.
Receta 3, monitor de puntualidad de presentación
Este es el pivote adyacente al cumplimiento.
Filas
- issuer_name
Valores
- Promedio de filing_lag_days
- Máximo de filing_lag_days
- Recuento de filing_id
Filtros
- mercado
- año_mes
Lo que muestra: la rapidez con la que aparecen las declaraciones después de la fecha de la transacción.
Por qué es importante: si usted monitorea múltiples jurisdicciones o proveedores de datos, la estructura del retraso importa. Una señal que llega tarde sigue siendo una señal, pero ya no es reciente.
Fórmulas de ejemplo para un libro de trabajo de "insiders" más limpio
Las tablas dinámicas hacen la agregación. Las fórmulas hacen el mantenimiento. Necesita ambas.
XLOOKUP para el mapeo de códigos
Suponga que sus datos brutos tienen códigos de transacción en la columna transaction_code, y usted mantiene una tabla de mapeo en Lookups con las columnas code y bucket.
Ejemplo de mapeo:
| código | categoría |
|---|---|
| P | Compra en mercado abierto |
| S | Venta en mercado abierto |
| M | Ejercicio de opción |
| G | Donación |
| F | Retención de impuestos |
Uso:
=XLOOKUP([@transaction_code],Lookups!A:A,Lookups!B:B,"Unmapped")
Esto le proporciona un campo transaction_bucket limpio para las tablas dinámicas.
Si ve Unmapped, bien. Eso significa que el libro de trabajo le está diciendo la verdad.
Señalar múltiples "insiders" que compran el mismo emisor
Una pantalla útil es si más de un "insider" compró el mismo emisor en el mismo mes.
Si tiene issuer_name, year_month, insider_name y un indicador de compra, un recuento simple puede ayudar. En una columna auxiliar:
=COUNTIFS(tblInsider[issuer_name],[@issuer_name],tblInsider[year_month],[@year_month],tblInsider[transaction_code],"P")
Si su fuente utiliza etiquetas en lugar de códigos, ajústelo en consecuencia.
Una versión más refinada cuenta "insiders" distintos, lo que el Excel moderno puede manejar con matrices dinámicas, aunque no de forma elegante dentro de cada configuración de tabla. En una hoja separada, puede usar:
=COUNTA(UNIQUE(FILTER(tblInsider[insider_name],(tblInsider[issuer_name]=A2)*(tblInsider[year_month]=B2)*(tblInsider[transaction_code]="P"))))
Es un trabalenguas, pero funciona.
Última declaración por emisor
Si desea una verificación rápida de la actualidad:
=MAXIFS(tblInsider[filing_date],tblInsider[issuer_name],[@issuer_name])
Útil para una hoja de cobertura que enumera cada emisor y la fecha de la declaración más reciente.
Valor neto por emisor
Para una tabla resumen fuera de las tablas dinámicas:
=SUMIFS(tblInsider[signed_value],tblInsider[issuer_name],A2)
Donde A2 contiene el nombre del emisor.
Precio de compra promedio solo para compras
=SUMIFS(tblInsider[transaction_value],tblInsider[issuer_name],A2,tblInsider[transaction_code],"P")/SUMIFS(tblInsider[shares],tblInsider[issuer_name],A2,tblInsider[transaction_code],"P")
Incluir en SI.ERROR si es necesario:
=IFERROR(SUMIFS(tblInsider[transaction_value],tblInsider[issuer_name],A2,tblInsider[transaction_code],"P")/SUMIFS(tblInsider[shares],tblInsider[issuer_name],A2,tblInsider[transaction_code],"P"),NA())
Cambio intermensual en el valor neto de los insiders
Si tiene una tabla de resumen mensual con el emisor en las filas y los meses en las columnas, una simple resta funciona. Si prefiere resúmenes basados en fórmulas:
=SUMIFS(tblInsider[signed_value],tblInsider[issuer_name],A2,tblInsider[year_month],B$1)-SUMIFS(tblInsider[signed_value],tblInsider[issuer_name],A2,tblInsider[year_month],TEXT(EOMONTH(DATEVALUE(B$1&"-01"),-1),"yyyy-mm"))
Este es el tipo de fórmula que hace que uno sienta nostalgia por SQL. Aun así, cumple su cometido.
Un flujo de trabajo práctico para monitorear la actividad de los insiders
El objetivo del libro de trabajo no es admirar su arquitectura. Es tomar una decisión sobre qué merece una segunda mirada.
Rutina diaria o semanal
Un flujo de trabajo sensato se ve así:
- Descargue el último CSV.
- Pegue o actualice en
RawData. - Verifique el recuento de filas y los formatos de fecha.
- Actualice todas las tablas dinámicas.
- Revise el mapa de calor del emisor para nuevas compras netas.
- Verifique si la actividad está agrupada en múltiples insiders.
- Excluya tipos de transacciones no discrecionales o de baja información.
- Exporte una lista de seguimiento corta para una investigación más profunda.
Esto se puede hacer en minutos si el libro de trabajo es estable.
Qué se considera interesante
El umbral exacto depende de su universo, pero las señales de vida habituales son:
- múltiples compras en el mercado abierto del mismo emisor,
- la participación de altos directivos en lugar de solo directores no ejecutivos,
- valores de transacción significativos en relación con el salario o las tenencias anteriores,
- compras repetidas durante varias semanas o meses,
- y presentaciones rápidas que reducen la posibilidad de que esté viendo información obsoleta.
Lo que no se considera interesante, al menos por sí solo:
- una única compra minúscula,
- ejercicios de opciones con venta inmediata para cubrir,
- regalos,
- disposiciones fiscales rutinarias,
- y valores agregados en valores mixtos sin ajuste.
Añadir segmentadores si otras personas van a usar el libro de trabajo
Si el libro de trabajo es para un equipo, los segmentadores hacen que las tablas dinámicas sean menos intimidantes.
Segmentadores útiles:
- mercado
- transaction_bucket
- insider_role
- year_month
No son necesarios. Son, sin embargo, una cortesía.
Una breve nota sobre la regulación, porque los datos están moldeados por las reglas
Los conjuntos de datos de información privilegiada no son objetos naturales. Son productos de regímenes de divulgación. Si utiliza datos del Formulario 4 de EE. UU., divulgaciones MAR europeas o anuncios PDMR del Reino Unido, los campos y el calendario reflejan obligaciones legales, no las preferencias de un analista.
Eso importa en Excel porque tendrá la tentación de comparar cosas dispares.
La línea de base de EE. UU.
En Estados Unidos, los insiders sujetos a la Sección 16 reportan muchas transacciones en el Formulario 4, generalmente dentro de los dos días hábiles posteriores a la transacción. El sistema EDGAR de la SEC proporciona las presentaciones, y las convenciones de codificación de transacciones están bien establecidas.
La base europea
En la UE, el Reglamento sobre el Abuso de Mercado, especialmente el Artículo 19, rige las divulgaciones de transacciones de los directivos. Las autoridades nacionales competentes, como la AMF en Francia, supervisan el régimen localmente. La idea general es similar, pero la mecánica de publicación y los formatos de origen varían más de lo que muchos usuarios esperan.
| Market | Regulator | Rule | Deadline | Notes |
|---|---|---|---|---|
| FR | AMF | MAR Art 19 | T+3 | Las transacciones de los directivos se divulgan bajo el Reglamento de Abuso de Mercado de la UE, con prácticas de publicación locales y anuncios del emisor que configuran la disponibilidad de los datos. |
| US | SEC | Sección 16 de la Ley de Bolsas, Formulario 4 | T+2 días hábiles | Los códigos de transacción del Formulario 4 están estandarizados y EDGAR proporciona acceso estructurado, lo que hace que los flujos de trabajo con hojas de cálculo sean relativamente sencillos según los estándares regulatorios. |
Por qué esto importa en una hoja de cálculo
Si compara los retrasos en la presentación de informes entre mercados, o agrega tipos de transacciones de múltiples jurisdicciones, necesita una taxonomía normalizada. De lo contrario, su tabla dinámica presentará una respuesta precisa a una pregunta mal planteada. Excel es inocente aquí. Simplemente es obediente.
Errores comunes y cómo no cometerlos antes del almuerzo
Los errores son repetitivos, lo cual es conveniente para un editor y menos conveniente para los analistas.
Error 1, sumar acciones brutas de diferentes valores
Diez mil acciones comunes y diez mil opciones no son lo mismo. Agregue transaction_value o una medida normalizada cuando sea posible, no unidades brutas de tipos de valores mixtos.
Error 2, ignorar la propiedad directa versus indirecta
Un fideicomiso, una cuenta conyugal o una entidad controlada pueden importar, pero no es lo mismo que la propiedad directa. Mantenga ownership_nature disponible como filtro.
Error 3, tratar todas las ventas como bajistas
Las ventas son más ruidosas que las compras. Pueden reflejar diversificación, impuestos, necesidades de liquidez o planes preestablecidos. Una tabla dinámica no puede inferir el motivo. Solo puede contar.
Error 4, dejar que Excel agrupe fechas automáticamente sin verificar
La agrupación automática de Excel es conveniente hasta que es incorrecta. Si sus fechas se importaron como texto, la agrupación fallará silenciosamente o producirá categorías extrañas. Cree su propio campo year_month y duerma mejor.
Error 5, olvidar duplicados
Si adjunta nuevos CSV con el tiempo, los registros duplicados son comunes. Mantenga un filing_id y verifique si hay repeticiones con:
=COUNTIF(tblInsider[filing_id],[@filing_id])
Cualquier valor superior a 1 merece una inspección.
Error 6, confiar en los valores sin contexto de moneda
Una compra de 500,000 € y una compra de 500,000 $ son lo suficientemente cercanas para un análisis aproximado, hasta que no lo son. Si su archivo mezcla monedas, conviértalas o mantenga el análisis local.
El dashboard útil más rápido
Si desea una configuración final que un analista pueda mantener sin motines, cree una hoja de dashboard con cuatro objetos:
- Valor neto de insiders por emisor, mes actual
- Principales insiders por valor de transacción
- Tendencia mensual de compra neta
- Retraso promedio en la presentación
Agregue segmentadores para mercado, rango de transacción y mes. Mantenga la combinación de colores sobria. Los datos de insiders ya son lo suficientemente dramáticos.
Una fórmula simple para el titular del panel
Si la celda B2 contiene el emisor seleccionado, puede obtener su último valor neto con:
=SUMIFS(tblInsider[signed_value],tblInsider[issuer_name],B2,tblInsider[year_month],TEXT(EOMONTH(TODAY(),0),"yyyy-mm"))
Y la última fecha de presentación con:
=MAXIFS(tblInsider[filing_date],tblInsider[issuer_name],B2)
Esto le da un pequeño pulso al panel sin requerir nada más sofisticado que fórmulas de hoja de cálculo.
Si tiene 60 minutos más
Después de que la versión de cinco minutos funcione, la siguiente mejora sensata es Power Query para importaciones repetibles y mapeo de códigos. No porque sea glamoroso, sino porque copiar y pegar CSVs para siempre es cómo el riesgo de proceso se cuela en tareas simples.
Dicho esto, la versión de cinco minutos es suficiente para pasar de los archivos brutos a una lista corta de nombres que vale la pena investigar. Que es el objetivo.
La recompensa es simple: un libro de Excel limpio puede transformar los informes de información privilegiada de un archivo a un monitor. El siguiente paso concreto es construir uno con su propia exportación, luego probar una sola pregunta en él, por ejemplo, si las compras agrupadas en el mercado abierto por parte de altos funcionarios en los últimos 30 días revelan nombres que su proceso actual pasa por alto. Si lo hace, tiene una herramienta. Si no lo hace, la pregunta abierta no es si Excel falló, sino si lo hizo su taxonomía de transacciones.
Fuentes y lecturas adicionales
- Boletín para Inversores de la SEC: Transacciones de iniciados y Formularios 3, 4 y 5regulator
- Descripción general del Formulario 4 de la SECregulator
- Archivos de la empresa EDGAR de la SECregulator
- ESMA, Reglamento sobre el abuso de mercadoregulator
- EUR-Lex, Reglamento (UE) n.º 596/2014, Artículo 19regulator2014-04-16
- AMF, Recursos del Reglamento sobre el abuso de mercadoregulator
- Soporte de Microsoft, Crear una tabla dinámica para analizar datos de hojas de cálculodocumentation
- Soporte de Microsoft, función XLOOKUPdocumentation
Nota editorial, este artículo fue elaborado sin investigación web en vivo (Grok no disponible en esta pasada de generación). Las fuentes perennes se citan arriba; las afirmaciones numéricas se extraen de nuestra propia instantánea de base de datos al 17-05-2026.
Última revisión · 18-05-2026 · Por Simon Azoulay · Fuentes, SEC EDGAR, AMF BDIF y otros 28 reguladores.
