Power Query Premiers Pas Power Query, combiner tableaux provenant de différents onglets

  • Initiateur de la discussion Initiateur de la discussion vgendron
  • 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 !

vgendron

XLDnaute Barbatruc
Bonjour,

Je suis un fervent adepte des macros VBA, mais, je découvre seulement Power Query (nouvellement installé en tant qu'add-on sur ma version Excel 2010)

Dans le fichier ci joint, j'aimerais combiner tous les tableaux issus des onglets 1 2 3
MAIS: j'aimerais pouvoir ajouter une colonne qui me donne le NOM de l'onglet d'où sont issues les données
(pour expliquer ce besoin final, 1 2 3... sont des jours==> jusqu'a 31 donc)

je sais donc importer le tableau Tab_1 avec cette instruction
Excel.CurrentWorkbook(){[Name="Tab_1"]}[Content]
1) ca m'impose de transformer tous les tableaux en Tableau Structuré avec un nom "formaté": Tab_xx (xx étant le jour = nom de l'onglet)
1) ca m'impose de créér autant de requetes que d'onglets
2) selon le mois en cours (=classeur en traitement), ce nombre change..28 29 30 ou 31

mais j'ai vu cette commande:
Excel.CurrentWorkbook()
qui permet d'importer TOUS les tableaux du classeur (qu'ils soient sous forme tableau structuré ou pas)
y compris ceux que je ne veux pas: exemple d'un tableau sur la feuille "Feuille a ignorer"
y compris également le tableau final issu d'un traitement préalable

si j'ai bien vu lors de mes essais, lors de l'import de données juste sous forme de plage de données, Power Query fait lui meme la conversion en tableau structuré en mettant un nom arbitraire==> peut on imposer ce nom?

peut on faire une boucle qui importe tous les tableaux des onglets DONT le nom est un nombre?

Merci
 

Pièces jointes

Bonjour,

L'étape Power query suivante va combiner tous les Tableaux du fichier dont le nom commence par "Tab_" & se termine par une chiffre de 1 à 9 :

Table.Combine(List.RemoveNulls(List.Transform({"1".."9"}, each try Excel.CurrentWorkbook(){[Name="Tab_" & _]}[Content] otherwise null)))

La même décomposer en 3 étapes :
let
Source = List.Transform({"1".."9"}, each try Excel.CurrentWorkbook(){[Name="Tab_" & _]}[Content] otherwise null),
#"Remove nulls" = List.RemoveNulls( Source),
Combiner = Table.Combine( #"Remove nulls")
in
Combiner

Vous pouvez également traiter votre fichier comme un fichier externe avec Excel.Workbook mais ce dernier devra avoir été enregistré pour que la requête puisse refléter les dernières modifications.

= Excel.Workbook(File.Contents("NomCompletDuFichier"))

Vous pourrez alors filtrer facilement les feuilles et les traiter

Il y a trop de choses dans votre question pour y répondre simplement.

Apprenez à manipuler les listes et vous ferez à peu près n'importe quoi.

Si vous avez des noms indexés > 9 alors

List.Transform({1..31},Text.From)

Ou suivant l'usage

List.Transform({1..31}, each "Nom_" & Text.From(_))

Cordialement

[Edit]hello @chris [/Edit]
 

Pièces jointes

Dernière édition:
RE
Power Query fait lui meme la conversion en tableau structuré en mettant un nom arbitraire==> peut on imposer ce nom?
A priori non : c'est comme pour les créations de classeurs, onglets, graphiques, ... Excel prend un terme générique et numérote

C'est une habitude à prendre : travailler systématiquement en tableaux structurés pour les listes de données (ils sont là depuis 19 ans) et systématiquement les renommer comme on renomme les onglets...
 
Re,

Ca viendra.
Par contre il eut été plus élégant de dire que c'était pour répondre à un fil de discussion :
 
Re,

Ca viendra.
Par contre il eut été plus élégant de dire que c'était pour répondre à un fil de discussion :
Mea Culpa
j'ai hésité à le signaler en fait.
Je me suis effectivement servi de cet autre fil pour m'initier à PowerQuery, et je me suis dit que je risquais d'avoir une solution toute faite qui ne me forcerait pas vraiment à chercher par moi meme.
 
- 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

Discussions similaires

Réponses
1
Affichages
114
Réponses
5
Affichages
434
Retour