Fichier excel à transformer en tableau
CarineVL Messages postés 320 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un petit souci avec les résumés de rapport journalier exportés en excel à l'aide d'un logiciel de gestion.
Ce n'est pas très clair et ce serait tellement plus facile d'avoir un tableau.
Dans le fichier joint, sur la gauche ce qui est exporté en excel et sur la droite ce que je souhaiterais avoir à l'aide de formules (dans la partie jaune) avec les dates que j'indiquerais moi-même (dans la partie verte)..
Est-ce possible ?
Merci d'avance ...
https://www.cjoint.com/c/OCljCIC5X1t
Windows / Chrome 133.0.0.0
- Fichier excel à transformer en tableau
- Fichier bin - Guide
- Tableau word - Guide
- Trier un tableau excel - Guide
- Fichier epub - Guide
- Fichier rar - Guide
13 réponses
Mon dernier mot :
https://www.cjoint.com/c/OCnsAX0j6x4
Pour le plaisir, je mets la formule monstrueuse (entêtes et totaux inclus, quand même) :
=LET(tout;ASSEMB.H(ASSEMB.V("DATE";SEQUENCE(MAX(CNUM(C5:C20000))-C5+1;;C5));REDUCE("MONTANT H/TVA";SEQUENCE(MAX(CNUM(C5:C20000))-C5+1;;C5);LAMBDA(x;y;ASSEMB.V(x;LET(l;EQUIVX("*";A:A;2;-1);tbl;ASSEMB.H(EXCLURE(REDUCE(CNUM($C$5);DECALER($C$5;;;l);LAMBDA(x;y;SI(DECALER(y;;-2)="récapitulatif du";ASSEMB.V(x;CNUM(y));ASSEMB.V(x;PRENDRE(x;-1)))));-1);DECALER($D$5:$E$5;;;l));PRENDRE(FILTRE(PRENDRE(tbl;;-1);(PRENDRE(tbl;;1)=y)*(CHOISIRCOLS(tbl;2)="HTVA");"");1)))));REDUCE("REMISE";SEQUENCE(MAX(CNUM(C5:C20000))-C5+1;;C5);LAMBDA(x;y;ASSEMB.V(x;LET(l;EQUIVX("*";A:A;2;-1);tbl;ASSEMB.H(EXCLURE(REDUCE(CNUM($C$5);DECALER($C$5;;;l);LAMBDA(x;y;SI(DECALER(y;;-2)="récapitulatif du";ASSEMB.V(x;CNUM(y));ASSEMB.V(x;PRENDRE(x;-1)))));-1);DECALER($D$5:$E$5;;;l));PRENDRE(FILTRE(CHOISIRCOLS(tbl;2);(PRENDRE(tbl;;1)=y)*(CHOISIRCOLS(tbl;2)<>0)*(ESTNUM(CHOISIRCOLS(tbl;2)));"");1)))));REDUCE("TVA";SEQUENCE(MAX(CNUM(C5:C20000))-C5+1;;C5);LAMBDA(x;y;ASSEMB.V(x;LET(l;EQUIVX("*";A:A;2;-1);tbl;ASSEMB.H(EXCLURE(REDUCE(CNUM($C$5);DECALER($C$5;;;l);LAMBDA(x;y;SI(DECALER(y;;-2)="récapitulatif du";ASSEMB.V(x;CNUM(y));ASSEMB.V(x;PRENDRE(x;-1)))));-1);DECALER($D$5:$E$5;;;l));PRENDRE(FILTRE(PRENDRE(tbl;;-1);(PRENDRE(tbl;;1)=y)*(CHOISIRCOLS(tbl;2)="TVA");"");1)))));REDUCE("MONTANT TTC";SEQUENCE(MAX(CNUM(C5:C20000))-C5+1;;C5);LAMBDA(x;y;ASSEMB.V(x;LET(l;EQUIVX("*";A:A;2;-1);tbl;ASSEMB.H(EXCLURE(REDUCE(CNUM($C$5);DECALER($C$5;;;l);LAMBDA(x;y;SI(DECALER(y;;-2)="récapitulatif du";ASSEMB.V(x;CNUM(y));ASSEMB.V(x;PRENDRE(x;-1)))));-1);DECALER($D$5:$E$5;;;l));PRENDRE(FILTRE(PRENDRE(tbl;;-1);(PRENDRE(tbl;;1)=y)*(CHOISIRCOLS(tbl;2)="TTC");"");1))))));ASSEMB.V(tout;{""."".""."".""};ASSEMB.H("TOTAL";SOMME(CHOISIRCOLS(tout;2));SOMME(CHOISIRCOLS(tout;3));SOMME(CHOISIRCOLS(tout;4));SOMME(PRENDRE(tout;;-1)))))
Daniel
Bonjour CarineVL
Une idée dans le fichier
https://www.cjoint.com/c/OClmGwhUkx4
Salutations à tous
.
PHILOU j'ai complété ton tableau pour qu'il serve pour tous les mois
.
https://www.cjoint.com/c/OCmig5e2mPa
.
Cordialement
j'ai oublié les explications de la formule
=INDIRECT(ADRESSE(EQUIV($G5;$C$1:$C$244;0)+2;5;3;1;"feuil1");1)
EQUIV je cherche la ligne ou se trouve la date puis + 2 pour obtenir le Montant H/TVA
ADRESSE (ligne;colonne;absolu;type;feuil)
ligne obtenu avec EQUIV
Colonne 5 = colonne E
ABSOLU 3 met les dollars sur ligne et colonne
Type 1 = A1 et non L1C1
Feuille ou se trouve l'information
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionClique sur cette icône :
Voici un lien sur mon fichier :
https://www.cjoint.com/c/OCloeMcKxv4
Daniel
Re,
Je viens (peut-être) de comprendre ...
Cela fonctionne avec le fichier de Philou qui avait inséré une ligne à chaque fois qu'il n'y avait pas de remise pour ce jour ...
Ne peut-on pas faire une première formule pour ces jours où il n'y a effectivement pas de remise et insérer une ligne?.
Bien à toi,
Carine
Formule modifiée :
=LET(tbl;ASSEMB.H(C5:C194;E7:E196;BYROW(D6:D195;LAMBDA(x;SI(ESTTEXTE(x);"";x)));E8:E197;E9:E198);FILTRE(tbl;PRENDRE(tbl;;1)>40000))
Daniel
Re,
Je viens (peut-être) de comprendre ...
Cela fonctionne avec le fichier de Philou qui avait inséré une ligne à chaque fois qu'il n'y avait pas de remise pour ce jour ...
Ne peut-on pas faire une première formule pour ces jours où il n'y a effectivement pas de remise et insérer une ligne?.
Je commence à avoir tellement de fichiers que cela commence à être difficile de s'en sortir.
Le résultat vient bien du premier fichier envoyé ?
Le plus facile ce serait avec un fichier joint.
Merci d'avance.
Bien à toi,
Carine
ok. Re-voici le lien :
https://www.cjoint.com/c/OClshav2ET4
Daniel
Voici. J'ai mis les explications à partir de G5. N'hésite pas à poser des questions si ce n'est pas clair.
https://www.cjoint.com/c/OCmj1Rck7h4
Daniel
Salutations CarineVL
""aussi pour pouvoir l'adapter aux autres mois plus longs""
J'ai fais une réponse dans ce sens dans mon message # 29
Cordialement
Pour adapter aux mois les plus longs (et plus encore), en une seule formule, entêtes et totaux compris :
=LET(tbl;ASSEMB.H($C$5:$C$1904;$E$7:$E$1906;$D$6:$D$1905;$E$8:$E$1907;$E$9:$E$1908);flt;FILTRE(tbl;PRENDRE(tbl;;1)>40000);ASSEMB.V(ASSEMB.H(ASSEMB.V("DATE";SEQUENCE(FIN.MOIS(C5;0)-C5+1;;C5));REDUCE({"MONTANT HTVA"."REMISE"."TVA"."MONTANT TTC"};SEQUENCE(FIN.MOIS(C5;0)-C5+1;;C5);LAMBDA(x;y;ASSEMB.V(x;RECHERCHEX(y;PRENDRE(flt;;1);EXCLURE(flt;;1);ASSEMB.H("";"";"";""))))));{""."".""."".""};ASSEMB.H("TOTAL";SOMME(CHOISIRCOLS(flt;2));SOMME(CHOISIRCOLS(flt;3));SOMME(CHOISIRCOLS(flt;4));SOMME(CHOISIRCOLS(flt;5)))))
Daniel
Re Daniel,
J'ai fait le test sur un autre mois (Décembre 2024)
Tout fonctionne parfaitement sauf en ce qui concerne les totaux qui ont l'air d'avoir doublé sauf la remise.
Cela me semble très facile d'utilisation car on peut déplacer librement la zone de calcul sans problèmes.
(voir fichier joint)
Bien à vous,
Carine
Ca n'a pas été trop compliqué :
=LET(tbl;ASSEMB.H($C$5:$C$1904;$E$7:$E$1906;$D$6:$D$1905;$E$8:$E$1907;$E$9:$E$1908);flt;EXCLURE(FILTRE(tbl;PRENDRE(tbl;;1)>40000);-1);ASSEMB.V(ASSEMB.H(ASSEMB.V("DATE";SEQUENCE(FIN.MOIS(C5;0)-C5+1;;C5));REDUCE({"MONTANT HTVA"."REMISE"."TVA"."MONTANT TTC"};SEQUENCE(FIN.MOIS(C5;0)-C5+1;;C5);LAMBDA(x;y;ASSEMB.V(x;RECHERCHEX(y;PRENDRE(flt;;1);EXCLURE(flt;;1);ASSEMB.H("";"";"";""))))));{""."".""."".""};ASSEMB.H("TOTAL";SOMME(CHOISIRCOLS(flt;2));SOMME(CHOISIRCOLS(flt;3));SOMME(CHOISIRCOLS(flt;4));SOMME(CHOISIRCOLS(flt;5)))))
Veux-tu que je joigne le classeur ?
Daniel
Essaie :
=LET(tbl;ASSEMB.H($C$5:$C$1904;$E$7:$E$1906;$D$6:$D$1905;$E$8:$E$1907;$E$9:$E$1908);flt;EXCLURE(FILTRE(tbl;PRENDRE(tbl;;1)>40000);-1);ASSEMB.V(ASSEMB.H(ASSEMB.V("DATE";SEQUENCE(MAX(C:C)-C5+1;;C5));REDUCE({"MONTANT HTVA"."REMISE"."TVA"."MONTANT TTC"};SEQUENCE(MAX(C:C)-C5+1;;C5);LAMBDA(x;y;ASSEMB.V(x;RECHERCHEX(y;PRENDRE(flt;;1);EXCLURE(flt;;1);ASSEMB.H("";"";"";""))))));{""."".""."".""};ASSEMB.H("TOTAL";SOMME(CHOISIRCOLS(flt;2));SOMME(CHOISIRCOLS(flt;3));SOMME(CHOISIRCOLS(flt;4));SOMME(CHOISIRCOLS(flt;5)))))
Daniel
Bonjour,
J'ai redimensionné les plages. Tu peux le faire sur 60 ans ;-)
=LET(tbl;ASSEMB.H($C$5:$C$190004;$E$7:$E$190006;$D$6:$D$190005;$E$8:$E$190007;$E$9:$E$190008);flt;EXCLURE(FILTRE(tbl;PRENDRE(tbl;;1)>40000);-1);ASSEMB.V(ASSEMB.H(ASSEMB.V("DATE";SEQUENCE(MAX(C:C)-C5+1;;C5));REDUCE({"MONTANT HTVA"."REMISE"."TVA"."MONTANT TTC"};SEQUENCE(MAX(C:C)-C5+1;;C5);LAMBDA(x;y;ASSEMB.V(x;RECHERCHEX(y;PRENDRE(flt;;1);EXCLURE(flt;;1);ASSEMB.H("";"";"";""))))));{""."".""."".""};ASSEMB.H("TOTAL";SOMME(CHOISIRCOLS(flt;2));SOMME(CHOISIRCOLS(flt;3));SOMME(CHOISIRCOLS(flt;4));SOMME(CHOISIRCOLS(flt;5)))))
Daniel
Bonjour CarineVL
Le fichier modifier avec mois janvier février mars c'est un essai (données copier coller pour exemple, dites moi si cela vous convient ?
https://www.cjoint.com/c/OCmp0kFSm64
Bonjour,
C'est vraiment top ...effectué avec minutie pour faciliter le travail ...
Je vois qu'il y a même un contrôle si la ligne contenant "Total des Remises" existe bien.!!!
Une petite question à ce niveau:
Quelle est la procédure à suivre dans le cas où cette ligne n'existe pas ?
J'ai inséré une ligne au 03/12/2024, ajouté "Total des remises" mais le message est le même car en faisant l'insertion, la formule s'est également décalée de 1.
(voir fichier joint)
Comment faire donc pour arriver à un message "OK" ? (tout en conservant le tableau sans vides due aux éventuelles insertions)
Bien à vous,
Carine
Re,
Effectivement la colonne h/tva est juste sans faire quoique ce soit au niveau des lignes de remises, hormis une petite différence de 0,03€ (voir fichier joint).
Pour le mois de décembre 2024 (2), j'ai sur le serveur 53500,28€ et après récupération des données 53500,31€ (en faisant l'addition sur la partie gauche extraite).
Vos formules sont donc tout-fait correctes ...
Cette petite erreur d'extraction ne proviendrait-t-elle pas de la manière dont les données sont extraites sur le serveur ?
J'avais choisi le mode TEXTE ... et je ne sais pas quelles sont les décimales après la virgule dont il a été tenu compte ...
Comme il y a différents types de collages possibles ...il y en a peut-être un qui correspond mieux ...
Bien à vous,
Carine
Re-,
Un fichier utilisant Power Query
Dans l'onglet "Paramètres", tu mets le chemin et le nom du fichier xml (comme dans l'exemple)
Dans l'onglet "Resultat", tu cliques sur le bouton "Actualiser tout" du ruban "Données" (ou un clic droit sur une cellule de la requête, "Actualiser"), pour mettre à jour la requête.
Pour voir...
https://www.cjoint.com/c/OCns6iglR7F
Bonjour,
J'ai regardé un tuto et cela me semble effectivement très intéressant pour transformer les données.
Entretemps DanielCo m'a fait un fichier très facile qui m'évite de faire toutes ces manipulations.
Je vous remercie néanmoins pour cette info qui s'avérera sans doute fort utile dans le futur.
Bien à vous,
Carine
Bonsoir CarineVL
Le fichier au dernier jus de décembre à avril données copier coller pour essai
Tout à l'air Ok à vous de tester
https://www.cjoint.com/c/OCnuf3gJTI4
Bon testes
RE,
Je viens juste de tester ...
Top de chez top, au cent près ...
Pour le plaisir ... en souvenir aussi d'Herbert Leonard
C'est vrai que la formule est vraiment à rallonge.
Encore un grand merci et chapeau encore plus bas ...
Carine
Encore une dernière petite chose:
Je n'ai même pas osé vous demander l'explication de la formule car je pense que pour moi ce sera quand même "mission impossible" :-) :-) :-) .
Bien à vous,
Carine