Formule matricielle - Microsoft 365

Fermé
F60lebaladinverni Messages postés 126 Date d'inscription samedi 28 janvier 2017 Statut Membre Dernière intervention 7 avril 2023 - 25 mai 2021 à 12:09
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 - 25 mai 2021 à 16:07
Bonjour à tous,

Je bloque sur une formule matricielle Microsoft 365.
Voici un fichier exemple pour illustrer mes propos :
https://www.cjoint.com/c/KEzj3CEbFGL

Dans l'onglet "Feuil1", j'ai un tableau de Noms.
Dans l'onglet 'Feuil2", je recopie ma liste de noms dans la colonne A via cette formule
=Tableau1[nom]

Cela concerne les cellules jaunes.

Ma problématique est la suivante : calculer un avancement en fonction du nombre d'étapes validées. Pour cela, une formule de ce style fonctionne :
=NBVAL(C2:E2)/NBVAL($C$1:$E$1)

Elle correspond aux cellules oranges.

Le seul problème, c'est que cette formule ne s'étend pas automatiquement jusqu'en bas de mon tableau. Je dois le faire manuellement et j'aimerais l'éviter.

j'ai donc testé la formule suivante dans les cellules vertes
=SI(A9#<>"";NBVAL(C9:E9)/NBVAL($C$1:$E$1);"")

Cette formule s'étend bien jusqu'en bas du tableau, mais elle recopie sur chaque cellule le résultat obtenu à la 1ere ligne...

Je ne vois pas quelle solution je peux mettre.

J'espère avoir été assez clair

Cordialement
A voir également:

2 réponses

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
Modifié le 25 mai 2021 à 12:41
Bonjour
on ne sait pas si le fichier soumis représente exactement votre problème, mais si c'est le cas:
1°) pas utile d'avoir dans la liste de référence des noms en feuille 1 un tableau formaté , une simple liste suffit
2°) mais même en gardant ce type, la feuille2 ne nécessite pas de formule matricielle pour assurer les résultats cherchés
3°) donc en liste colonne A de la feuille 2 il suffit d'écrire:
=Tableau1[@nom] sans les accolades
4°) on peut ensuite écrire pour un champ éventuel de C à Z, en B:
=NB.SI(C2:Z2;"x")/NB.SI($C$1:$Z$1;"<>")
crdlmnt




0
F60lebaladinverni Messages postés 126 Date d'inscription samedi 28 janvier 2017 Statut Membre Dernière intervention 7 avril 2023 2
25 mai 2021 à 14:51
Merci pour ta réponse.

J'apporte alors quelques éléments de précisions :
- Il n'y a pas forcément d'ordre dans les étapes, disons que c'est plutôt une check-list et tu peux remplir le tableau dans le désordre.
- J'ai mis des "x" mais dans l'absolu, on peut y inscrire n'importe quoi, c'est pour ça que je pense qu'un NBVAL n'est pas si mal.

Pour ce qui est des formules :
- pour la colonne A
Ecrire =Tableau1[nom] en A2 suffit à étendre la formule de A2 à A5 directement. La formule se mettra à jour jusque A6 automatiquement si j'ajoute un nom au tableau du 1er onglet.
- pour la colonne B
ta formule est bien, mais si je l'écris en B2, je dois la tirer manuellement jusque B5, et si je rajoute un nom dans le tableau de mon 1er onglet, je ne dois pas oublier de tirer la formule en B6 à la main. Et c'est la mon problème.

J'ajoute que les formules utilisées ne sont disponibles qu'avec un compte Microsoft 365.

Cordialement
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
Modifié le 25 mai 2021 à 16:08
Re
1° pour la formule , on peut remplacer "x" par "<>" dans le premier NBSI, résultat identique quelque soit la valeur des cellules
2° pour incrémenter les formules automatiquement, je ne vois que mettre l'édition sous forme de tableau et tirer la formule en A qui renvoie le nom de la feuille 1 sur la hauteur utile. Après les formules en B, non matricielles, se placent toutes seules sur la hauteur remplie de A
crdlmnt


0