Pour combiner les résultats de recherche de taille variable dans Excel pour Mac, utilisez REDUCE avec VSTACK pour créer un seul tableau rectangulaire. Cette procédure pas à pas crée une liste d'actifs graphiques, préserve l'ordre des requêtes et affiche les groupes non correspondants au lieu de les omettre silencieusement.
La tâche est simple : chaque groupe d'actifs demandé peut correspondre à plusieurs lignes sources, une seule ligne ou aucune. Vous souhaitez que tous ces résultats se trouvent dans une plage de feuille de calcul extensible unique, avec les étiquettes d'actifs et les quantités conservées ensemble.
Quelles versions d'Excel pour Mac prennent en charge cette approche ?
Utilisez Excel pour Microsoft 365 pour Mac pour la formule principale ci-dessous. Microsoft mentionne explicitement cette édition dans sa documentation de la fonction REDUCE. Sa page actuelle ne répertorie pas Excel 2024 pour Mac, donc la simple présence d'autres fonctions de tableau modernes n'établit pas que la formule complète est disponible.
| Fonction | Éditions Mac listées dans la documentation Microsoft pertinente | Rôle ici |
|---|---|---|
BYROW, MAP |
Microsoft 365 pour Mac ; Excel 2024 pour Mac | Expliquer l'approche d'origine et sa limite |
REDUCE |
Microsoft 365 pour Mac | Transmettre le résultat croissant entre les requêtes |
VSTACK, HSTACK |
Microsoft 365 pour Mac ; Excel 2024 pour Mac | Assembler les blocs de résultats et construire une ligne de secours |
FILTER |
Microsoft 365 pour Mac ; Excel 2024 pour Mac ; Excel 2021 pour Mac | Retourner chaque ligne d'actif correspondante |
Ces informations d'édition proviennent des pages de référence Microsoft pour BYROW, MAP, VSTACK, HSTACK et FILTER.
Pour inspecter votre installation, ouvrez le menu Excel et choisissez À propos d'Excel. Les instructions de Microsoft pour Mac expliquent que la boîte de dialogue À propos d'une application Office affiche sa version et son type de licence. Vérifiez les deux lorsque vous décidez quelle formule utiliser. Voir À propos d'Office : Quelle version d'Office est-ce que j'utilise ?.
Une préversion Beta Mac plus récente modifie la limite des tableaux imbriqués
L'annonce de Microsoft du 24 septembre 2026 introduit les tableaux imbriqués et FLATTEN comme fonctionnalités d'aperçu pour le canal Beta. Elle spécifie la version Mac 16.114 Build 26092111 ou ultérieure, avec une disponibilité soumise au déploiement. La plupart des calculs de tableaux imbriqués nécessitent la version de compatibilité du classeur 3, sélectionnée via Formule > Options de calcul. Ces conditions sont importantes : disposer de Microsoft 365 seul n'établit pas que l'aperçu est activé. Voir Placer plusieurs valeurs dans une seule cellule avec des listes et des tableaux dans Excel.
La solution détaillée ci-dessous construit un résultat rectangulaire ordinaire sans dépendre de cet aperçu. Cela évite également de faire dépendre la tâche de liste d'actifs de base du classeur des paramètres de tableaux imbriqués.
Pourquoi le retour de tableaux depuis BYROW ou MAP pose-t-il problème ?
Microsoft documente BYROW comme produisant un résultat par ligne d'entrée. Sa référence indique explicitement que le retour de quelque chose d'autre qu'une seule valeur depuis la LAMBDA interne produit une erreur #CALC!. Une recherche qui retourne plusieurs enregistrements dépasse cette limite documentée. Voir Fonction BYROW.
Par exemple, après avoir saisi les exemples de données dans la section suivante, voici un exemple de diagnostic de l'approche problématique selon le comportement documenté de valeur unique :
=BYROW(E2:E4,LAMBDA(key,FILTER(A2:C7,A2:A7=key,"No match")))
La première requête retourne trois lignes et trois colonnes. Demander à BYROW de placer ce bloc dans une seule position de résultat crée un problème de tableau imbriqué. Le changement de la fonction externe en MAP ne fournit pas d'opération d'empilement générale selon le comportement de calcul conventionnel : le résultat interne contient toujours plusieurs cellules. La documentation MAP de Microsoft décrit la mise en correspondance de valeurs d'entrée avec de nouvelles valeurs, tandis que ses conseils sur #CALC! documentent la limitation des tableaux imbriqués.
Envelopper le calcul échoué dans VSTACK ne peut pas réparer le résultat interne. Le changement utile consiste à ajouter chaque bloc de recherche pendant le traitement des requêtes, de sorte que chaque résultat intermédiaire soit déjà un tableau rectangulaire unique.
Construire une recherche d'actifs complète avec REDUCE et VSTACK
1. Saisir les données sources synthétiques
Commencez avec une feuille de calcul vierge. Collez ce bloc séparé par des tabulations dans A1. Les quantités sont des comptages illustratifs d'actifs graphiques.
Groupe Actif Quantité
Mosaïque Tuile Ambre 2
Orbite Anneau Argent 3
Mosaïque Tuile Bleue 4
Prisme Panneau Transparent 5
Mosaïque Tuile Corail 1
Prisme Panneau Givré 2
Collez la liste de requêtes suivante dans E1. Conservez l'ordre indiqué afin de pouvoir comparer le résultat attendu.
Groupe demandé
Mosaïque
Orbite
Galets
Cet exemple inclut délibérément trois issues : Mosaïque a trois enregistrements correspondants, Orbite en a un, et Galets n'en a aucun. Les enregistrements Prisme doivent rester en dehors du résultat car ce groupe n'a pas été demandé.
2. Vérifier une recherche indépendamment
Entrez cette formule dans une zone inutilisée, par exemple L1 :
=FILTER($A$2:$C$7,$A$2:$A$7=$E$2,"No match")
Elle doit retourner les trois enregistrements Mosaïque. FILTER utilise la comparaison de groupe pour sélectionner les lignes complètes de la source. Son tableau d'inclusion doit avoir une hauteur ou une largeur compatible ; ici, la source et la condition couvrent toutes deux les lignes 2:7. Voir Fonction FILTER.
Cette petite vérification isole la recherche de la logique d'empilement. Si ces lignes sont incorrectes, corrigez les étiquettes ou les références sources avant d'ajouter le calcul externe.
3. Entrer la formule d'empilement complète
Laissez de la place dans les colonnes G:I, puis entrez cette formule dans G1 :
=REDUCE(
$A$1:$C$1,
$E$2:$E$4,
LAMBDA(acc,key,
VSTACK(
acc,
FILTER(
$A$2:$C$7,
$A$2:$A$7=key,
HSTACK(key,"No match","")
)
)
)
)
Appuyez sur Entrée. Entrez la formule une seule fois dans la cellule en haut à gauche de la sortie ; Excel dimensionne automatiquement la plage de déversement. Gardez-la en dehors d'un tableau Excel, car les formules de tableau déversées ne sont pas prises en charge à l'intérieur des tableaux. Microsoft explique les deux comportements dans Formules de tableau dynamiques et comportement de déversement.
4. Comparer le résultat attendu
Pour les données fournies, la sortie occupe G1:I6 :
| Groupe | Actif | Quantité |
|---|---|---|
| Mosaïque | Tuile Ambre | 2 |
| Mosaïque | Tuile Bleue | 4 |
| Mosaïque | Tuile Corail | 1 |
| Orbite | Anneau Argent | 3 |
| Galets | Aucune correspondance |
Les dimensions attendues découlent directement de l'exemple : une ligne d'en-tête, trois lignes Mosaïque, une ligne Orbite et une ligne pour la requête sans correspondance. Les quatre enregistrements correspondants contiennent des quantités totalisant 10. La quantité vide à côté de Galets distingue un résultat de recherche manquant d'une quantité d'actif nulle.
Comment la formule assemble le résultat
REDUCE commence avec A1:C1 comme accumulateur. Pour chaque valeur dans E2:E4, key contient le groupe actuellement demandé et acc contient le résultat assemblé jusqu'à présent. Microsoft documente ce motif de valeur initiale, d'accumulateur et de valeur actuelle dans Fonction REDUCE.
Dans cette formule, FILTER crée le prochain bloc correspondant et VSTACK l'ajoute sous acc. L'utilisation de l'en-tête réel comme valeur initiale donne immédiatement trois colonnes au résultat et évite d'introduire une ligne de départ vide jetable. VSTACK ajoute des tableaux verticalement en séquence, comme décrit dans Fonction VSTACK.
Lorsqu'il n'y a pas de correspondance, le troisième argument de FILTER fournit HSTACK(key,"No match",""). Cela crée une ligne de secours à trois colonnes : groupe demandé, étiquette explicative et quantité vide. Microsoft documente l'argument de résultat vide dans Fonction FILTER et la jointure horizontale dans Fonction HSTACK.
Garder cette ligne de secours large de trois colonnes est important. Microsoft documente que VSTACK remplit les colonnes manquantes avec #N/A lorsque ses tableaux d'entrée ont des largeurs différentes. Une ligne de secours à une seule cellule laisserait donc un remplissage indésirable à côté. Voir Fonction VSTACK.
Choisir le comportement de sortie avant d'étendre la feuille de calcul
La formule implémente une politique spécifique : traiter chaque requête dans l'ordre, conserver toutes les lignes sources correspondantes et afficher une ligne de marqueur pour un groupe non correspondant. La répétition d'un groupe dans la liste des requêtes répète par conséquent son bloc correspondant. La répétition d'un enregistrement source conserve également cet enregistrement ; cette formule ne contient aucune étape de suppression des doublons.
Utilisez cet aide à la décision lors de l'adaptation de l'exemple :
| Résultat souhaité | Approche appropriée | Condition |
|---|---|---|
| Un comptage pour chaque groupe | MAP avec COUNTIF |
Chaque requête produit une seule valeur |
| Tous les enregistrements d'actifs dans l'ordre des requêtes | La formule complète REDUCE ci-dessus |
Requiert les fonctions Microsoft 365 pour Mac documentées |
| Quelques blocs de recherche explicitement listés | VSTACK direct d'appels FILTER séparés |
Ajouter un argument de formule pour chaque requête |
| Tableaux imbriqués conservés dans les cellules | Aperçu des tableaux imbriqués de Microsoft | Requiert la disponibilité Beta documentée et les paramètres du classeur |
Pour une vérification compacte des comptages, entrez cette formule complète dans K6, en laissant trois cellules en dessous disponibles :
=MAP($E$2:$E$4,LAMBDA(key,COUNTIF($A$2:$A$7,key)))
Les comptages attendus sont 3, 1 et 0. C'est une utilisation appropriée de MAP car chaque requête produit un nombre. COUNTIF compte les cellules répondant à un critère ; l'exemple utilise des étiquettes synthétiques simples. Voir Fonction MAP et Utiliser la fonction NB.SI dans Microsoft Excel.
Alternative à requêtes fixes pour Excel 2024 pour Mac
Si votre édition fournit FILTER, HSTACK et VSTACK mais ne fournit pas REDUCE, utilisez cette alternative complète dans G1, en remplacement de la formule précédente. Elle produit la même sortie attendue pour les trois requêtes fournies :
=VSTACK(
$A$1:$C$1,
FILTER($A$2:$C$7,$A$2:$A$7=$E$2,HSTACK($E$2,"No match","")),
FILTER($A$2:$C$7,$A$2:$A$7=$E$3,HSTACK($E$3,"No match","")),
FILTER($A$2:$C$7,$A$2:$A$7=$E$4,HSTACK($E$4,"No match",""))
)
Microsoft répertorie Excel 2024 pour Mac dans la documentation des trois fonctions requises : FILTER, HSTACK et VSTACK. Le compromis est la maintenance : un autre groupe demandé nécessite un autre argument FILTER.
Diagnostiquer les erreurs et garder le résultat complet
Pour une erreur #SPILL!, sélectionnez la cellule de formule et inspectez la zone de sortie prévue. Déplacez les entrées existantes hors de cette zone et vérifiez la présence de cellules fusionnées. Microsoft identifie également les formules placées à l'intérieur de tableaux comme une cause ; conservez la sortie dans la grille de feuille de calcul ordinaire. Voir Comment corriger une erreur #SPILL!.
Pour #CALC!, identifiez d'abord quel calcul l'a produit. Une formule BYROW retournant un bloc multi-cellules atteint sa limite documentée de valeur unique. Une formule FILTER autonome sans correspondance et sans secours peut plutôt produire une erreur de tableau vide. Ce sont des causes distinctes décrites dans les conseils #CALC! de Microsoft.
Lors de l'ajout d'enregistrements sources, étendez à la fois $A$2:$C$7 et $A$2:$A$7 jusqu'à la même ligne de fin. Lors de l'ajout de requêtes à la version REDUCE, étendez $E$2:$E$4 jusqu'à la dernière requête prévue. Évitez d'inclure des cellules de requête inutilisées : la formule traite chaque cellule de cette plage.
Pour une liste source qui s'agrandit régulièrement, envisagez de stocker la source dans un tableau Excel et de remplacer les références sources fixes par des références structurées. Microsoft documente que les références structurées s'ajustent lorsque des lignes de tableau sont ajoutées ou supprimées. Maintenez le résultat de déversement en dehors du tableau. Voir Formules de tableau dynamiques et comportement de déversement.
Avant d'utiliser la liste d'actifs assemblée, comparez ses blocs de groupes avec la liste des requêtes et vérifiez les marqueurs de non-correspondance. Dans cet exemple, la vérification de fin utile est concrète : trois enregistrements Mosaïque, un enregistrement Orbite, un marqueur Galets visible et aucun enregistrement Prisme. Cela confirme la sélection et l'ordre prévus pour les données fournies.
Sources
Fonction BYROW — Support Microsoft.
Fonction MAP — Support Microsoft.
Fonction REDUCE — Support Microsoft.
Fonction VSTACK — Support Microsoft.
Fonction HSTACK — Support Microsoft.
Fonction FILTER — Support Microsoft.
Utiliser la fonction NB.SI dans Microsoft Excel — Support Microsoft.
Formules de tableau dynamiques et comportement de déversement — Support Microsoft.
Comment corriger une erreur #CALC! — Support Microsoft.
Comment corriger une erreur #SPILL! — Support Microsoft.
À propos d'Office : Quelle version d'Office est-ce que j'utilise ? — Support Microsoft.
Placer plusieurs valeurs dans une seule cellule avec des listes et des tableaux dans Excel — Blog Microsoft 365 Insider.