Fonction si avec condition multiple complexe

Résolu/Fermé
Elcaprio Messages postés 71 Date d'inscription mercredi 10 octobre 2007 Statut Membre Dernière intervention 11 août 2016 - Modifié par Elcaprio le 22/10/2013 à 10:22
Elcaprio Messages postés 71 Date d'inscription mercredi 10 octobre 2007 Statut Membre Dernière intervention 11 août 2016 - 23 oct. 2013 à 15:30
Bonjour,

Voilà mon soucis:
Je dois mettre un jour un fichier client.
J'ai 3 possibilités "à conserver"; "à ajouter"; "à supprimer".
En colonne D j'ai mon numéro de siret; je me base dessus pour chercher dans une plage, que je vais nommé ici clt_1, diverses informations.
En colonne E j'ai le CA réalisé durant l'année.
Les clients devant prendre le statut "à conserver" sont les clients dont la colonne E n'est pas vide et pour lesquels j'ai des informations dans ma plage clt_1.
Les clients devant prendre le statut "à supprimer" sont les clients dont la colonne E est vide puisque je ne réalise plus de CA avec eux.
Les clients devant prendre le statut "à créer" sont les clients dont la colonne E n'est pas vide (j'ai réalisé un CA avec eux) et qui n'ont aucune information dans ma plage clt_1.

Pour le moment j'ai tenté 3 approches du problème, sans succès.
=SI(OU(E5="";ESTNA(RECHERCHE(D5;clt_1)));"a supprimer";"a concerver")
=SI(E7="";"client a supprimer";SI(ESTVIDE(RECHERCHE(D7;clt_1));"à créer";"à conserver"))
=SI(RECHERCHEV(D3;clt_1;22)="";"";SI(ESTVIDE(E3);"à supprimé";SI(ESTVIDE(RECHERCHE(D3;clt_1_3));"à ajouter";"a conserver")))

Je pense que la derniere est très compliqué alors qu'il n'y a pas besoin.
Merci d'avance pour vos réponses.

4 réponses

Elcaprio Messages postés 71 Date d'inscription mercredi 10 octobre 2007 Statut Membre Dernière intervention 11 août 2016 4
22 oct. 2013 à 10:39
Petites précisions qui peut avoir son importance pour les recherchev;
- la plage clt_1 est sur une autre feuille
- la première colonne de la place clt_1 correspond au contenu de la colonne D, a savoir les numéros de siret.
0
melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
22 oct. 2013 à 10:49
Bonjour,

En colonne D j'ai mon numéro de siret; je me base dessus pour chercher dans une plage, que je vais nommé ici clt_1, diverses informations.
En colonne E j'ai le CA réalisé durant l'année.
Les clients devant prendre le statut "à conserver" sont les clients dont la colonne E n'est pas vide et pour lesquels j'ai des informations dans ma plage clt_1.

Les clients devant prendre le statut "à créer" sont les clients dont la colonne E n'est pas vide (j'ai réalisé un CA avec eux) et qui n'ont aucune information dans ma plage clt_1.


=si(estvide(E5);"à supprimer";si(nbval(clt_1)=0;"à créer";"à conserver"))

==> nbval compte le nombre cellules non vide dans une plage de cellule.
Autrement si nbval(clt-1) = 0 ==> si le nombre de cellules contenant une valeur dans ta plage de cellule = 0, ca veut dire que tu n'as aucune information, alors "à créer".
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
Modifié par eriiic le 22/10/2013 à 11:01
Bonjour à tous,

nbval compte le nombre cellules non vide dans une plage de cellule.
A ceci prêt qu'une formule retournant "" comme valeur sera considérée comme non vide, alors que visuellement elle l'est.

eric
0
Elcaprio Messages postés 71 Date d'inscription mercredi 10 octobre 2007 Statut Membre Dernière intervention 11 août 2016 4
Modifié par Elcaprio le 22/10/2013 à 11:43
J'ai pris une autre approche, en partant du principe que ma recherchev me renvoi l'erreur n/a si elle ne trouve pas le siret que j'ai sur ma feuille, je lui dit d'afficher "client à créer" puisque le contenu de la colonne D n'est pas retrouvé dans clt_1.
Ensuite si E est vide alors "à supprimer" et si les deux conditions précédente ne sont pas validé, alors c'est que j'ai mon siret sur ma plage et que la cellule E n'est pas vide donc "à conserver".

Le problème que j'ai maintenant, c'est la redondance des sirets dans mon fichier, et là je pense qu'il faut une macro qui verifie si la cellule du dessus ou celle du dessous a la même valeur et si oui, supprimer la ligne. Quelque chose dans ce goût la. Mais je ne maitrise absolument pas le VBA et avec les macros automatique je ne voit pas comment faire.
Il faut aussi prendre en compte que j'ai des clients étranger qui n'ont pas de siret, donc la cellule D est vide pour eux.

PS:
En fait c'est encore plus compliqué car il faut que je prenne en compte les groupes.
A savoir que sous le même siret je peut avoir plusieurs clients (exemple: si vous vendez des produits a plusieurs intermarché, vous aurez plusieurs magasins donc plusieurs clients, cependant tous auront le siret d'intermarché).
Il faut donc que je supprime les lignes des doublons a condition qu'il n'y ai pas de CA réalisé.
L'algorithme donne un truc dans ce genre:
en admettant que l'on soit dans la cellule D2 et qu'il y ait 50 ligne dans le tableau.
Tant que ligne<50
si D1=D2 ou si D3=D2 et que E2 vide alors supprime la ligne, sinon ligne +1.
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
22 oct. 2013 à 11:48
Re,

au lieu de mettre des rustines un peu partout pour en faire une usine à gaz si tu déposais un extrait de ton fichier de base en mettant dessus le résultat attendu ?
cjoint.com, coller ici le lien fourni.
Soit très clair et très précis sur les explications.

eric
0
Elcaprio Messages postés 71 Date d'inscription mercredi 10 octobre 2007 Statut Membre Dernière intervention 11 août 2016 4
Modifié par Elcaprio le 22/10/2013 à 12:20
ok, je viens d'en faire une réplique, je ne peux mettre l'original pour des raisons de confidentialité évidente.

https://www.cjoint.com/?3JwmpfXHfjj

Je n'ai pas mis le cas ou il faut supprimer le ligne a savoir s'il y a 2 siret identique et que les 2 CA sont a 0.

Merci
0
Elcaprio Messages postés 71 Date d'inscription mercredi 10 octobre 2007 Statut Membre Dernière intervention 11 août 2016 4
22 oct. 2013 à 13:55
En jouant avec des filtres j'arrive au résultat que je souhaite.
C'est pas l'idéal mais sa fera l'affaire.
Merci pour vos réponses.
0
Elcaprio Messages postés 71 Date d'inscription mercredi 10 octobre 2007 Statut Membre Dernière intervention 11 août 2016 4
Modifié par Elcaprio le 22/10/2013 à 10:59
Bon, a priori j'ai réeussi a me débloqué en faisant:
=SI(ESTVIDE(E3);"client à supprimer";SI(ESTNA(RECHERCHEV(D3;clt_1;1;FAUX));"client à créer";"client à conserver"))

Par contre, 2eme problème: le fichier sur lequel je travail est une extraction d'un logiciel tiers, il ce trouve que parfois j'ai plusieurs fois le même siret dans ma colonne D, je voudrais supprimer les redondances afin d'avoir chaque client une seule fois. Avez vous une idée ?
0
Lentzouille Messages postés 670 Date d'inscription mardi 27 septembre 2011 Statut Membre Dernière intervention 11 septembre 2020 63
22 oct. 2013 à 11:50
Bonjour,

Pour une meilleure lisibilité veuillez nous mettre le fichier à disposition via,

www.cjoint.com;

Cdt,
0