Fonction si avec condition multiple complexe
Résolu
Elcaprio
Messages postés
71
Date d'inscription
Statut
Membre
Dernière intervention
-
Elcaprio Messages postés 71 Date d'inscription Statut Membre Dernière intervention -
Elcaprio Messages postés 71 Date d'inscription Statut Membre Dernière intervention -
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.
Je pense que la derniere est très compliqué alors qu'il n'y a pas besoin.
Merci d'avance pour vos réponses.
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.
A voir également:
- Fonction si avec condition multiple complexe
- Fonction si et - Guide
- Excel cellule couleur si condition texte - Guide
- Ecran multiple pc - Guide
- Excel cellule choix multiple - Guide
- Copier coller multiple - Guide
4 réponses
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.
- 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.
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".
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".
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.
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.
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
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
Bon, a priori j'ai réeussi a me débloqué en faisant:
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 ?
=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 ?