🚀The world's best VBA AI has evolved. ExcelMaster is now an autonomous Agent.Read more →
Back to Blog

Excel TABLEAU.ALEA — une seule formule pour toute une grille de nombres aléatoires

|

Excel TABLEAU.ALEA — une seule formule pour toute une grille de nombres aléatoires

En brefTABLEAU.ALEA([lignes]; [colonnes]; [min]; [max]; [nombre_entier]) est le générateur aléatoire tout-en-un d'Excel 365 : une seule formule déverse tout un bloc de nombres aléatoires au lieu de vous faire tirer ALEA sur mille lignes. Les cinq arguments sont facultatifs. =TABLEAU.ALEA() nu se comporte comme ALEA(). L'interrupteur qui décide entre décimaux et entiers est le dernier argument, nombre_entier, et il vaut FAUX par défaut — vous obtenez donc des décimaux comme 3,71 sauf si vous passez explicitement VRAI. Elle reste volatile (se relance à chaque modification) et elle se propage, donc une plage bloquée renvoie #PROPAGATION!.

=TABLEAU.ALEA()                       ' -> 0,6218...   un décimal dans [0 ; 1[, comme ALEA()
=TABLEAU.ALEA(5)                      ' -> déverse 5 décimaux aléatoires en colonne
=TABLEAU.ALEA(5; 3)                   ' -> déverse une grille 5×3 de décimaux
=TABLEAU.ALEA(5; 3; 1; 100; VRAI)     ' -> une grille 5×3 d'entiers aléatoires 1–100
=SORTBY(A2:A20; TABLEAU.ALEA(LIGNES(A2:A20)))   ' -> mélange une liste en une formule

Si vous connaissez déjà ALEA et ALEA.ENTRE.BORNES, TABLEAU.ALEA est la suite naturelle : elle fait ce que font les deux, pour toute une région d'un coup, et elle se redimensionne toute seule. Les pièges tiennent à l'ordre des arguments, à une valeur par défaut sournoise, et au fait que — étant un tableau dynamique — elle peut entrer en collision avec ce qui se trouve en dessous.

Ce que vous allez apprendre

  • Le modèle mental : TABLEAU.ALEA, c'est ALEA + ALEA.ENTRE.BORNES, propagées
  • Pourquoi l'indicateur nombre_entier vaut FAUX par défaut — le n° 1 des « pourquoi ai-je des décimaux ? »
  • L'ordre complet des arguments, et le comportement de min/max pour décimaux vs entiers
  • Pourquoi elle reste volatile, et quand elle renvoie #PROPAGATION!
  • La combinaison gagnante : SORTBY(liste; TABLEAU.ALEA(...)) pour mélanger
  • Quand TABLEAU.ALEA n'est pas disponible (et quoi utiliser à la place)

Le modèle mental : ALEA et ALEA.ENTRE.BORNES, propagées

ALEA donne un décimal. ALEA.ENTRE.BORNES donne un entier. Pour remplir un tableau avec l'une ou l'autre, l'ancienne méthode consistait à écrire la formule une fois puis à la tirer sur des centaines de cellules. TABLEAU.ALEA condense tout cela en une seule formule qui se propage — vous lui donnez la forme (lignes, colonnes) et la saveur (plage, entier ou non), et elle peint le bloc entier d'un coup.

C'est toute l'idée : une fonction qui est à la fois les deux dés classiques et la recopie vers le bas, réunis. Lisez =TABLEAU.ALEA(5; 3; 1; 100; VRAI) comme « donne-moi une grille 5 par 3 d'ALEA.ENTRE.BORNES(1; 100) », et =TABLEAU.ALEA(5; 3) comme « donne-moi une grille 5 par 3 d'ALEA() ». Dès que vous la voyez comme « ALEA propagée / ALEA.ENTRE.BORNES propagée », les arguments cessent de sembler arbitraires.

Les arguments — et la valeur FAUX par défaut qui piège tout le monde

Les cinq arguments sont facultatifs, mais leur ordre compte et une valeur par défaut surprend presque tout le monde :

=TABLEAU.ALEA([lignes]; [colonnes]; [min]; [max]; [nombre_entier])
  • lignes, colonnes — la forme du bloc propagé (par défaut 1 × 1).
  • min, max — la plage (par défaut 0 à 1). Les deux bornes sont incluses lorsque vous générez des entiers.
  • nombre_entierVRAI pour des entiers, FAUX pour des décimaux. Défaut : FAUX.

Cette dernière valeur par défaut est la question TABLEAU.ALEA n° 1 : « j'ai demandé des nombres entre 1 et 100 et j'ai obtenu 47,83 — pourquoi ? » Parce que vous vous êtes arrêté à max sans jamais passer nombre_entier :

=TABLEAU.ALEA(5; 1; 1; 100)         ' -> décimaux comme 47,83  (nombre_entier omis = FAUX)
=TABLEAU.ALEA(5; 1; 1; 100; VRAI)   ' -> entiers comme 47      (nombre_entier = VRAI)

Règle : si vous voulez des entiers, vous devez terminer la formule par VRAI. Fournir min et max ne suffit pas — elle renvoie volontiers des décimaux dans cette plage. C'est l'inverse d'ALEA.ENTRE.BORNES, qui ne produit que des entiers, si bien que ceux qui migrent depuis ALEA.ENTRE.BORNES se font piéger à chaque fois. (Un détail supplémentaire sur les entiers qui mérite un coup d'œil : avec nombre_entier à VRAI, min et max doivent eux-mêmes être des entiers, sinon Excel renvoie #VALEUR! — et si min est supérieur à max, #VALEUR! à nouveau.)

Elle reste volatile, et elle se propage toujours

TABLEAU.ALEA hérite des deux comportements qui définissent l'aléatoire en tableau dynamique :

  • Volatile — comme ALEA et ALEA.ENTRE.BORNES, elle se relance à chaque recalcul : toute modification, F9, tri, ou ouverture de fichier. Si vous devez conserver un résultat, figez-le de la même façon : sélectionnez la propagation, Copier, Collage spécial → Valeurs. (Figez la plage propagée entière d'un coup, pas seulement la cellule en haut à gauche.)
  • Propagation — elle écrit dans les cellules situées en dessous et à droite de là où vous l'avez tapée. Si quelque chose s'y trouve déjà, vous obtenez une erreur #PROPAGATION! au lieu des nombres. Dégagez l'obstacle et le tableau apparaît.
=TABLEAU.ALEA(1000; 1; 1; 100; VRAI)   ' remplit 1000 cellules depuis UNE formule...
                                        ' ...mais relance les 1000 à chaque recalcul

Cette volatilité mérite le respect à grande échelle : un TABLEAU.ALEA de mille cellules recalcule chacune d'elles à chaque frappe ailleurs dans le classeur. Pour un modèle de simulation vivant, c'est très bien ; pour un jeu de données finalisé, figez-le pour que les recalculs s'arrêtent.

La combinaison gagnante : mélanger une liste avec SORTBY + TABLEAU.ALEA

La chose la plus utile que fait TABLEAU.ALEA n'est pas de générer des nombres que vous conservez — c'est de générer des nombres selon lesquels vous triez avant de les jeter. Associez-la à SORTBY et vous mélangez une liste en une seule formule, sans colonne d'aide :

=SORTBY(A2:A20; TABLEAU.ALEA(LIGNES(A2:A20)))          ' -> la liste dans un ordre aléatoire
=TAKE(SORTBY(A2:A20; TABLEAU.ALEA(LIGNES(A2:A20))); 5) ' -> un échantillon aléatoire de 5, sans répétition

TABLEAU.ALEA(LIGNES(...)) fabrique une clé aléatoire par ligne ; SORTBY ordonne les lignes selon ces clés ; l'aléatoire disparaît à l'instant où il a fait son travail. Comme chaque ligne reçoit une clé distincte et est simplement réordonnée, rien ne se répète — c'est exactement le comportement sans remise qu'ALEA.ENTRE.BORNES ne peut pas vous offrir. Ce motif est la colonne vertébrale de la sélection et de l'échantillonnage aléatoires, et TABLEAU.ALEA est ce qui en fait un one-liner sur 365.

Savoir trancher

Sur Excel 365, TABLEAU.ALEA rend obsolète le « tirer ALEA sur 1 000 lignes » — une seule formule, aucun glissement, et elle se redimensionne quand vos données grandissent. Dégainez-la dès que vous avez besoin d'un bloc d'aléatoire ou d'une clé de tri aléatoire. Les deux choses à garder en tête sont la valeur nombre_entier = FAUX par défaut (terminez par VRAI quand vous voulez des entiers) et la volatilité (figez en valeurs dès qu'un résultat est définitif). Le seul cas où il ne faut pas l'utiliser, c'est la compatibilité : TABLEAU.ALEA est une fonction de tableau dynamique, elle n'existe donc que dans Excel 365 et Excel 2021 — si votre classeur doit tourner sous Excel 2019 ou antérieur, repliez-vous sur ALEA et ALEA.ENTRE.BORNES tirées vers le bas à l'ancienne.

Comment ExcelMaster vous aide

La valeur FAUX par défaut et la mécanique de propagation sont faciles à oublier, alors laissez un assistant de formules les porter. Demandez à ExcelMaster « une grille 10×5 d'entiers aléatoires de 1 à 100 » et il écrit =TABLEAU.ALEA(10; 5; 1; 100; VRAI) — avec le VRAI que vous auriez oublié — et pointe la propagation vers une plage vide pour que vous ne voyiez jamais #PROPAGATION!. Demandez-lui de « mélanger cette liste » ou de « tirer un échantillon aléatoire de 25 lignes » et il construit la combinaison SORTBY(...; TABLEAU.ALEA(...)), puis propose de figer la sortie en valeurs pour que votre échantillon cesse de bouger. Et s'il détecte que votre fichier vise un Excel plus ancien, il se replie discrètement sur une approche à base d'ALEA qui, elle, y fonctionnera.

Questions fréquentes

Que fait la fonction TABLEAU.ALEA dans Excel ?

=TABLEAU.ALEA([lignes]; [colonnes]; [min]; [max]; [nombre_entier]) renvoie un tableau propagé de nombres aléatoires. Sans argument, elle renvoie un unique décimal dans [0 ; 1[ comme ALEA() ; avec lignes et colonnes, elle remplit tout un bloc ; avec min, max et nombre_entier réglé sur VRAI, elle remplit ce bloc d'entiers aléatoires dans votre plage. C'est le générateur aléatoire tout-en-un d'Excel 365.

Pourquoi TABLEAU.ALEA me donne-t-elle des décimaux au lieu d'entiers ?

Parce que l'argument nombre_entier vaut FAUX par défaut. Passer min et max ne fait que définir la plage — cela ne force pas les entiers. Pour obtenir des nombres entiers, vous devez ajouter VRAI en cinquième argument : =TABLEAU.ALEA(5; 1; 1; 100; VRAI). Sans lui, TABLEAU.ALEA renvoie des décimaux dans [min ; max].

TABLEAU.ALEA est-elle volatile ? Comment l'empêcher de se recalculer ?

Oui — comme ALEA et ALEA.ENTRE.BORNES, elle se relance à chaque recalcul. Pour conserver un résultat, sélectionnez la plage propagée entière, Copier, puis Collage spécial → Valeurs. Cela convertit tout le tableau en nombres statiques qui ne changent plus.

Pourquoi TABLEAU.ALEA affiche-t-elle une erreur #PROPAGATION! ?

TABLEAU.ALEA est un tableau dynamique qui se propage dans les cellules situées en dessous et à droite de la formule. Si l'une de ces cellules contient déjà des données, Excel ne peut pas se propager et affiche #PROPAGATION!. Effacez ou déplacez ce qui bloque la plage de propagation et le tableau apparaît.

Comment mélanger une liste ou tirer un échantillon aléatoire avec TABLEAU.ALEA ?

Triez selon une clé aléatoire : =SORTBY(plage; TABLEAU.ALEA(LIGNES(plage))) renvoie la liste dans un ordre aléatoire, et =TAKE(SORTBY(plage; TABLEAU.ALEA(LIGNES(plage))); n) prend un échantillon aléatoire de n sans répétition. Voir Sélectionner, échantillonner et mélanger au hasard dans Excel.

Testé dans

Testé dans : Excel 365 (Windows 11) — dernière vérification le 11/07/2026.

Guides associés : Excel ALEA & ALEA.ENTRE.BORNES · Sélection & échantillonnage aléatoires · Excel SORT & SORTBY · Excel TAKE & DROP