
Disponibilité :
Windows : Version 2610 (Build 20520.20000), canal Béta (09/2026).
Présentation
Les tableaux dynamiques ont été déjà une petite révolution dans la conception des formules (voir Formules de tableaux dynamiques, une nouvelle logique de conception).
Ce sont des formules qui renvoient une série de valeurs (un tableau) et non une unique valeur. Elles vont alors propager leur résultat sur plusieurs cellules pour les afficher.
En complément, Microsoft nous a fourni un pack de formules pour :
- Manipuler ces tableaux résultat : ASSEMB.H, ASSEMB.V, CHOISIRCOLS, CHOISIRLIGNES, DANSCOL, DANSLIGNE, ETENDRE, EXCLURE, ORGA.COLS, ORGA.LIGNES, PRENDRE…
- Générer ces tableaux résultat : FILTRE, TRIER, TRIERPAR, PIVOTER.PAR, GROUPER.PAR…
Mais parfois, on se trouve bloqué dans leur utilisation quand par exemple :
- Le tableau résultat ne peut pas se propager "physiquement" : Par exemple si la formule se trouve dans un tableau structuré (erreur #PROPAGATION!).
- Le tableau résultat contient lui-même des tableaux imbriqués : Dans ce cas on va devoir utiliser des "acrobaties" pour éviter la remontée d’une erreur par Excel.
Cette nouvelle fonctionnalité va nous permettre de lever ces limitations dans la plupart des cas.
Attention : Il s'agit de mes observations sur mon poste en version Française. De plus Microsoft pourra faire évoluer cette fonctionnalité dans les futurs versions d'Excel.
Principe
Une cellule d’Excel va pouvoir contenir plusieurs valeurs. Ce groupe de valeurs sera appelées Liste et se présentera sous la forme :
- D’un tableau à 1 dimension c’est-à-dire où les données sont organisées sous forme d'une seule colonne
ou une seule ligne
(on parle de vecteur). - D’un tableau à 2 dimensions c’est-à-dire où les données sont organisées sous forme de plusieurs colonnes et de plusieurs lignes
.
Chaque élément de ces Listes pouvant être, lui aussi, une Liste, on parle de listes imbriquées. Mes tests ont révélé une limite à 31 niveaux d’imbrication (j'ai vu indiqué une limite à 50 niveaux dans un commentaire sur un site).
Attention :
- Dans la cellule : Quel que soit le type de Liste, son orientation et les imbrications, les valeurs seront toutes séparées par le séparateur de liste (le point-virgule en configuration Française).
- Dans la barre de formule : La structure exacte de la Liste sera affichée (colonnes, lignes, imbrications).
La propriété VBA Range.HasRichDataType renvoie True pour les cellules contenant une liste. Cela suggère qu'Excel utilise notamment la fonctionnalité de Type de données (comme les types Données boursières, Devises, Données géographiques) pour stocker les données dans les listes.
Création de liste
Cette fonctionnalité Liste va surtout être utilisée pour afficher / mémoriser le résultat d'une formule mais il est possible de les générer "manuellement".
Convertir les données d’une plage
Liste avec plusieurs lignes (vecteur vertical)
Les différentes valeurs doivent être séparées par le caractère séparateur de liste, le point-virgule pour une configuration française traditionnelle (défini dans les paramètres régionaux de Windows).
- On sélectionne la plage de cellules à convertir,
- On active la commande Liste (groupe Contrôles) du ruban Insertion.

Remarques :
- L'ajout d'un espace avant et/ou après chaque point-virgule n'est pas obligatoire.
- Réappliquer cette commande permet de désactiver cette fonction et de retrouver la saisie originelle (valeurs séparées par des points virgules).
- L’aide indique que le raccourci correspondant est CTRL + J mais il ne semble pas, pour l’instant, opérationnel sur mon Excel en version française (il applique toujours un format Date aux cellules sélectionnées). J’ai tenté en vain de trouver si cette commande était affectée à une autre combinaison de touches.
- Les valeurs ayant un formatage Monétaire et Pourcentage perdent alors leur formatage. On peut appliquer le format Monétaire ou Pourcentage sur la cellule après conversion en Liste ce qui l’appliquera à chaque élément de la liste.
- Les données de type Dates/Heures gardent leur formatage mais sont visualisées dans la bulle d'information sous forme de numéro de série.
- Les valeurs de type Booléennes (VRAI, FAUX) sont conservées en tant que valeurs booléennes.
- Les cellules contenant une image sont ignorées.

Exemple :
{2;5;6} => 3 éléments disposés verticalement
2;5;6 => 3 éléments disposés verticalement- Les accolades ne sont obligatoires que pour les listes imbriquées.
Listes avec plusieurs colonnes (vecteur horizontal ou tableau 2D)
Pour une liste dans l’autre sens (vecteur horizontal) ou un tableau à 2 dimensions, la saisie sera un plus complexe.
Vu que l'on utilise le point-virgule ( ; ) pour indiquer les lignes comme pour les constantes matricielles (voir https://1forme.fr/excel-et-les-matrices-pas-celles-des-cours-de-mathematiques/#les-constantes-matricielles), l'utilisation du point ( . ) semble logique mais ne fonctionne pas, du moins pas directement !
Il va falloir entourer sa saisie avec des accolades pour permettre à Excel de comprendre qu'il s'agit de données pour des listes.
Exemple :
{2.5.6} => 3 éléments disposés horizontalementPour un tableau 2D il faudra, comme pour les constantes matricielles, travailler horizontalement c'est à dire décrire le tableau ligne par ligne (et non par colonne).
Exemple :
{2.4;5.6} => 4 éléments disposés en 2 lignes et 2 colonneset non { 2 ; 5 . 4 ; 6 } !
On obtient un tableau de 2 colonnes et 6 lignes avec 2 valeurs #N/A complétant automatiquement les valeurs manquantes.

Saisie direct d'une liste
- Il est possible d’utiliser la commande Liste sur une cellule vide puis d'effectuer la saisie (en utilisant le séparateur de liste, les accolades et le point).
- Après la saisie de liste verticale (séparateur ; ) dans 3 cellules superposées, Excel propose une bulle de convertir le contenu des 3 cellules en Liste. La conversion de la saisie dans les cellules suivante se fera alors automatiquement.


Convertir le résultat d'une formule
On enfermera la formule entre 2 accolades ce qui transformera automatiquement toute matrice résultante en Liste. Cela fonctionne seulement sur une MATRICE, même n'étant constituée que d'une unique valeur.
Il va falloir activer la version 3 de compatibilité pour les formules (voir Nouveaux paramètres dans les options de calculs). Un bandeau apparaitra à la 1ère utilisation des accolades.

Astuces :
- Le doublement des accolades permet de forcer le passage en Liste même pour une valeur scalaire.
Exemple : = { { SOMME(....) } } permet d'obtenir une liste d'un élément. - Ce principe de conversion pourra être utilisé avec le doublement des accolades pour forcer le passage en Liste sans avoir à activer la commande du ruban.
Exemple : ={{"Paul".{5;10};"Luc".{8;2}}} (les guillemets pour les valeurs de type texte sont obligatoires).
Exemples d’utilisations
Exemple 1 : Récupération d’un résultat matriciel
Un cas classique, je veux utiliser la fonction FILTRE dans un tableau structuré.
={TRIER(FILTRE($B$2:$B$14;$A$2:$A$14=D2))}
Affichage de la liste
- En cliquant sur l'icône indiquant la présence d'une liste dans la cellule (
,
,
), Excel affiche une carte (bulle d'information) permettant d'avoir une visualisation de la structure du tableau.
- Il est possible de cliquer dans cette bulle pour :
- Afficher de la même façon les listes imbriqués.
- Exporter la valeur de la cellule dans la 1ère cellule vide à droite de la liste sous forme de fonction INDEX imbriquées.
- Cliquer dans la cellule contenant une valeur unique (pas une liste).
- Cliquer sur l'icône apparaissant alors.

- Remonter dans l'arborescence.
- Coordonnées de cette liste dans la liste de niveau supérieur (Illogiquement, l'indice des lignes et colonnes commence à 0 !).
- Icône permettant d'exporter toute la liste dans la 1ère cellule vide à droite de la liste sous forme de fonction INDEX imbriquées.
Remarque : Les cartes affichent les données brutes sans aucune mise en forme, par exemple les dates seront affichées en numéro de série.
Opérations mathématiques sur les Listes
Suit une logique mathématique proche des matrices.
Attention, en cas de création de la formule par pointage de cellule (en cliquant sur une cellule), l'ordre de sélection des cellules avec une Liste peut générer des formules différentes et donc des résultats différents !
- Si juste après le signe égale ( = ) en début de formule, on sélectionne une cellule contenant une liste, la liste sera "conservée" et on aura la référence entre accolades
(Exemple : Avec une liste en B2 de 2 valeurs, on génère = { B2 } + 3 ce qui renvoie une liste de 2 valeurs dans 1 cellule), - Sinon, si la référence n'est pas au début on récupèrera une matrice et la référence ne sera pas entre accolades
(Exemple : Avec une liste en B2 de 2 valeurs, on génère = ( B2 + 3 ) ce qui renvoie 2 valeurs propagées sur 2 cellules, la parenthèse est la fautive !).
Listes des exemples :
Utilisation des fonctions Excel classiques sur les listes
= NB(B2) => 3
= NB(B6) => 4
= SOMME(B6) => 330
Récupération de la 2ème valeur de la liste L1
= INDEX(B2;2) => 30
Position de 30 dans la liste L1
= EQUIVX(30;B2;0) => 2
= RECHERCHEX(30;B2;SEQUENCE(NBVAL(B2));;0) =>2 (pour faire compliqué)Addition / Soustraction / Multiplication / Division par une constante, puissance de 2 (^2)
L'opération porte sur chaque terme de la liste et on obtient une liste en retour si les accolades sont présentes.

Remarquer les 3 cellules résultantes en cas d'absence des accolades.
Addition / Soustraction / Multiplication / Division par une autre Liste
Listes de même taille et même orientation
L'opération porte sur chaque terme de la liste et on obtient une liste de même taille en retour si les accolades sont présentes.

En cas de listes imbriqués :
- 1 terme unique de L1 s'appliquera à tous les termes de la sous liste correspondante de L2.
- Une sous liste de L1 s'appliquera terme à terme à la sous liste correspondante de L2.
Listes de taille différente mais de même orientation
L'opération porte sur chaque terme de la liste et on obtient une liste dont la taille correspond à celle la liste la plus grande. Une erreur #N/A sera renvoyée pour les termes correspondants aux termes supplémentaires de la plus grande Liste, Excel n'ayant pu trouver les termes complémentaires dans la plus petite Liste.

Listes d'orientation différente
Listes pouvant être de taille différente.

Fonctions dédiées aux Listes
4 nouvelles fonctions sont disponibles.
Tableau de départ

La cellule B3 contient une liste imbriquée :
Fonction HAS
Objectif
Teste si une valeur existe dans les éléments présents dans la liste.
Syntaxe
= HAS(Liste/Tableau ; Valeur )- Liste/Tableau : La liste dans laquelle se fera la recherche.
- Valeur : La valeur à rechercher.
Exemples
Paul est-il affecté à cette tâche ?
=HAS(B2;"Paul") => VRAI
=HAS(B3;"Paul") => VRAI
=HAS(B4;"Paul") => FAUX
Variante
=ESTNUM(EQUIVX("Paul";B2;0)) ' Non prise en charge des listes imbriquéesRemarque :
- On pourrait se demander le réel intérêt de cette fonction par rapport à l'utilisation de EQUIV/EQUIVX mais il semble que seul l'utilisation de HAS fonctionne dans la réalisation de mise en forme conditionnelles et règles de validations basées sur des listes (voir plus bas).
- Recherche la valeur dans les listes imbriquées.
Fonction HASALL (ET logique)
Objectif
Teste si toutes les valeurs existent en même temps dans les éléments présents dans la liste.
Syntaxe
= HASALL(Liste/Tableau ; Valeurs )- Liste/Tableau : La liste dans laquelle se fera la recherche.
- Valeurs : Les valeurs à rechercher.
Exemples
Paul et Bob travaillent-ils en équipe ?
=HASALL(B2;{"Paul";"Bob"}) => VRAI
=HASALL(B3;$E$11:$E$12) => VRAI (La plage $E$11:$E$12 contient "Bob", "Paul")
=HASALL(B4;$G$11) => FAUX (La liste $G$11 contient {"Bob", "Paul"})
=HASALL(B6;{"Paul";"Bob"}) => FAUX
Variante
=ET(HAS(B2;$E$11:$E$12))Remarque :
- Recherche les valeurs dans les listes imbriquées.
Fonction HASANY (OU logique)
Objectif
Teste si une des valeurs existe dans les éléments présents dans la liste.
Syntaxe
= HASANY(Liste/Tableau ; Valeur )- Liste/Tableau : La liste dans laquelle se fera la recherche.
- Valeurs : Les valeurs à rechercher.
Exemples
=HASANY(B2;{"Paul";"Bob"}) => VRAI
=HASANY(B3;{"Paul";"Bob"}) => VRAI
=HASANY(B4;{"Paul";"Bob"}) => FAUX
=HASANY(B6;{"Paul";"Bob"}) => VRAI
Variantes
=OU(HAS(B2;{"Paul";"Bob"}))Remarque :
- Recherche les valeurs dans les listes imbriquées.
Fonction APLATIR (FLATTEN)
Objectif
Convertir la liste en une plage de cellules.
Syntaxe
= APLATIR(Liste/Tableau ; Valeur de remplissage ; Niveaux )- Liste/Tableau : La Liste à convertir.
- Valeur de remplissage : Valeur de remplacement quand celle-ci n'est pas disponible.
- Niveaux : Nombre de niveaux à aplatir.
- 0 : Tous les niveaux.
- 1 : (valeur par défaut) Aplatir la 1ère liste imbriquée.
Exemples
Argument Valeur de remplissage

Argument Niveaux
La liste de départ en B2.

Selon moi, cet indice devrait s'appliquer à la liste de départ et non à la 1ère liste imbriquée !
- Ainsi la colonne D de l'exemple devrait correspondre au niveau 2 et non au niveau 1.
- Le niveau 1 devrait correspondre au résultat de la colonne H.
Pour obtenir l'aplatissement correspondant au résultat de la colonne H, on peut utiliser :
= ASSEMB.V(B2)Intégration dans Excel
Avec les autres fonctions
Je n'ai pas testé, bien évidemment, toutes les fonctions et leurs différents arguments. C'est juste une petite sélection, à vous de tester ! 😁
Fonctions ignorants l'imbrication
B2 : = {{ 10 ; "Bob" ; {1.2} ; {1.2} ; 10 ; {1;2} ; {{10;30};{1;2}} }}
B3 : = {{ 4 ; 5 ; { 8 ; 9 } ; 10 }}
Imbrication ignorée, renvoie une valeur unique
= NBVAL(B2) => 13 ' Et non 7, correspondant lignes de la liste du 1er niveau !
= SOMME(B2) => 72
= MAX(B2) => 30
= CONCAT(B2) => 10Bob12121012103012
SOMME.SI, SOMME.SI.ENS, MOYENNE, MOYENNE.REDUITE, MOYENNE.SI, MOYENNE.SI.ENS,
MIN, MAXA, MINA, MAX.SI.ENS, MIN.SI.ENS,
NB, NB.SI, NB.SI.ENS,
VAR.S, VAR.P, VARA, VARPA, ECARTYPE.STANDARD, ECARTYPE.PEARSON, STDEVA, STDEVPA.
Imbrication ignorée par certains arguments
= GRANDE.VALEUR(B2;2) => 10 (30 1ère grand valeur)
= GRANDE.VALEUR(B2;B3) => 10 ; 2 ; { 2 ; 1 } ; 1
PETITE.VALEUR, QUARTILE.EXCLURE, QUARTILE.INCLURE, SOUS.TOTAL.Fonctions prenant en compte l'imbrication
B2 : = {{ 10 ; "Bob" ; {1.2} ; {1.2} ; 10 ; {1;2} ; {{10;30};{1;2}} }}
Imbrication pris en compte
= NBCAR(B2) => 2 ; 3 ; {1.1} ; {1.1} ; 2 ; {1;1} ; {{2;2};{1;1}}
= UNIQUE(B2) => 10 ; "Bob" ; {1;2} ; {1.2} ; {{10;30};{1;2}}
= EQUIVX(30;B2;0) => #N/A ' ne considère que le 1er niveau de la liste (7 "lignes") !
= INDEX(B2;3;1) => {1.2}
= RECHERCHEX(10;B2;SEQUENCE(NBVAL(B2));;0) => #Valeur ' ne considère que le 1er niveau de la liste (7 "lignes") !
= ASSEMB.V(B2) => Propagation sur 7 cellules (aplatissement du 1er niveau)
= MAP(B2;LAMBDA(v;v)) => Propagation sur 7 cellules (aplatissement du 1er niveau)
= LIGNES(B2) => 7 ' Nombre de valeurs du 1er niveau de la liste
= CHOISIRLIGNES(B2;7) => {{10;30};{1;2}}
= EXCLURE(B2;-1) => {{ 10 ; "Bob" ; {1.2} ; {1.2} ; 10 ; {1;2} }}
ANNEE, MOIS, JOUR, HEURE, MINUTE, SECONDE, NO.SEMAINE.ISO,
PAIR, IMPAIR, ENT, ARRONDI, ARRONDI.INF, ARRONDI.SUP, PLAFOND.MATH, PLANCHER.MATH,
ABS, ARRONDI, COS, SIN, ...
MAJUSCULE, MINUSCULE, NOMPROPRE, TEXTE.APRES, TEXTE.AVANT,
MOD, MODE.SIMPLE, MODE.MULTIPLE,
CHOISIRCOLS,DANSLIGNE, DANSCOL, ETENDRE, ORGA.COLS, ORGA.LIGNES, PRENDRE, , TABLEAU.EN.TEXTE,
REGEX.TEST, REGEX.TEST, REGEX.REMPLACER,
RECHERCHEV, RECHERCHEH, REMPLACER, SUBSTITUE
MAP, SCAN, REDUCE, BYROW, BYCOL, GROUPER.PAR, PIVOTER.PAR, MAKEARRAY.Fonctions ne supportant pas ou pas complètement les listes
Soit entièrement ou partiellement (certains arguments) ou les listes avec imbrication.
B2 : = {{ 10 ; "Bob" ; {1.2} ; {1.2} ; 10 ; {1;2} ; {{10;30};{1;2}} }}
B3 : = {{ 10 ; 25 ; {1.2} ; {1.2} ; 10 ; {1;2} ; {{10;30};{1;2}} }}
B4 : 4 ; 5 ; 8 ; 10
Imbrication de liste
= MOYENNE.GEOMETRIQUE(B3) => #N/A!
= MOYENNE.GEOMETRIQUE(B4) => 6.3
MOYENNE.HARMONIQUE, MULTINOMIALE, CHOISIR.
Liste en générale
= EST.PAIR(B4) => #VALEUR!
= FIN.MOIS(B4;0) => #VALEUR! ' Résultat attendu : 31/01/1900 ; 31/01/1900 ; 31/01/1900 ; 31/01/1900
= FREQUENCE(B2;B4) => #N/A! ' Fonctionne en remplaçant la liste B2 par une plage (Classes supporte une liste)
ARRONDI.AU.MULTIPLE, MOIS.DECALER, N, NO.SEMAINE, QUOTIENT, RANG.POURCENTAGE.EXCLURE, RANG.POURCENTAGE.INCLURE,
RECHERCHE,AGREGAT.Copier / Coller
Les listes peuvent être dupliquées par :
- Copier - Coller
- Recopie avec la poignée de recopie ou via les raccourcis Ctrl + B, Ctrl + D.
- Lien direct vers la cellule ( = Cellule cible).
L'outil Remplissage instantané ne semble pas pouvoir exploiter les listes.
Le collage spécial avec opération ne fonctionne pas.
Le coller-Transposer n'a pas d'impact sur le sens des listes.
Outil Filtrer
L'outil Filtrer a été adapté, il permet de choisir si l'on filtre sur les éléments des Listes ou sur la globalité du contenu de la cellule.


Tri
Rien de particulier, Excel se base sur le contenu "brut" de la cellule.
Utilisation dans la mise en forme conditionnelle et dans la validation de données
Ne semble pas fonctionner autrement qu’en les basant sur une formule.
- Mise en forme conditionnelle : Type "Utiliser une formule pour déterminer..."
- Validation de données : Autoriser "Personnalisé".
Cette formule devant se baser sur les quatre nouvelles fonctions de calcul (HAS, HASALL, HASANY, APLATIR), dédiées aux Listes, pour pouvoir être acceptée par les outils Mise en forme conditionnelle et Validation de données.
Exemple : Mise en forme conditionnelle
On veut mettre en couleur une cellule si le contenu d'une cellule (ici D26) est un élément de la liste en B2.
On va créer une mise en forme conditionnelle basée sur une formule. Voici 3 formules qui devraient répondre à la demande.
=HAS($B$2;D26) => Fonctionne
=SIERREUR(EQUIVX($D26;$B$2;0);FAUX) => NE fonctionne PAS !
=SIERREUR(EQUIVX($D26;APLATIR($B$2);0);FAUX) => Fonctionne (même formule que la précédente mais avec APLATIR)Exemple : Validation de données
Autoriser en cellule D4 seulement une saisie correspondante à un des éléments de la liste en B2.
=OU(D4=APLATIR(B2))
ou plus simplement
=HAS(B2;D4)Liste de validation
Création de liste déroulante avec l'outil Validation de données (Type Liste).
La cellule B2 contenant une liste verticale, AUCUNE des solutions suivantes n'a fonctionné.
=B2
=APLATIR(B2)
=TABLEAU.EN.TEXTE(B2)
=JOINDRE.TEXTE(";";VRAI;APLATIR(B2))Utilisation dans les graphiques
Non utilisable dans les graphiques et Sparklines.
- Les cellules contenant des Listes semblent renvoyer des 0.
- L'intégration des listes directement dans la fonction SERIE (fonction utilisée par chaque graphique) ne semble pas faisable.
Utilisation avec les objets graphiques
Afficher le contenu d'une cellule contenant une liste dans une forme n'est pas supporté (Rappel : On sélectionne la forme puis dans la barre de formule on saisie "=" puis la référence de la cellule).
Utilisation dans les tableaux croisé dynamique
Le tableau semble prendre en compte seulement 1ère valeur des listes ce qui est problématique ! 😁
Utilisation dans PowerQuery
Les listes renvoient des valeurs Null dans PowerQuery.
Commande Recherche
La commande Rechercher (Ctrl + F) effectue bien celle-ci même parmi les éléments des listes.
Commande Remplacer
La commande Remplacer (Ctrl + H) NE fonctionne PAS pour les éléments des listes. Les données dans les Listes sont ignorées.

Utilisation dans le Gestionnaire de noms
Un Nom accepte et renvoie une liste.
Exemple : Liste1 > = {{1.2.3;4.5.6}}
VBA
Quelques observations liées aux listes.
ActiveCell.Text => "10; Bob; 1; 2; 1; 2; 10; 1; 2; 10; 30; 1; 2"
ActiveCell.Value => Vide
ActiveCell.Value2 => Vide
ActiveCell.Formula2 => "={{10;"Bob";{1,2};{1,2};10;{1;2};{{10;30};{1;2}}}}"
ActiveCell.FormulaR1C1 => "={{10;"Bob";{1,2};{1,2};10;{1;2};{{10;30};{1;2}}}}"
ActiveCell.HasArray => FAUX
ActiveCell.HasRichDataType => VRAI ' C'est bien un type de données comme Données géographiques, Devises...)
ActiveCell.DataTypeToText => Erreur 1004 ' La conversion de Type de données à Texte échoue
ActiveCell.ShowCard 'Fait apparaitre la carte (bulle d'information)Script
Pas de prise charge pour l'instant.
Limites volumétriques
D'après mes tests :
- Un élément de la liste peut dépasser la limite des 4 095 caractères pour une chaînes de texte. J'ai trouvé une limite à 32 767 caractères (la même limite que celle des cellules).
- Le nombre d'éléments peut dépasser 1 048 576 (nombre de lignes d'une feuille). J'ai arrêté mon test à 2 500 000 (via la fonction IMPORTTEXT) !
- L'ensemble de la liste peut dépasser la limite des 32 767 caractères pour le contenu d'une cellule. J'ai arrêté mon test à 12 000 000 (via la fonction IMPORTTEXT) !
- J'ai trouvé une limite à 31 niveaux d’imbrication.
Conclusion
Fonctionnalité intéressante pouvant aider dans certains cas de formules complexes et pour l'affichage des données mais j'attends de voir des mises en œuvre pour de grosse masse de données et sa complémentarité avec PowerQuery.
Merci pour votre attention bienveillante.
