Formule à plusieurs conditions

Résolu/Fermé
chf2604 Messages postés 8 Date d'inscription mardi 17 juillet 2018 Statut Membre Dernière intervention 2 août 2018 - Modifié le 17 juil. 2018 à 12:51
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 - 18 juil. 2018 à 11:30
Bonjour,
Je souhaite pouvoir calculer le montant de produits vendus en solde et j’ai pour cela trois conditions à appliquer à ma base de donnée.
J’ai un fichier à part avec le code des produits concernés par la reduction, j’ai un onglet à part avec les deux dates qui correspondent à la periode de solde pour 3 monnaies différentes ( 20/12/2017 à 20/01/2018 en GBP, etc).
Je voudrais que dans ma colonne « MD » dans ma base de donnée apparaisse le montant de la vente SI la vente a été faite dans cet intervalle (intervalle qui différe selon la monnaie) et SI le code produit est bien concerné par la remise.
Quelle est la meilleure formule ?
Merci beaucoup pour votre aide

2 réponses

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
17 juil. 2018 à 13:53
Bonjour
là c'est un peu le brouillard
pour avoir une réponse, mieux vaudrait déposer un fichier ici, en bidouillant si besoin les infos confidentielles, et en ajoutant quelques explications
htto://mon-partage.frt
et revenez coller le lien créé sur le site
à vous lire
crdlmnt

1
chf2604 Messages postés 8 Date d'inscription mardi 17 juillet 2018 Statut Membre Dernière intervention 2 août 2018
17 juil. 2018 à 17:07
https://docs.google.com/spreadsheets/d/1WbRo4bk8BgtBxTh4PaIqft1R3OgyjnKfw_GXZg6bYfY/edit?usp=sharing

Bonjour,
Merci d'avance pour votre aide, est ce que ce partage google sheet fonctionne ? Il y a les données a traiter et des explications en esperant que cela soit plus claire.
Ch
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
17 juil. 2018 à 17:41
Re
je ne connais pas google drive, mais on pourrait entre quelque chose avec Excel... les formules ne semblent pas très éloignées
toutefois avant toute tentative, il y a un problème à régler dans la feuille MD, qui rend quasiment inexploitable vos données:
votre liste en A de MD occupe 33400 ligne et des poussières,
je l'ai collée sur Excel et j'ai supprimé les doublons. Il reste 804 références différentes sur ces + de 33400
(certaines sont répétées plus de 170 fois
difficile de faire quoique ce soit avec ça

toutefois, un conseil si vous arrivez à gérer ce volume
vous pouvez placer en colonne E cette formulesur la hauteur utile:
=IF(SUMPRODUCT((MD!$A$2:$A$334&-=A2)*(MD!$B$2:$B$33416="MD"))>0;1;"")
pour identifier les produits signalé par MD en B de MD ou
=IF(Or(SUMPRODUCT((MD!$A$2:$A$33400=A2)*(MD!$B$2:$B$33400="MD"))>0;=SUMPRODUCT((MD!$A$2:$A$33400=A2)*(MD!$C$2:$C$33400="MD")));1;"")
si vous voulez détecter MD sur les deux colonnes
ou enfin, s'il s'agit simplement de détecter si la référence existe en A de MD:
=IF(COUNTIF(MD!$A$2:$A$33416;A2);1;"")

vous pourrez avec ça en feuille DB utiliser, pour une plage de ligne 2 à ligne 1000 à adapter

=SUMPRODUCT(($D$2:$D$1000="GPB")*($E$2:$E$1000=1)*($C$2:$C$1000))

mais si vous ne pouvez pas réduire le nombre de lignes en MD, ça risque de fonctionner lentement!

avec le volume du ficher et ma méconnaissance de googlesheet, je ne peux pas vous en dire plus

crdlmnt



0
chf2604 Messages postés 8 Date d'inscription mardi 17 juillet 2018 Statut Membre Dernière intervention 2 août 2018
18 juil. 2018 à 09:50
Ok merci bcp. Ca fonctionne pour identifier les produits en MD mais je ne vois pas comment intégrer le deuxième paramètre de la date ? Pour que le produit soit considéré en solde il faut que l'achat ait été effectué dans un intervalle de temps définit et différent selon la monnaie de la transaction. Si vous avez des pistes de formule qui me permettrais de tout combiner cela m'aiderait bcp. Merci!
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
18 juil. 2018 à 10:14
si les dates limites sont dans la feuille Dates, il reste à identifier dans le tableau ce qui correspond à FW et SS pour
mais pour limiter SUMPRODUCT à un mois ou entre deux dates, il suffit de rajouter les conditions dans la formule:
/.....*(champ date>=SI(date mini)*(champ date<=date maxi)*......

mais compte tenu des dates qui se répartissent à priori sur deux sessions, je vous conseillerait plutôt
en feuille date:
faire un colonne (exemple colonne e pour GBP et une colonne pour chaque sigle, dans laquelle vous développez la liste des dates avec tous les jours concernés
ensuite il suffira de modifier la formule proposée en D pour écrire, si vous voulez conserver la condition MD en ajoutant la condition date:

=IF(COUNTIF(Dates!E:E;B2));"";IF(SUMPRODUCT((MD!$A$2:$A$334&-=A2)*(MD!$B$2:$B$33416="MD"))>0;1;"")))

qui ressortira 1 si le tableau feuille MD con tient MD en B, mais uniquement si la date en B n'est pas dans liste de D:D en feuille Dates


la formule de calcul reste alors inchangée, soit pour mémoire:
=SUMPRODUCT(($D$2:$D$1000="GPB")*($E$2:$E$1000=1)*($C$2:$C$1000))

crdlmnt
0
chf2604 Messages postés 8 Date d'inscription mardi 17 juillet 2018 Statut Membre Dernière intervention 2 août 2018
18 juil. 2018 à 10:15
Parfait ! Un grand merci. Bonne journée
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
18 juil. 2018 à 11:30
Pas de quoi

bien entendu vous avez du corriger ma proposition? pour que la date soit incluse dans la période de solde, il faut écrire en 1° formule:
=IF(COUNTIF(Dates!E:E;B2))=0;"";..............

si ça vous convient, merci de passer le sujet en résolu
(menu sur la roue dentée en haut à droite du titre du fil)

bonne route
crdlpmnt
0