Explications d'une formule matricielle

Bonsoir à tous et joyeux Noël encore !

En cherchant un moyen d'extraire d'une colonne A, une colonne B sans doublons, j'ai trouvé un sujet traitant mon problème.

Cependant, cette formule matricielle reste obscure pour moi sur de nombreux points, voilà pourquoi je requiers vos lumières car j'aimerais vraiment comprendre le fonctionnement :

En C3

=INDEX($A:$A;MIN(SI(NB.SI(C$2:C2;$A$2:$A$40)=0;LIGNE($A$2:$A$40))))&""

  • N'étant que très peu familier avec les formules matricielles, quel est leur intérêt dans cet exemple ?
  • Pourquoi utilise-t-on la fonction MIN alors qu'il n'y a qu'un seul argument ?
  • A quoi sert le &"" de la fin ?

D'avance, je vous remercie pour votre précieuse aide !

48sans-doublon.zip (6.40 Ko)

Bonjour

Cependant, cette formule matricielle reste obscure pour moi sur de nombreux points, voilà pourquoi je requiers vos lumières car j'aimerais vraiment comprendre le fonctionnement :

En C3

=INDEX($A:$A;MIN(SI(NB.SI(C$2:C2;$A$2:$A$40)=0;LIGNE($A$2:$A$40))))&""

- N'étant que très peu familier avec les formules matricielles, quel est leur intérêt dans cet exemple ?

réponse:l'intérêt est de faire usage de la fonction NB.SI sur plusieurs critères puisque on cherche à chaque fois sur tout le champ A2:A40 les cellules équivalentes aux cellules situées au-dessus de cette formule en colonne C

- Pourquoi utilise-t-on la fonction MIN alors qu'il n'y a qu'un seul argument ?

réponse: parce que la Matricielle renvoie une série de 0 et de 1 et qu'il faut bien trouver le premier numéro de la ligne qui renverra 0 pour que la fonction INDEX renvoie le résultat correspondant.

- A quoi sert le &"" de la fin ?

réponse: Avec un peu plus de curiosité, tu l'aurais enlevé et tu aurais vu que la formule affichait 0 au lieu d'une cellule vide

Pour bien te rendre compte du fonctionnement, sélectionnes C5 ou C6 et dans le menu "Outils" active l'Audit de formules.

Le pas à pas te montreras les différentes étapes du calcul.

Cordialement

Bonjour Amadéus,

Merci pour vos explications claires qui m'ont permis de comprendre le fonctionnement de cette formule notamment grâce à l'outil "Audit de formules" dont je n'avais pas connaissance.

Une dernière question me vient à présent : comment se fait-il que si, dans cet exemple, la cellule A1 n'est pas vide, la fonction NB.SI renvoie une série de 1 alors que la cellule A1 n'entre même pas en jeu dans les arguments de la fonction NB.SI ?

Merci encore pour votre aide.

Bonjour

Le 1 du champ $A$2:$A$40 n'est pas A1, mais bien A2.

Cordialement

Bonjour,

Navré, mais je n'ai pas compris votre explication. Cependant, grâce à nouveau à l'"Audit de formules", j'ai pu trouvé ma réponse :

Lorsque la liste sans doublons est pleine, le NB.SI renvoie une série de 1, puis de FAUX avec la fonction SI. Comme il n'y a que des FAUX, la fonction MIN renvoie un 0. La fonction INDEX renvoie finalement le texte de la première ligne de la matrice colonne donnée dans la fonction INDEX.

Ultime question et promis, j'arrête d'abuser de votre temps après celle-ci :

J'ai effacé toute la matrice afin de la réécrire de moi-même. J'ai donc inscrit la formule traitée dans ce topic en C3 :

=INDEX($A:$A;MIN(SI(NB.SI(C$2:C2;$A$2:$A$40)=0;LIGNE($A$2:$A$40))))&""

Je sélectionne ensuite de C3 à C11 puis j'utilise les touches CRTL+SHIFT+ENTER. La formule s'inscrit alors bien dans toutes les cellules de la plage C3:C11 mais elle se s'incrémente pas au niveau des cellules écrites dans la formule.

Pouvez-vous m'indiquer où je fais une erreur dans la procédure ?

Encore merci pour vos précieuses explications !

Bonjour

Je sélectionne ensuite de C3 à C11 puis j'utilise les touches CRTL+SHIFT+ENTER. La formule s'inscrit alors bien dans toutes les cellules de la plage C3:C11 mais elle se s'incrémente pas au niveau des cellules écrites dans la formule.

L'erreur est de sélectionner C3:C11 car la validation ne fait pas l'incrémentation et remet la même formule sur toute la plage C3:C11.

Il faut valider la formule en C3, et ensuite l'incrémenter jusqu'à C11.

Cordialement

En effet, cela fonctionne. Vous avez répondu à toutes mes questions.

Merci de m'avoir éclairé sur tous ces points et du temps accordé.

Encore de bonnes fêtes de fin d'année à vous, Amadéus et aux autres membres du forum.

Rechercher des sujets similaires à "explications formule matricielle"