Microsoft 365 somme.si en excluant les doublons

sebsti34

XLDnaute Nouveau
Bonjour,

après des heures à chercher et à faire des tests j'en appel aux pros

J'ai un fichier (celui que j'ai mis en exemple contient des données bidons car l'autre est une usine à gaz avec 700 lignes qui évoluent plusieurs fois par jour)

Je souhaiterais donc faire une somme de la colonne B, seulement si il y a une date en colonne D sans prendre en compte le doublon en colonne A. Dans mon tableau le bon résultat est donc 1400 et avec mes formules que j'ai testé je tombe toujours sur 1600 car je n'arrive pas à éliminer le doublon en A. Le chiffre en B sera toujours le même par rapport à la donnée en A donc peut importe quelle ligne est choisi pour la somme.
Je sais supprimer les doublons avec l'onglet données, mais je ne veux pas les supprimer, simplement ne pas les prendre en compte dans mon somme.si.
J'ai aussi essayé une formule avec SI(NB.SI afin d'afficher des 0 ou des 1 dans une colonne ajoutée à la fin mais le 1 s'ajoute bien sur le derniere doublon de la liste et c est pas forcément celui qui a une date en colonne D

quelqu'un pourrait me donner une piste?

Merci d'avance, bonne journée à tous.
 

Pièces jointes

  • exemple.xlsx
    9 KB · Affichages: 19
Solution
allez, pour aller encore un peu plus loin ... si je veux ajouter un critère de date pour que ça comptabilise uniquement entre telle date et telle date ou après telle date.
Voyez ce fichier (2) et la fonction VBA complétée avec 2 arguments supplémentaires facultatifs :
VB:
Function MaSomme#(plage As Range, colNom%, colDate%, colSomme%, Optional dat1 As Date, Optional dat2 As Date)
Dim d As Object, tablo, i&, dat, test As Boolean
Set d = CreateObject("Scripting.Dictionary")
d.CompareMode = vbTextCompare 'la casse est ignorée
tablo = plage 'matrice, plus rapide
For i = 1 To UBound(tablo)
    dat = tablo(i, colDate)
    test = IIf(dat1 And dat2, dat >= dat1 And dat <= dat2, True)
    If IsDate(tablo(i, colDate)) Then If test Then...

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

C'est soit que la demande n'est pas assez claire, soit que vous ne parvenez pas à comprendre la solution proposée, auquel cas il faut poser des questions claires sur ce que vous ne comprenez pas.

Pour ma part j'ai répondu à la demande telle que formulée.

Cordialement
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Ci joint le fichier avec la formule sans erreur de Roblochon.
Et qui correspond à la demande du post #1;
Si le résultat ne vous convient pas c'est que la demande est mal formulée.
Alors donnez la cellule erronée et dites pourquoi elle l'est.
 

Pièces jointes

  • réel (3).xlsx
    476.8 KB · Affichages: 8

sebsti34

XLDnaute Nouveau
Ci joint le fichier avec la formule sans erreur de Roblochon.
Et qui correspond à la demande du post #1;
Si le résultat ne vous convient pas c'est que la demande est mal formulée.
Alors donnez la cellule erronée et dites pourquoi elle l'est.
Merci de m'accorder du temps pour tenter de m'aider. Pour moi la formule ne fonctionne toujours pas. dans le post #1 j'ai précisé que je voulais une somme de la colonne D seulement si il y a une date dans la colonne AH (c'était colonne D dans mon petit fichier exemple) sans prendre en compte les doublons colonne B. Or la dans la derniere version ça ne fonctionne pas, puisque je devrais un avoir (par exemple car il y en a d autres) le 1 pour la ligne 8 et j'ai un 0
 

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

Une proposition par PowerQuery (inclus dans votre version office dans l'onglet données)

Les lignes null sur la colonne 34 sont supprimées et les items de la colonne 2 sont uniques.

Mais question :
Dans votre fichier Réel du post 11 pour la référence 'N034CAPE_S01' vous avez 3 lignes dont aucune n'a de date en colonne '34' !


Cordialement
 

Pièces jointes

  • Exemple.xlsx
    9.2 KB · Affichages: 3

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Voici un fichier avec 3 colonnes en plus.
AO met premier s'il trouve la première occurrence.
AP met date s'il trouve une date
AQ met OK s'il'y a Premiier et Date.
Vérifiez, les OK corresponds aux 1 de la colonne AM.

Si pb donnez la ligne et le pourquoi de l'erreur.
 

Pièces jointes

  • réel (3) (1).xlsx
    516 KB · Affichages: 5

sebsti34

XLDnaute Nouveau
Ligne 8 Résultat = 0 car AH8 est vide donc pas de date.
effectivement, désolé c'est la ligne 9 qui a une date et pourtant 0 au bout de la ligne.

En gros c est un suivi d'étude qui passe différente étape, donc il peut y avoir une multitude de version avant d atteindre, l étape ultime, d'ou votre remarque ci dessus. donc si aucune date en AH il faut un 0 au bout de la ligne. Parfois il y a 2 versions de la même étude envoyé à l'étape finale (nos fameux doublons) et que j'ai besoin de ne pas prendre en compte.

pour essayer de résumer autrement:
il faut que 1 s'affiche en bout de ligne si une date dans colonne AH tout en vérifiant qu'il n'y ai pas de doublons par rapport à colonne B
 

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

Avez-vous vu la solution par PowerQuery du post 22. Je n'y ai conservé que 3 colonnes mais on peut tout conserver.

Et ce sera ma toute dernière intervention sur ce fil, à moins d'une question claire et sans ambiguïté aucune.

cordialement
 

sebsti34

XLDnaute Nouveau
Re,

Avez-vous vu la solution par PowerQuery du post 22. Je n'y ai conservé que 3 colonnes mais on peut tout conserver.

Et ce sera ma toute dernière intervention sur ce fil, à moins d'une question claire et sans ambiguïté aucune.

cordialement
oui j'ai regardé mais c'est le fichier exemple et je ne vois pas de modif par rapport à ce matin.

pour moi ma demande est clair, désolé qu'elle ne soit pas aussi clair pour vous.
 

sebsti34

XLDnaute Nouveau
alors question claire par rapport à votre proposition que j ai remis en pj:
pourquoi en ligne 9 je n'ai pas 1 en bout de ligne? les conditions sont réunis alors qu'en ligne 65 et 66 la formule fonctionne correctement puisque j'ai bien le 1 et le 0 car doublon détecté.
 

Pièces jointes

  • réel (3) (4).xlsx
    476.8 KB · Affichages: 3