Somme selon doublon de texte variable

Bonjour,

Je rencontre une difficulté sur un tableau pro.

Il me sert à récapituler les heures du personnel qui pointent sur affaire.

Comme le tableau des heures est lisible de manière chronologique (heures et chantiers à rentrer de l'arrivée vers le départ), il arrive fréquemment qu'ils aient plusieurs fois la même affaire dans la journée. Dans ce cas précis, je dois donc faire moi-même l'addition.

Je chercher à automatiser cet aspect, sachant que je n'ai trouvé pour le moment que des solutions viables lorsqu'on sait quel doublon on cherche (ex : 2 fois le mot pomme) mais là j'ai un nombre très grand d'affaire potentiel je ne peux donc pas préciser le libellé de ce que je recherche.

La mise en forme conditionnelle des doublons marche assez bien pour répérer mais ça cause deux problèmes :

1- la surbrillance se met sur la partie salarié (colonne B à E) et il ne faut pas que ça ressorte comme une anomalie pour eux

2- ça ne règle pas le besoin de la somme des heures correspondantes

En gros, j'aurais besoin d'une formule qui dise : Si dans la plage C5:C8 tu trouves un doublon de texte, additionnes moi les heures correspondantes de la colonne D

Dans mon exemple en PJ : H5 serait donc = D4+D7

Si pas de doublon, pas besoin du calcul

Merci d'avance pour le temps que vous prendrez à me répondre

NB : je joins un fichier complétement différent du réel et simpliste pour l'exemple car les docs internes sont confidentiels, c'était juste pour montrer le mécanisme

Bonjour,

La version Excel que tu indiques n'existe pas. Est-ce Excel 2016 ? 2019 ? 365 ?

Je te propose une solution via PowerQuery. Si le résultat te convient et que tu ne connais pas PowerQuery, je pourrai t'expliquer comment faire...

5cni2411.xlsx (18.82 Ko)
let
    Source = Excel.CurrentWorkbook(){[Name="Tableau1"]}[Content],
    RempVersBas = Table.FillDown(Source,{"Jour"}),
    GroupBy = Table.Group(RempVersBas, {"Jour", "Lieu"}, {{"NbHeures", each List.Sum([#"Nombre d'heures"]), type any}, {"NbLignes", each Table.RowCount(_), Int64.Type}}),
    Filtre = Table.SelectRows(GroupBy, each ([NbLignes] = 2)) [[Jour], [Lieu], [NbHeures]],
    Tri = Table.Sort(Filtre,{{"Jour", Order.Ascending}, {"Lieu", Order.Ascending}})
in
    Tri

Bonsoir à tous !

Une proposition type "formule" pour Microsoft 365 (Insider ?) :

=LET(g;GROUPER.PAR(ASSEMB.H(SCAN(;B5:B12;LAMBDA(a;c;SI(c=0;a;c)));C5:C12);D5:D12;SOMME);FILTRE(g;PRENDRE(g;;-1)<>0))
image

Merci pour vos réponses

365 la version.
je vais tester ça demain et vous ferais un retour

Bonsoir à tous de nouveau !

365 la version.

Cette information est à préciser dans votre profil !

Bonjour à tous,

Une autre possibilité :

en G5
=LET(p;C5:C8;UNIQUE(FILTRE(p;NB.SI(p;p)>1;"")))
et en H5
=SOMME.SI.ENS(D5:D8;C5:C8;G5#)

Bonjour à tous

J'ai essayé la formule de @BeGood sur mon fichier exemple ça marche du tonnerre

Merci à tous

Bonjour à tous !

Excellente nouvelle

Je vous remercie de ce retour.

Rechercher des sujets similaires à "somme doublon texte variable"