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

Power Query récupérer fichier excel toujours de la première à la nième colonne

ben724914

XLDnaute Nouveau
Bonjour à tous et toutes

voici mon problème :
en important 2 fichiers le plus simplement possible,
pour l'un GC111111, cela importe la colonne A qui devient dans power "colonne1"
et pour l'autre GC2222, cela importe qu'à partir de B qui devient aussi dans power "colonne1"

je vous joint le fichier test et 2 fichiers data exemples, dezipper cela dans le répertoire c:\temp sinon changer répertoire dans les 2 requettes

j'ai trouvé la cause après un certain temps...............c'est une bordure inférieure présente sur la case A5 de gc1111 qui fait que la colonne A est importée alors que sur l'autre fichier gc2222 il n'y a pas de bordure spécifique et donc importation commence à colonne B.....

le but final est de refaire une base de données à partir de plus de 200 fichiers réparti dans des dizaines de répertoires, qui sont normalement identiques... mais j'ai quelques différences que je n'arrive pas à contourner proprement et je n'ai pas envie de gérer tous les fichiers différents en les modifiant un à un ou de faire macro pour les passer en csv avant de les reprendre en powerquery.

mes questions sont donc :
-comment forcer power query à importer l'excel à partir de la colonne A tout le temps sur tous les fichiers, quel les cellules soient vierge de modification (bordure texte, couleur etc...) ou pas...?
-dans le même genre comment forcer à importer un nombre figé de colonnes disons 15...

un grand merci d'avance
 

Pièces jointes

  • Test powerquery.zip
    38 KB · Affichages: 7
Solution
Bonjour

merci pour vos propositions. Je comprends que l'on ne peut pas forcer à importer la colonne A

donc je vais utiliser vos astuces pour pouvoir faire ma base de données en récupérant les fichiers que j'appelle "machine à écrire" car ils sont beaux presque identiques mais... avec parfois ces cellules fusionnées et pas toujours, parfois plusieurs lignes dans une case, etc.....

merci encore

Staple1600

XLDnaute Barbatruc
Bonsoir

J'ai testé ceci sur un fichier avec plusieurs colonnes
PowerQuery:
let
    Source = Excel.Workbook(File.Contents("C:\Users\STAPLE\Documents\Test1colonne.xlsx"), null, true),
    #"Data développé" = Table.ExpandTableColumn(Source, "Data", {"Column1"}, {"Data.Column1"}),
    #"Autres colonnes supprimées" = Table.SelectColumns(#"Data développé",{"Data.Column1"})
in
    #"Autres colonnes supprimées"
Et je ne récupère que la 1ère colonne
 

ben724914

XLDnaute Nouveau
Bonsoir
merci pour cette proposition mais elle ne fonctionne pas chez moi avec le fichier GC22222 en effet la colonne que power récupère avec votre code, est la colonne B.

je sais qu'il n'y a rien dans la A de ce fichier spécifique mais je veux qu'il la récupère quand même car dans d'autres fichiers comme gc1111, power récupère bien la colonne A.
mais si je récupère un coup la A un coup la B ; cela complique trop mes traitements derrière pour mon niveau....
 

merinos-BernardEtang

XLDnaute Accro
VB:
let
    Source = Excel.Workbook(File.Contents("C:\Users\Berna\Downloads\DATA\GC111111.xlsx"), null, true),
    GC_Sheet = Source{[Item="GC",Kind="Sheet"]}[Data],
    #"Added Index" = Table.AddIndexColumn(GC_Sheet, "Index", 0, 1, Int64.Type),
    #"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Added Index", {"Index"}, "Attribute", "Value"),
    #"Pivoted Column" = Table.Pivot(#"Unpivoted Other Columns", List.Distinct(#"Unpivoted Other Columns"[Attribute]), "Attribute", "Value")
in
    #"Pivoted Column"

Je depivote puis repivote les données.... peu m'importe le nombre de colonnes.
Si A C et D sont vides , elles vont disparaitre....
 

Pièces jointes

  • test powerquery colonne1 non prise merinos.xlsx
    23.3 KB · Affichages: 3

Cousinhub

XLDnaute Barbatruc
Inactif
Bonjour,
Avec ce code, tu supprimes toutes les colonnes vides
PowerQuery:
let
    Source = Excel.CurrentWorkbook(){[Name="Tableau1"]}[Content],
    SupprColVides = Table.SelectColumns(Source,List.Select(Table.ColumnNames(Source),each List.NonNullCount(Table.Column(Source,_)) <> 0))
in
    SupprColVides

Ce qui pourrait donner (pour le fichier qui importe la colonne A bien qu'elle soit vide)

PowerQuery:
let
    Source = Excel.Workbook(File.Contents("C:\Users\cousi\Documents\Excel\exemples\PQ\Test powerquery\DATA\GC111111.xlsx"), null, true),
    GC_Sheet = Source{[Item="GC",Kind="Sheet"]}[Data],
    SupprColVides = Table.SelectColumns(GC_Sheet,List.Select(Table.ColumnNames(GC_Sheet),each List.NonNullCount(Table.Column(GC_Sheet,_)) <> 0))
in
    SupprColVides

Bonne journée
 

ben724914

XLDnaute Nouveau
Bonjour

merci pour vos propositions. Je comprends que l'on ne peut pas forcer à importer la colonne A

donc je vais utiliser vos astuces pour pouvoir faire ma base de données en récupérant les fichiers que j'appelle "machine à écrire" car ils sont beaux presque identiques mais... avec parfois ces cellules fusionnées et pas toujours, parfois plusieurs lignes dans une case, etc.....

merci encore
 

Cousinhub

XLDnaute Barbatruc
Inactif
Re-,
Si tes tables ont toutes le même nombre de colonnes, que la base commence en colonne A ou B ne gêne en rien.
A voir tes exemples, il faudra à priori supprimer quelques lignes du haut, et remonter les titres
Pour les cellules fusionnées, tant qu'elles ne font pas partie des "titres", pas de soucis, PQ va garder la première colonne. Pour les multi-lignes, il suffira de fractionner en lignes (et non en colonnes, comme le propose PQ en 1ère option).
En tout cas, bon courage...
 

Discussions similaires

Réponses
14
Affichages
404
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…