Autres Excel 2024 : Regrouper racine nom en un seul nom

  • Initiateur de la discussion Initiateur de la discussion kdet
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

kdet

XLDnaute Occasionnel
Bonjour à tous, le forum,

J'aurai besoin de votre aide svp. J'utilise Excel 2024 LTSC. j'ai utilisé cette formule en A2 qui est un peu longue désolé :

"=CHOISIR({1.2.3.4.5.6}; UNIQUE(TblSaisieFactures[FOURNISSEURS]); SOMME.SI.ENS(TblSaisieFactures[MONTANT]; TblSaisieFactures[FOURNISSEURS]; UNIQUE(TblSaisieFactures[FOURNISSEURS]) & "*"; TblSaisieFactures[DATE]; ">="&DATE(B$1;1;1); TblSaisieFactures[DATE]; "<="&DATE(B$1;12;31)); SOMME.SI.ENS(TblSaisieFactures[MONTANT]; TblSaisieFactures[FOURNISSEURS]; UNIQUE(TblSaisieFactures[FOURNISSEURS]) & "*"; TblSaisieFactures[DATE]; ">="&DATE(C$1;1;1); TblSaisieFactures[DATE]; "<="&DATE(C$1;12;31)); SOMME.SI.ENS(TblSaisieFactures[MONTANT]; TblSaisieFactures[FOURNISSEURS]; UNIQUE(TblSaisieFactures[FOURNISSEURS]) & "*"; TblSaisieFactures[DATE]; ">="&DATE(D$1;1;1); TblSaisieFactures[DATE]; "<="&DATE(D$1;12;31)); SOMME.SI.ENS(TblSaisieFactures[MONTANT]; TblSaisieFactures[FOURNISSEURS]; UNIQUE(TblSaisieFactures[FOURNISSEURS]) & "*"; TblSaisieFactures[DATE]; ">="&DATE(E$1;1;1); TblSaisieFactures[DATE]; "<="&DATE(E$1;12;31)); SOMME.SI.ENS(TblSaisieFactures[MONTANT]; TblSaisieFactures[FOURNISSEURS]; UNIQUE(TblSaisieFactures[FOURNISSEURS]) & "*"; TblSaisieFactures[DATE]; ">="&DATE(F$1;1;1); TblSaisieFactures[DATE]; "<="&DATE(F$1;12;31)))"

Dans mon fichier joint, colonne H et I, par quelle formule peut-on regrouper les fournisseurs qui ont les mêmes racines et de l'inclure dans la formule ci-dessus?

Vous remerciant par avance de votre aimable collaboration.

kdet
 

Pièces jointes

Bonjour,

Ca ne répond pas à ta question mais ta formule en A2 ne pourrait pas être

=Let(f;UNIQUE(TblSaisieFactures[FOURNISSEURS]);
m;SOMME.SI.ENS(TblSaisieFactures[MONTANT]; TblSaisieFactures[FOURNISSEURS]; f & "*"; annee(TblSaisieFactures[DATE]);INDEX(B$1:F$1;1;SEQUENCE(;5)));
ASSEMB.H(f;m))


formule non testé Edit : Oop marche pas !

Sinon pour extraire la "racine"
INDEX(FRACTIONNER.TEXTE(A2;" ");;1)
 
Dernière édition:
Bonsoir,
@Hecatonchire 🤚
Au vu des données, et des "racines", j'ai bien peur qu'un "Fractionner.Texte" ne soit 100% compatible...
1772215661090.png

Parfois un espace, parfois 2...
Perso, je pense qu'une table de correspondance, puis une fusion via Power Query, ça aurait de la gueule....😅
Bonne soirée
 
Bonsoir kdet, le forum,

Pas trop compris ce que vous voulez faire mais voici une solution VBA avec filtrage par liste de validation, le code de la feuille :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range("H2:H" & Rows.Count).ClearContents 'RAZ
If Intersect(Target, UsedRange(1)) Is Nothing Then Exit Sub
Dim d As Object, tablo, i&, s
Set d = CreateObject("Scripting.Dictionary")
tablo = [A1].CurrentRegion
For i = 3 To UBound(tablo)
    s = Split(tablo(i, 1))
    If UBound(s) > -1 Then d(UCase(s(0))) = ""
Next i
If d.Count = 0 Then Exit Sub
With [H2].Resize(d.Count)
    .Value = Application.Transpose(d.keys) 'Transpose est limitée à 65536 lignes
    .Sort .Cells, xlAscending, Header:=xlNo 'tri alphabétique
    .Name = "Liste"
End With
'---liste de validation---
[A1].Validation.Delete
[A1].Validation.Add xlValidateList, Formula1:="=Liste"
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A1]) Is Nothing Then [A1].CurrentRegion.Offset(1).AutoFilter 1, [A1] & "*" 'filtre automatique
End Sub
Masquez la colonne H.

A+
 

Pièces jointes

@Hecatonchire comment vous retrouvez les colonnes qui manquent DATE et MONTANT dans le tableau qui manque lui aussi ?

@kdet le fichier que vous fournissez n'est sans doute pas le bon... Et une question : Comment avez vous fait pour arriver à une formule d'une telle complexité ?

@Cousinhub je serais curieux de voir ce que ça donnerait avec Power Query

@job75 "Pas trop compris ce que vous voulez faire" je crois qu'on est dans le même état d'esprit 😉 mais il me semble que kdet voulais un regroupement, pas un filtre
 
Bonjour,

Ca ne répond pas à ta question mais ta formule en A2 ne pourrait pas être

=Let(f;UNIQUE(TblSaisieFactures[FOURNISSEURS]);
m;SOMME.SI.ENS(TblSaisieFactures[MONTANT]; TblSaisieFactures[FOURNISSEURS]; f & "*"; annee(TblSaisieFactures[DATE]);INDEX(B$1:F$1;1;SEQUENCE(;5)));
ASSEMB.H(f;m))


formule non testé Edit : Oop marche pas !

Sinon pour extraire la "racine"
INDEX(FRACTIONNER.TEXTE(A2;" ");;1)
Bonjour Hetaconchire, le forum,
Merci pour ton retour.
j'ai utilisé cette formule : "UNIQUE(GAUCHE(TblSaisieFactures[FOURNISSEURS]; TROUVE(" "; TblSaisieFactures[FOURNISSEURS] & " ") - 1))"
Et je voudrais intégrer cette formule avec celle-ci :
"=CHOISIR({1.2.3.4.5.6}; UNIQUE(TblSaisieFactures[FOURNISSEURS]); SOMME.SI.ENS(TblSaisieFactures[MONTANT]; TblSaisieFactures[FOURNISSEURS]; UNIQUE(TblSaisieFactures[FOURNISSEURS]) & "*"; TblSaisieFactures[DATE]; ">="&DATE(B$1;1;1); TblSaisieFactures[DATE]; "<="&DATE(B$1;12;31)); SOMME.SI.ENS(TblSaisieFactures[MONTANT]; TblSaisieFactures[FOURNISSEURS]; UNIQUE(TblSaisieFactures[FOURNISSEURS]) & "*"; TblSaisieFactures[DATE]; ">="&DATE(C$1;1;1); TblSaisieFactures[DATE]; "<="&DATE(C$1;12;31)); SOMME.SI.ENS(TblSaisieFactures[MONTANT]; TblSaisieFactures[FOURNISSEURS]; UNIQUE(TblSaisieFactures[FOURNISSEURS]) & "*"; TblSaisieFactures[DATE]; ">="&DATE(D$1;1;1); TblSaisieFactures[DATE]; "<="&DATE(D$1;12;31)); SOMME.SI.ENS(TblSaisieFactures[MONTANT]; TblSaisieFactures[FOURNISSEURS]; UNIQUE(TblSaisieFactures[FOURNISSEURS]) & "*"; TblSaisieFactures[DATE]; ">="&DATE(E$1;1;1); TblSaisieFactures[DATE]; "<="&DATE(E$1;12;31)); SOMME.SI.ENS(TblSaisieFactures[MONTANT]; TblSaisieFactures[FOURNISSEURS]; UNIQUE(TblSaisieFactures[FOURNISSEURS]) & "*"; TblSaisieFactures[DATE]; ">="&DATE(F$1;1;1); TblSaisieFactures[DATE]; "<="&DATE(F$1;12;31)))"
Je joins la base originale.

Merci de votre aide.
kdet
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour