Une feuille Excel propre vaut souvent mieux qu’un terminal brillant, surtout quand il faut trier 162 000 déclarations d’initiés avant le café.
Les données d’initiés ont une réputation injuste. On les imagine réservées aux juristes de conformité, ou aux hedge funds qui aiment les acronymes. En pratique, une bonne partie du travail consiste à faire trois choses très ordinaires, télécharger un CSV, nettoyer quatre colonnes, puis poser un tableau croisé dynamique. Le glamour est limité. L’utilité, elle, est réelle.
Cet article montre comment monter en cinq minutes un mini poste de contrôle dans Excel à partir d’un export CSV de transactions d’initiés. L’objectif n’est pas de faire un système institutionnel. L’objectif est plus modeste et plus rentable, obtenir rapidement une vue exploitable des achats et ventes, par société, par initié, par période, avec quelques recettes de formules qui évitent les faux signaux les plus fréquents.
Nous restons volontairement dans un cadre sobre, CSV, Excel, tableaux croisés, formules natives. Pas de macro obligatoire, pas de Power BI, pas de promesse absurde du type « alpha en un clic ». Les initiés ont déjà assez de formulaires à remplir, inutile d’en rajouter.
Pourquoi Excel reste l’outil le plus rapide
Excel n’est pas élégant. Il est omniprésent. C’est précisément son avantage pour les données d’initiés. Les fichiers publiés par les régulateurs et les émetteurs arrivent souvent sous forme tabulaire, CSV, XLSX ou HTML exportable. Le chemin le plus court entre une divulgation et une lecture utile passe donc souvent par un classeur.
Le vrai besoin, c’est la vitesse de tri
Quand on ouvre un lot de déclarations d’initiés, les premières questions sont presque toujours les mêmes :
- Qui a acheté, et qui a vendu ?
- Sur quelle valeur ?
- À quelle date ?
- Pour quel montant approximatif ?
- Est-ce une opération de marché, une attribution, une levée d’options, un transfert interne ou autre chose ?
Un tableau croisé dynamique répond très vite aux trois premières. Deux colonnes calculées répondent à la quatrième. Un minimum de taxonomie répond à la cinquième.
Les régulateurs publient, mais ne résument pas pour vous
En Europe, le cadre de référence est le règlement MAR, en particulier l’article 19 pour les transactions des personnes exerçant des responsabilités dirigeantes et des personnes qui leur sont étroitement liées. Aux États-Unis, la lecture passe souvent par les formulaires Section 16, notamment Forms 3, 4 et 5. Les données existent. Leur lisibilité, elle, varie fortement selon la source.
| Market | Regulator | Rule | Deadline | Notes |
|---|---|---|---|---|
| FR | AMF | MAR Art 19 | T+3 | Déclarations des dirigeants et personnes liées, seuil agrégé annuel de 5 000 EUR sauf relèvement national. |
| UE | ESMA / autorités nationales | MAR Art 19 | T+3 | Cadre harmonisé, mise en oeuvre et diffusion selon les autorités nationales. |
| US | SEC | Section 16, Form 4 | T+2 | Déclarations des dirigeants, administrateurs et détenteurs de plus de 10 %. |
Le point pratique est simple, les délais de publication influencent la fraîcheur de votre fichier. Si vous analysez des achats d’initiés européens, vous travaillez souvent avec une visibilité à T+3 ouvrés. Ce n’est pas du temps réel. Ce n’est pas non plus de l’archéologie.
Le CSV de départ, colonnes minimales et pièges immédiats
Avant Excel, il y a le fichier. Si le fichier est mal structuré, le tableau croisé sera impeccable, et faux. C’est une performance fréquente.
Les colonnes minimales à exiger
Pour un usage de base, votre CSV doit contenir au moins les colonnes suivantes :
| Colonne | Rôle | Exemple |
|---|---|---|
| issuer | Émetteur | ABC SA |
| ticker | Code mnémonique | ABC |
| insider_name | Nom du déclarant | Jean Dupont |
| insider_role | Fonction | Directeur général |
| related_party | Oui/Non ou détail | Non |
| transaction_date | Date de transaction | 2026-03-12 |
| filing_date | Date de publication | 2026-03-14 |
| transaction_type | Nature de l’opération | Achat |
| instrument | Type d’instrument | Action ordinaire |
| price | Prix unitaire | 12,45 |
| quantity | Quantité | 5000 |
| currency | Devise | EUR |
| venue | Lieu d’exécution | XPAR |
| isin | Identifiant | FR0000000000 |
Vous pouvez vivre sans ISIN. Vous ne pouvez pas vivre longtemps sans type de transaction fiable.
Trois normalisations à faire avant toute analyse
1. Uniformiser les dates
Excel adore interpréter les dates de façon créative. Un 03/04/2026 peut devenir 3 avril ou 4 mars selon les paramètres régionaux. Si vous contrôlez l’export, préférez YYYY-MM-DD. Sinon, importez via Données > À partir d’un texte/CSV et forcez le type de colonne.
2. Créer un montant brut
Ajoutez une colonne gross_value :
=[@price]*[@quantity]
Si le prix ou la quantité est vide, utilisez une version prudente :
=IF(OR([@price]="",[@quantity]=""),"",[@price]*[@quantity])
Le montant brut n’est pas parfait, notamment pour les opérations complexes ou les déclarations agrégées, mais c’est la base la plus utile pour un premier tri.
3. Créer un signe économique
Le type réglementaire n’est pas toujours directement exploitable. Une levée d’options n’est pas un achat de marché. Un transfert entre comptes n’est pas une vente. Il faut donc créer une colonne signed_value qui applique un signe à l’opération.
Exemple simple :
=IF([@transaction_type]="Achat",[@gross_value],IF([@transaction_type]="Vente",-[@gross_value],0))
Exemple un peu plus robuste avec correspondance sur une table de mapping MapTypes :
=IFERROR([@gross_value]*XLOOKUP([@transaction_type],MapTypes[transaction_type],MapTypes[sign]),0)
Cette petite table de correspondance est l’une des meilleures assurances qualité du classeur. Elle évite de traiter une attribution gratuite comme un achat discrétionnaire. Ce serait flatteur pour l’initié, mais faux.
Les trois tableaux croisés qui font 80 % du travail
Une fois le CSV importé dans un tableau Excel, Ctrl + T, vous pouvez construire un tableau croisé dynamique proprement. Placez le tableau source dans une feuille Data, les tableaux croisés dans une feuille Dashboard, les mappings dans une feuille Map. Cette séparation évite les accidents de copier-coller, sport national des équipes pressées.
1. Achats vs ventes par mois
Objectif
Voir si l’activité nette des initiés est orientée à l’achat ou à la vente sur une période.
Configuration du tableau croisé
- Lignes :
transaction_date - Colonnes :
economic_bucketoutransaction_type_group - Valeurs : Somme de
gross_valueousigned_value
Ensuite, groupez les dates par mois et années.
Variante recommandée
Si vous utilisez signed_value, mettez seulement :
- Lignes :
transaction_month - Valeurs : Somme de
signed_value
Ajoutez une colonne source transaction_month :
=EOMONTH([@transaction_date],0)
Puis formatez la cellule en mmm yyyy.
Ce que vous cherchez
- Une série d’achats nets concentrés sur un ou deux mois.
- Une vague de ventes qui suit une forte hausse du titre.
- Une activité nulle ou quasi nulle, souvent plus informative qu’elle n’en a l’air sur certaines petites capitalisations.
Ce qu’il ne faut pas surinterpréter
Une hausse des ventes brutes n’est pas nécessairement baissière. Les ventes liées à rémunération, fiscalité ou diversification personnelle sont fréquentes. Le tableau croisé dit qu’il s’est passé quelque chose. Il ne dit pas encore pourquoi.
2. Activité par émetteur
Objectif
Identifier rapidement quelles sociétés concentrent les opérations les plus significatives.
Configuration du tableau croisé
- Lignes :
issuer - Filtres :
transaction_date,economic_bucket,instrument - Valeurs :
- Somme de
gross_value - Nombre de
insider_name - Nombre de
transaction_date
- Somme de
Ajoutez ensuite un tri décroissant sur la somme de gross_value.
Deux colonnes calculées utiles
Nombre d’initiés distincts
Le distinct count est plus simple si vous chargez les données dans le Modèle de données Excel. Si vous ne le faites pas, une alternative consiste à construire une table auxiliaire ou à passer par Power Pivot. Pour un usage rapide, le nombre de lignes suffit souvent, avec prudence.
Taille moyenne des opérations
Dans la source :
=IF([@gross_value]="","",[@gross_value])
Dans le tableau croisé, utilisez la moyenne de gross_value.
Lecture
Un seul dirigeant qui achète 20 000 EUR n’envoie pas le même signal que trois dirigeants qui achètent chacun 20 000 EUR sur dix jours. Le tableau par émetteur doit donc être lu avec, au minimum, le montant total et le nombre de déclarants.
C’est l’une des erreurs classiques des lecteurs pressés, confondre intensité monétaire et largeur du signal. Les initiés, eux, ne confondent pas. Ils savent très bien combien de personnes ont signé.
3. Activité par initié et par rôle
Objectif
Distinguer les opérations du directeur général, du directeur financier, des administrateurs non exécutifs, ou des personnes liées.
Configuration du tableau croisé
- Lignes :
insider_role, puisinsider_name - Colonnes :
economic_bucket - Valeurs : Somme de
gross_value, Nombre de transactions - Filtres :
issuer,transaction_month
Pourquoi ce pivot est souvent le plus utile
Tous les initiés ne se valent pas. La littérature académique sur les transactions d’initiés montre depuis longtemps que le contenu informationnel varie selon le type d’initié, le contexte de l’opération et la nature achat ou vente. Les achats discrétionnaires des dirigeants opérationnels ont généralement plus de poids analytique que des ventes isolées d’administrateurs externes, surtout si ces ventes relèvent de gestion patrimoniale.
Une formule pour nettoyer les rôles
Les libellés de fonction sont souvent hétérogènes. Créez une colonne role_group :
=IFERROR(XLOOKUP([@insider_role],RoleMap[raw_role],RoleMap[role_group]),"Autre")
Exemples de regroupement :
- CEO, DG, Chief Executive Officer →
CEO - CFO, DAF, Chief Financial Officer →
CFO - Director, Board Member, Administrateur →
Board - Personne liée, spouse, family trust →
Related party
Ce n’est pas de la cosmétique. C’est ce qui transforme un fichier réglementaire en outil de lecture.
Les formules qui évitent les erreurs embarrassantes
Les tableaux croisés sont rapides. Les colonnes calculées sont ce qui les rend intelligents. Voici les recettes les plus utiles pour un workflow simple.
Convertir une date texte en vraie date
Si votre date arrive comme texte 2026-03-12 :
=DATE(LEFT([@transaction_date],4),MID([@transaction_date],6,2),RIGHT([@transaction_date],2))
Si Excel reconnaît déjà la date, ne compliquez pas votre vie. Il s’en charge, parfois.
Créer une clé unique de contrôle
Utile pour repérer les doublons :
=[@issuer]&"|"&[@insider_name]&"|"&TEXT([@transaction_date],"yyyymmdd")&"|"&[@transaction_type]&"|"&[@quantity]&"|"&[@price]
Puis une colonne is_duplicate :
=COUNTIF([unique_key],[@unique_key])>1
Ou, si vous travaillez en références structurées sur une colonne du tableau :
=COUNTIF(Data[unique_key],[@unique_key])>1
Détecter les transactions de faible qualité analytique
Exemple de colonne analysis_flag :
=IF(OR([@transaction_type]="Attribution",[@transaction_type]="Transfert",[@transaction_type]="Exercice d'option"),"Low signal","Review")
Version plus propre avec table de mapping :
=IFERROR(XLOOKUP([@transaction_type],MapTypes[transaction_type],MapTypes[analysis_flag]),"Review")
Extraire le mois de reporting
=TEXT([@transaction_date],"yyyy-mm")
Pratique pour les regroupements simples, moins propre qu’une vraie date de fin de mois pour les chronologies.
Récupérer un secteur ou une capitalisation via table auxiliaire
Supposons une table IssuerMap avec issuer et sector :
=XLOOKUP([@issuer],IssuerMap[issuer],IssuerMap[sector],"n/a")
Le n/a est préférable à une invention. C’est aussi un excellent résumé de nombreux enrichissements de données mal documentés.
Construire un mini dashboard en cinq minutes
Le titre de l’article promet cinq minutes. Tenons-nous à un protocole réaliste.
Minute 1, import propre
- Ouvrir Excel.
- Données > À partir d’un texte/CSV.
- Vérifier séparateur, encodage UTF-8, types de colonnes.
- Charger dans une feuille
Data. - Convertir la plage en tableau,
Ctrl + T.
Minute 2, colonnes calculées
Ajouter :
gross_valuesigned_valuetransaction_monthrole_groupanalysis_flagunique_key
Minute 3, premier pivot, flux mensuel
Créer un tableau croisé Pivot_Monthly :
- Lignes :
transaction_month - Valeurs : somme de
signed_value - Filtre :
analysis_flag = ReviewouHigh signal
Ajouter un graphique en colonnes si vous voulez une lecture visuelle immédiate.
Minute 4, deuxième pivot, top émetteurs
Créer Pivot_Issuers :
- Lignes :
issuer - Valeurs : somme de
gross_value, nombre de transactions - Filtres :
economic_bucket = Open-market buy
Trier décroissant sur le montant.
Minute 5, troisième pivot, initiés clés
Créer Pivot_Roles :
- Lignes :
role_group,insider_name - Valeurs : somme de
gross_value - Filtres :
issuer,transaction_month
Ajoutez deux segments, issuer et transaction_month, si vous utilisez une version d’Excel qui les gère confortablement.
Ce qu’Excel sait faire, et ce qu’il ne faut pas lui demander
Excel est excellent pour l’exploration rapide. Il devient moins aimable quand vous lui demandez de faire de la gouvernance de données sans gouvernance.
Ce qu’il fait très bien
1. Filtrer les opérations pertinentes
Avec une bonne taxonomie, vous pouvez isoler :
- achats de marché,
- ventes de marché,
- opérations de rémunération,
- exercices d’options,
- transferts,
- opérations de personnes liées.
2. Agréger vite
Montants, comptes, fréquences, comparaisons mensuelles. Pour un analyste, c’est l’essentiel du premier passage.
3. Produire un support de discussion
Un bon classeur permet de répondre rapidement à des questions de comité d’investissement, de conformité ou de direction de la recherche. Il ne remplace pas le jugement. Il le rend plus rapide.
Ce qu’il fait mal, ou pas seul
1. Déduplication complexe
Si plusieurs sources republient la même déclaration avec des variations mineures de format, Excel peut aider, mais pas garantir un résultat propre sans règles plus avancées.
2. Normalisation sémantique à grande échelle
Les libellés de transaction diffèrent selon les juridictions, les émetteurs et les fournisseurs. À petite échelle, une table de mapping suffit. À grande échelle, il faut une taxonomie maintenue et des contrôles.
3. Analyse événementielle sérieuse
Si vous voulez mesurer la performance post-transaction, contrôler les biais de sélection, neutraliser les effets de taille ou de momentum, Excel peut servir de brouillon. Pas de destination finale.
Un mot utile sur l’interprétation, parce que le tableau croisé ne pense pas
Les données d’initiés sont séduisantes parce qu’elles donnent l’impression d’un accès direct à la conviction des dirigeants. Cette impression est parfois juste, parfois paresseuse.
Les achats ont généralement plus de contenu que les ventes
C’est l’un des résultats les plus robustes de la littérature. Les achats discrétionnaires, surtout lorsqu’ils sont réalisés après une baisse du titre ou par plusieurs initiés, ont historiquement montré un contenu informationnel supérieur aux ventes. Les ventes, elles, sont plus ambiguës.
Le contexte compte plus que le montant brut
Un achat de 50 000 EUR par un CEO d’une petite société peut être plus significatif qu’un achat de 200 000 EUR dans une grande capitalisation si le premier représente une prise de risque personnelle plus marquée et intervient à un moment stratégique. Excel ne sait pas cela tout seul. Il faut enrichir la lecture avec la taille de l’émetteur, l’historique de l’initié, le calendrier des résultats et la nature exacte de l’opération.
Le retard réglementaire n’annule pas l’intérêt
Oui, les déclarations arrivent avec délai. Non, cela ne les rend pas inutiles. Beaucoup de signaux liés aux achats groupés ou aux changements de régime d’activité se lisent encore après publication, notamment dans les segments moins couverts.
Managers' personal purchases of company stock are generally followed by positive abnormal returns, whereas sales are less informative because they can be motivated by diversification or liquidity needs.
La littérature n’a pas besoin d’être transformée en slogan. Elle dit quelque chose de simple, l’achat discrétionnaire mérite souvent plus d’attention que la vente isolée. C’est déjà beaucoup.
Une architecture de classeur qui tient dans le temps
Si votre fichier doit vivre plus d’une semaine, structurez-le dès le départ.
Feuille 1, Data
Le tableau brut importé, plus les colonnes calculées.
Feuille 2, MapTypes
Votre correspondance des types de transaction :
| transaction_type | sign | economic_bucket | analysis_flag |
|---|---|---|---|
| Achat | 1 | Open-market buy | High signal |
| Vente | -1 | Open-market sell | Review |
| Attribution | 0 | Compensation | Low signal |
| Exercice d'option | 0 | Option exercise | Low signal |
| Transfert | 0 | Transfer | Low signal |
Feuille 3, RoleMap
Normalisation des fonctions.
Feuille 4, Dashboard
Les trois pivots, quelques segments, et éventuellement une zone de commentaires.
Feuille 5, Checks
Contrôles simples :
- nombre de lignes,
- nombre de doublons,
- nombre de dates invalides,
- nombre de montants vides,
- répartition par devise,
- part des transactions non mappées.
Cette feuille est rarement admirée. Elle est souvent ce qui sauve le reste.
Pour aller un cran plus loin sans quitter Excel
Si vous voulez enrichir le dispositif sans basculer dans un projet de données, voici trois extensions raisonnables.
Ajouter un calendrier d’événements
Créez une table avec :
issuerearnings_dateevent_type
Puis utilisez XLOOKUP ou MINIFS pour mesurer la distance entre transaction et publication de résultats. Une transaction juste avant ou juste après des résultats n’a pas la même lecture.
Ajouter une colonne de taille relative
Si vous avez la capitalisation ou la rémunération annuelle du dirigeant, calculez un ratio. Un montant absolu est utile. Un montant relatif l’est davantage.
Exemple :
=IFERROR([@gross_value]/[@market_cap],"")
ou
=IFERROR([@gross_value]/[@annual_cash_comp],"")
Ajouter un filtre de récidive
Combien de fois cet initié a-t-il acheté dans les 12 derniers mois ?
Dans Excel moderne, cela devient faisable avec des fonctions dynamiques, mais une approche simple consiste à utiliser un pivot auxiliaire par initié et mois, ou Power Pivot si vous avez besoin d’un vrai rolling window.
Le point n’est pas la sophistication. Le point est de distinguer l’achat isolé de l’habitude d’achat.
Le mot de la fin utile
Le meilleur usage d’Excel sur les données d’initiés n’est pas de remplacer une base de données. C’est de réduire le temps entre publication et lecture. Un CSV propre, trois colonnes calculées, trois tableaux croisés, et vous avez déjà un outil qui sépare les achats de marché des opérations sans signal, remonte les émetteurs actifs et met les bons noms en haut de la pile.
L’étape suivante, très concrète, consiste à prendre votre dernier export CSV et à construire une table de mapping des types de transaction avant même d’ouvrir le premier tableau croisé. Si vous ne le faites pas, votre dashboard sera rapide, joli, et légèrement mensonger. La question ouverte est la bonne, quelle taxonomie minimale permet de rester fidèle au texte réglementaire tout en produisant une lecture économique utile ? C’est moins spectaculaire qu’un modèle factoriel. C’est aussi beaucoup plus urgent.
Sources & further reading
- AMF, opérations des dirigeants, cadre MARregulator2026-05-17
- EUR-Lex, Règlement (UE) n° 596/2014 sur les abus de marché, article 19regulation2014-06-12
- ESMA, Market Abuse Regulationregulator2026-05-17
- SEC, Fast Answers, Forms 3, 4, 5regulator2026-05-17
- Microsoft Support, Create a PivotTable to analyze worksheet datadocumentation2026-05-17
- Microsoft Support, XLOOKUP functiondocumentation2026-05-17
- Lakonishok, Lee, Are Insider Trades Informative?paper2001-12-01
- Seyhun, Investment Intelligence from Insider Tradingbook1998-01-01
Editorial note, this article was assembled without live web research (Grok unavailable in this generation pass). Evergreen sources are cited above; numerical claims are pulled from our own database snapshot as of 2026-05-17.
Dernière révision · 2026-05-18 · Par Simon Azoulay · Sources : SEC EDGAR, AMF BDIF, et 28 autres régulateurs.
