Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Autres [Résolu] 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

Re-bonjour job75, le forum,

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

kdet
 

Pièces jointes

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
 

Pièces jointes

Dernière édition:
@Hecatonchire, le forum,

Merci pour ta contribution malgré la complexité de ma première formule, comme disait @Nain porte quoi, tu as pu la réduire avec la combinaison de LET, TRIER, LAMBDA, ASSEMBLER.H et ASSEMBLER.V

Kdet
 
@Nain porte quoi , le forum,

D'après les remarques faites par @Cousinhub , je devrais revoir ma base car il y a effectivement un surplus d'espace, des cellules vides dans la colonne DATE.

Merci pour ton retour,
Kdet
 
Bonjour kdet, le forum,

J'ai ouvert votre fichier du post #16 et je vois que le problème est très simple et se résout facilement par formules.

1) Dans la feuille "Base Factures" j'ai ajouté les 2 colonnes RACINE et ANNEE, les formules sont évidentes.

2) Dans la feuille "RECAPITUL" formule matricielle en A2 :
Code:
=SIERREUR(INDEX('Base Factures'!D:D;PETITE.VALEUR(SI(NON(NB.SI(A$1:A1;TblSaisieFactures[RACINE]));LIGNE(TblSaisieFactures));1));"")
En effet ma version Excel n'a pas la fonction UNIQUE.

3) Dans la feuille "RECAPITUL" formule normale en B2 à tirer vers la droite et le bas :
Code:
=SOMME.SI.ENS(TblSaisieFactures[[MONTANT]:[MONTANT]];TblSaisieFactures[[RACINE]:[RACINE]];$A2;TblSaisieFactures[[ANNEE]:[ANNEE]];--B$1)
Les références des colonnes sont doublées pour ne pas s'incrémenter quand on tire vers la droite.

Au cas où les années en ligne 1 seraient des textes, j'ai mis 2 tirets -- pour les convertir en nombres.

A+
 

Pièces jointes

Bonjour job75, le forum,

Je vous remercie de votre collaboration.
J'ai dû réctifier ma base avec les espaces en surplus et les dates vides et j'ai adapté vos formules avec. Tout va à merveille.
Encore encore à toi, le forum.
kdet
 
- 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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…