Problème incompréhension formule Excel

Résolu/Fermé
yoyod Messages postés 14 Date d'inscription mercredi 17 avril 2013 Statut Membre Dernière intervention 25 décembre 2014 - 17 juil. 2013 à 16:28
yoyod Messages postés 14 Date d'inscription mercredi 17 avril 2013 Statut Membre Dernière intervention 25 décembre 2014 - 18 juil. 2013 à 14:05
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
A voir également:

8 réponses

Mike-31 Messages postés 18350 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 28 novembre 2024 5 106
Modifié par Mike-31 le 17/07/2013 à 16:37
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.
0
Mike-31 Messages postés 18350 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 28 novembre 2024 5 106
17 juil. 2013 à 16:58
J'ai du lire trop vite, à tester

=SIERREUR(SI(EQUIV(B:B;AA:AA;0)=LIGNE();0; 1);-2)
0
via55 Messages postés 14501 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 28 novembre 2024 2 735
17 juil. 2013 à 16:46
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
0
yoyod Messages postés 14 Date d'inscription mercredi 17 avril 2013 Statut Membre Dernière intervention 25 décembre 2014
18 juil. 2013 à 09:57
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.
0
yoyod Messages postés 14 Date d'inscription mercredi 17 avril 2013 Statut Membre Dernière intervention 25 décembre 2014
17 juil. 2013 à 17:03
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
0
Mike-31 Messages postés 18350 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 28 novembre 2024 5 106
17 juil. 2013 à 17:17
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)
0
yoyod Messages postés 14 Date d'inscription mercredi 17 avril 2013 Statut Membre Dernière intervention 25 décembre 2014
18 juil. 2013 à 09:18
Bonjour,
Celle-ci ne fonctionne pas. Apparemment, je suis toujours en erreur puisqu'il me retourne tout le temps -2.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mike-31 Messages postés 18350 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 28 novembre 2024 5 106
17 juil. 2013 à 18:37
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))
0
yoyod Messages postés 14 Date d'inscription mercredi 17 avril 2013 Statut Membre Dernière intervention 25 décembre 2014
18 juil. 2013 à 09:27
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.
0
Mike-31 Messages postés 18350 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 28 novembre 2024 5 106
18 juil. 2013 à 09:58
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
0
yoyod Messages postés 14 Date d'inscription mercredi 17 avril 2013 Statut Membre Dernière intervention 25 décembre 2014
18 juil. 2013 à 10:13
Il n'y a pas de 0 dans la colonne B, en fait. :)
0
Mike-31 Messages postés 18350 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 28 novembre 2024 5 106
18 juil. 2013 à 10:19
Alors ça change tout, et "en fait" qu'elle valeur testes tu en AA et B ?
0
yoyod Messages postés 14 Date d'inscription mercredi 17 avril 2013 Statut Membre Dernière intervention 25 décembre 2014
18 juil. 2013 à 14:05
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.
0