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

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+
Re-bonjour job75, le forum,

Merci pour la version macro. mais comment l'intégrer dans mon fichier joint

kdet
 

Pièces jointes

C'est vrai qu'elle est récente mais Microsoft l'indique comme disponible pour 2024
msedge_kEatgHEJrW.png


 
Au vu des données, et des "racines", j'ai bien peur qu'un "Fractionner.Texte" ne soit 100% compatible...
Je ne prend que le 1er, la "racine", les autres étages j'ignore (en attente d'infos contradictoires de kdet)
@Hecatonchire comment vous retrouvez les colonnes qui manquent DATE et MONTANT dans le tableau qui manque lui aussi ?
J'ai fais preuve d'imagination 😁

@kdet

Une version sans PIVOTER (attention en terme de performances !)

=LET(mfs;INDEX(FRACTIONNER.TEXTE(TblSaisieFactures[FOURNISSEURS];" ");;1);
mf;TRIER(UNIQUE(mfs));
mas;SIERREUR(ANNEE(TblSaisieFactures[DATE]);1900);
ma;TRIER(UNIQUE(mas));
smt;MAKEARRAY(NBVAL(mf);NBVAL(ma);
LAMBDA(l;c;SOMME(TblSaisieFactures[MONTANT]*(mas=INDEX(ma;c))*(mfs=INDEX(mf;l)))
));
ASSEMB.H(ASSEMB.V("";mf);ASSEMB.V(TRANSPOSE(ma);smt)))
 
La version avec TCD et ajout d'une colonne pour récupérer la partie gauche du nom du fournisseur (ce qui ne donne pas un résultat correct, mais à moins de faire un tableau de correspondance ça me semble la seule solution)

Edit, pour pouvoir regrouper les années j'ai du modifié mettre des dates là où elle manquait et corriger celles qui sont invalides
2026-02-27_22-55-28.png
 

Pièces jointes

Dernière édition:
- 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