Fichier excel à transformer en tableau
CarineVL Messages postés 279 Date d'inscription samedi 7 novembre 2015 Statut Membre Dernière intervention 16 mars 2025 - 14 mars 2025 à 09:35
- Fichier excel à transformer en tableau
- Fichier rar - Guide
- Trier tableau excel - Guide
- Tableau word - Guide
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
13 réponses
Modifié le 13 mars 2025 à 19:30
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
13 mars 2025 à 13:44
Bonjour CarineVL
Le fichier modifié
https://www.cjoint.com/c/OCnmQLfhdj4
11 mars 2025 à 13:01
11 mars 2025 à 13:16
Bonjour,
merci de la réponse ...
La dernière ligne c'est la ligne de totalisation commençant par "TOTAL" ...
Il n'y a pas de total remise si aucune remise n'a été effectuée ce jour-là....
Je teste et reviens vers vous ...
Carine
11 mars 2025 à 13:23
Re,
Tout est parfait sauf les jours où il n'y a justement pas de remise car le résultat est décalé d'une colonne sur la gauche ...
Encore merci,
Carine
11 mars 2025 à 13:29
Re,
Je viens de percuter pour le deuxième 01/02 ...
Dans le bas, c'est la période demandée ... (de la date à la date)
11 mars 2025 à 13:32
Bonjour CarineVL
Une idée dans le fichier
https://www.cjoint.com/c/OClmGwhUkx4
12 mars 2025 à 09:08
Salutations à tous
.
PHILOU j'ai complété ton tableau pour qu'il serve pour tous les mois
.
https://www.cjoint.com/c/OCmig5e2mPa
.
Cordialement
12 mars 2025 à 11:16
Bonjour CarineVL
Dans les formules vous n'avez pas changé le nom de la feuille
i.37.xml devrait être Feuil1
12 mars 2025 à 11:18
Merci PapyLuc51
J'ai un peu laissé tomber vu qu'il travaillait avec 365 que je n'ai pas
12 mars 2025 à 11:36
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
12 mars 2025 à 11:43
Bonjour CarineVL
J'ai essayé plusieurs choses par formules mais il faut copier coller c'est plus long et pas pratique pour le moment !
Donc pour le moment je me mets sur la cellule C5 par exemple
touche F2 et entrer
et cela est pris en compte, je passe à la date suivante
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question11 mars 2025 à 14:34
11 mars 2025 à 14:56
Re,
Avec la formule je n'arrive pas au même résultat.
Comment faites-vous avec CCM pour envoyer une image ou une capture d'écran car je n'y parviens pas ?
Bien à vous,
Carine
11 mars 2025 à 15:06
Re,
Le fichier avec la modif ne montrant pas le même résultat ...
11 mars 2025 à 15:10
C'est une histoire de fous ? Qu'est-ce que tu obtiens avec mon classeur ?
Daniel
11 mars 2025 à 15:05
Clique sur cette icône :
Voici un lien sur mon fichier :
https://www.cjoint.com/c/OCloeMcKxv4
Daniel
11 mars 2025 à 16:09
11 mars 2025 à 16:30
11 mars 2025 à 16:58
La différence, c'est que tu veux voir figurer les jours comme le 02/02/2025 qui ne figurent pas dans le tableau initial ? Ou il y a autre chose ?
Daniel
11 mars 2025 à 17:14
Re,
Si on peut faire figurer tous les jours du mois, c'est mieux ...
Mais il y a des jours (comme le 06/02) où les colonnes sont décalées et ne reprennent pas le montant dans la bonne colonne ...
Bien à toi,
Carine
11 mars 2025 à 17:33
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
11 mars 2025 à 15:13
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
11 mars 2025 à 18:27
11 mars 2025 à 19:42
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
11 mars 2025 à 20:43
ok. Re-voici le lien :
https://www.cjoint.com/c/OClshav2ET4
Daniel
12 mars 2025 à 09:22
Bonjour Daniel,
Vous serait-possible de m'expliquer la formule pour essayer de comprendre et de mourir moins idiote et aussi pour pouvoir l'adapter aux autres mois plus longs ?
Je vous en remercie d'avance ...
Carine
12 mars 2025 à 09:51
12 mars 2025 à 10:58
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
12 mars 2025 à 12:48
Un grand merci ...
Carine
12 mars 2025 à 09:31
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
Modifié le 12 mars 2025 à 14:34
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
12 mars 2025 à 16:30
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
12 mars 2025 à 17:48
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
12 mars 2025 à 18:52
Il faut que je modifie. Là, c'est prévu pour un mois.
Daniel
12 mars 2025 à 18:57
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
13 mars 2025 à 10:53
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
12 mars 2025 à 16:55
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
13 mars 2025 à 09:50
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
13 mars 2025 à 11:33
Bonjour,
A tester, mais il semble que la formule :
=SIERREUR(INDEX(E:E;EQUIV(G5;C:C;0)+EQUIV("HTVA";INDIRECT("D"&EQUIV(G5;C:C;0)&":D"&EQUIV(G5;C:C;0)+5);0)-1);"")
en H5 permette d'éviter d'ajouter les lignes en cas ne remise absente.
Daniel
13 mars 2025 à 13:31
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
13 mars 2025 à 13:42
ou devoir peut-être reconvertir les données extraites à la décimale nécessaire pour arriver au même chiffre exact ?
13 mars 2025 à 14:10
Je remarque sur le serveur, il y a 6 chiffres après la décimale alors que sur les données extraites, il n'y en a que 2 de la manière que je l'ai faite en copiant en mode texte...
13 mars 2025 à 19:58
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
13 mars 2025 à 21:51
Bonsoir,
Je testerai demain car je suis morte ce soir.
Je ne manquerai pas de revenir vers vous.
Une très bonne soirée,
Carine
14 mars 2025 à 09:22
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
13 mars 2025 à 21:06
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
14 mars 2025 à 09:35
Bonjour Philou,
Cela fonctionne aussi très bien mais DanielCo a réussi à éviter l'ensemble de ces manip juste à l'aide d'une seule formule (monstrueuse) à coller dans n'importe quelle cellule.
Encore merci et bien à vous,
Carine
13 mars 2025 à 21:45
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
13 mars 2025 à 22:31
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