Problème incompréhension formule Excel [Résolu/Fermé]

Signaler
Messages postés
14
Date d'inscription
mercredi 17 avril 2013
Statut
Membre
Dernière intervention
25 décembre 2014
-
Messages postés
14
Date d'inscription
mercredi 17 avril 2013
Statut
Membre
Dernière intervention
25 décembre 2014
-
Bonjour à tous,

Cela fait déjà quelques heures que je suis bloqué sur une formule toute bête mais qui ne me retourne jamais le résultat souhaité.

J'ai deux colonnes d'entrée AA et B.
Je souhaite savoir si la valeur existante en AA n'existe pas déjà en B lors d'une mise à jour de mon fichier.
Les valeurs possibles en AA sont ma valeur existante, rien ou 0. Du coup, j'ai réalisé ma formule ainsi, afin qu'elle me réponde une valeur différente selon chaque cas :

=SI($AA5="";-2;SI($AA5=0;-1;SI(NB.SI($B$6:$B$1000;$AA5)=0;1;0)))

Normalement, si j'ai une valeur en AA et qu'elle existe en B, ceci devrait me répondre 0, si j'ai une valeur en AA mais qu'elle n'existe pas dans la colonne B, ceci devrait me répondre 1, si j'ai rien en AA, ceci devrait me répondre -2 et si j'ai 0 en AA, ceci devrait me répondre -1.

Au début, j'avais des résultats totalement bizarres, par exemple 1 sur toutes les lignes résultantes ! Après renseignements, j'ai mis la formule de façon matricielle :
{=SI($AA5="";-2;SI($AA5=0;-1;SI(NB.SI($B$6:$B$1000;$AA5)=0;1;0)))}

Les résultats semblaient plus cohérents mais cela ne me donne toujours pas le bon résultat.

Auriez-vous une idée sur le pourquoi du non fonctionnement de cette formule ?

Merci d'avance pour vos éclaircissements,

yoyod

8 réponses

Messages postés
17301
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
20 janvier 2021
4 503
Bonjour,

suivant que tu donne la priorité en B ou AA

=SI(EQUIV(B:B;AA:AA;0)=LIGNE(); ""; 0)
ou
=SI(EQUIV(AA:AA;B:B;0)=LIGNE(); ""; 0)
dans ce cas il faudra compléter avec une gestion d'erreur enfin d'après ce que j'ai compris
=SIERREUR(SI(EQUIV(AA:AA;B:B;0)=LIGNE(); ""; 0);"")

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
Messages postés
17301
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
20 janvier 2021
4 503
J'ai du lire trop vite, à tester

=SIERREUR(SI(EQUIV(B:B;AA:AA;0)=LIGNE();0; 1);-2)
Messages postés
12936
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
25 février 2021
2 132
Bonjour

Chez moi ta formule non matricielle fonctionne bien

joins un exemple allégé et anonymé de ton fichier sur cjoint.com et indiques le lien fourni

Cdlmnt
Messages postés
14
Date d'inscription
mercredi 17 avril 2013
Statut
Membre
Dernière intervention
25 décembre 2014

Bonjour,

Ci-joint le fichier allégé et anonymé : https://www.cjoint.com/?3Gsj3okC63n

Effectivement, ça semble fonctionner, sur ma version allégée. Je vais regarder ça plus en détail car je ne vois pas pourquoi cela ne fonctionnerait pas sur l'original.
Est-ce que le fait que dans l'original, B et AA ne soient pas dans la même feuille peut y jouer ?
PS : Les noms des feuilles ont bien été précisés devant AA et devant B, dans l'original.
Messages postés
14
Date d'inscription
mercredi 17 avril 2013
Statut
Membre
Dernière intervention
25 décembre 2014

Merci, je suis sur la bonne voie.
Je ne connaissais pas du tout, EQUIV et LIGNE.

Je donne la priorité à AA car je cherche l'existence des valeurs de AA dans la colonne B.

Est-ce que le premier "" de ta formule correspondrait chez moi au -2 ?
D'autre part, je ne vois pas comment avoir mon cas avec la réponse égale à 1 si la valeur n'existe pas dans ma colonne B mais existe dans ma colonne AA.
Peux-tu m'éclairer ou m'indiquer à quelle partie de ma formule correspond ton code =SIERREUR(SI(EQUIV(AA:AA;B:B;0)=LIGNE();"";0)"") ?

Encore merci,

yoyod
Messages postés
17301
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
20 janvier 2021
4 503
Re,

Tu n'as peut être pas vue mon commentaire avec la formule corrigée

=SIERREUR(SI(EQUIV(B:B;AA:AA;0)=LIGNE();0; 1);-2)
Messages postés
14
Date d'inscription
mercredi 17 avril 2013
Statut
Membre
Dernière intervention
25 décembre 2014

Bonjour,
Celle-ci ne fonctionne pas. Apparemment, je suis toujours en erreur puisqu'il me retourne tout le temps -2.
Messages postés
17301
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
20 janvier 2021
4 503
Re,

essaye peut être comme cela

=SI(ET(NB.SI(AA:AA;0)>0;NB.SI(B:B;0)>0);0;SI(ET(NB.SI(AA:AA;0)>0;NB.SI(B:B;0)=0);1;-2))
Messages postés
14
Date d'inscription
mercredi 17 avril 2013
Statut
Membre
Dernière intervention
25 décembre 2014

Es-tu sûr de celle-ci ?
Le problème de cette formule, je pense, c'est que j'ai des cellules vides, que ce soit dans la colonne AA ou dans la colonne B. Comme cette formule semble prendre toute la colonne à chaque fois, il me trouve les espaces et cela ne me retourne pas le bon résultat.
A la place du NB.SI(...;0), j'ai mis NB.SI(...,$AA_numeroLigneAdapté) et le résultat obtenu est -2 quand je devrais avoir 1 et 0 sinon. Et quand je mets un numéro dans AA qui n'existe pas dans B, il me retourne quand même -2.
Messages postés
17301
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
20 janvier 2021
4 503
Re,

Oui enfin je suis sur si j'ai bien compris ?
d'après ta demande
Normalement, si j'ai une valeur en AA et qu'elle existe en B, ceci devrait me répondre 0, si j'ai une valeur en AA mais qu'elle n'existe pas dans la colonne B, ceci devrait me répondre 1, si j'ai rien en AA, ceci devrait me répondre -2 et si j'ai 0 en AA, ceci devrait me répondre -1"

on teste la colonne AA et la colonne B si elles contiennent la valeur 0 la formule retourne 0

si il y a un 0 en AA et rien en B la formule retourne 1

et si il n'y a pas de valeur 0 en AA la formule retourne -2
Messages postés
14
Date d'inscription
mercredi 17 avril 2013
Statut
Membre
Dernière intervention
25 décembre 2014

Il n'y a pas de 0 dans la colonne B, en fait. :)
Messages postés
17301
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
20 janvier 2021
4 503
Alors ça change tout, et "en fait" qu'elle valeur testes tu en AA et B ?
Messages postés
14
Date d'inscription
mercredi 17 avril 2013
Statut
Membre
Dernière intervention
25 décembre 2014

Merci à vous deux pour votre aide. Il s'avère que ma formule fonctionnait. Alors pourquoi ne fonctionnait-elle pas hier ? Mystère et boule de gomme... Sans doute la fatigue de fin de journée, aussi.

En tout cas, merci. J'ai appris à me servir de EQUIV et LIGNE, du coup. :)

NB : Pour ceux qui passeraient plus tard sur ce forum, le lien posté sur cjoint.com est volontairement mort.