Vous êtes sur la page 1sur 26

Importation de tableau

Dans pq on peut importer « la feuille » qui compte un tableau ou on importe un tableau compris dans la feuille

Si on importe une feuille, on importe tout son contenu y compris des données à l’extérieur du tableau

Si on importe un tableau, on est plus certain qu’on est en train d’importer des données structurées (si on met à jour le tableau on actualise la requête et tout va bien)

On peut importer aussi une plage nommée, mais si on ajoute des données au-dessous de la plage dans le futur il n’y aura pas actualisation
Cas1 importation de 3 tableaux dans une même feuille Excel
let

Source = Excel.CurrentWorkbook(){[Name="sales2017"]}[Content],

#"Type modifié" = Table.TransformColumnTypes(Source,{{"ProductID", Int64.Type}, {"Date", type datetime}, {"Quantity", Int64.Type}, {"Price", type number}, {"Revenue",
type number}})

in

#"Type modifié"
Cas 2 importation de 3 tableaux, chacun dans une feuille différente

On a cliqué sur la table, importer à partir de table ou plage puis on a chargé dans connexion uniquement

let
Source = Excel.CurrentWorkbook(){[Name="Sales2017"]}[Content],

#"Type modifié" = Table.TransformColumnTypes(Source,{{"ProductID", Int64.Type}, {"Date", type datetime}, {"Quantity", Int64.Type}, {"Price", type number}, {"Revenue",
type number}})

in

#"Type modifié"
Cas 3 : importation de 3 tableaux chacun dans un classeur Excel dans un dossier (y compris les fichiers des sous dossiers)

Il faut nommer les tableaux officiels dans les classeurs en utilisant le même nom et sélectionner l’élément table

Ou bien utiliser des feuilles ayant le même nom de la feuille dans tous les classeurs (dans ce cas format tableau officiel non exigé) et sélectionner l’élément feuille
Si on a des Feuilles de différents noms et si on sélectionne l’élément feuille alors on peut corriger l’erreur (la clé ne correspondait à aucune ligne)
Alors sélectionner l’élément feuille

Puis aller dans transformer le fichier, la formule dans la barre et remplacer le nom de la table par zero puis entrée
taper entrée
= (Paramètre1) => let

Source = Excel.Workbook(Paramètre1, null, true),

Sales2017_Sheet = Source{0}[Data],

#"En-têtes promus" = Table.PromoteHeaders(Sales2017_Sheet, [PromoteAllScalars=true])

in

#"En-têtes promus"

Résultat d’importation : est une requête pour chaque tableau importé ?

3 tables dans une même feuille donc 3 requêtes

3 tables chacune dans une feuille d’un même classeur donc 3 requêtes

3 tables chacune dans un classeur donc une seule requête qui demande de « combiner » les tables dans une seule table

: Pourquoi pq
…Il importe les données de différents format excel txt csv dossiers de fichiers, web, bases de données access sql

Pour automatiser une tâche pas besoin de vba, pq contient un système d’enregistrement/modifications d’étapes appliquées

Excel limités à 1 millions de lignes mais pq sans limites et plus rapide et moindre taille

Automatiser une tâche répétitive/périodique

» Pq existe dans « obtenir et transformer les données

Pq éditeur

On travaille sur editeur pq (il faut enregistrer puis fermer) et revenir à excel

Dans l’editeur pq, il y a lecture seulement des données, il n’est pas possible de modifier les données de la source

Charger dans table ou faire une connexion

Si votre but est de créer un tcd à partir de l’ensemble des données alors il vaut mieux faire une connexion (dans ce cas, on charge dans une connexion, puis on va à insertion,
tcd à partir d’une Source externe, puis choisir la connexion)

Si votre but est de créer une table sur laquelle vous allez travailler (avec des fonctions ou formules…) il faut charger dans une table (le problème est la taille de la table s’il
elle atteint ou dépasse le 1M)

Si on crée une table puis un tcd basé sur cette table alors lorsque le contenu de la source change il faut actualiser la table puis actualiser le tcd

Si une requête a été chargée dans une table on peut faire modifier requête et charger dans connexion mais ça va supprimer la table

Ou aussi on peut supprimer la feuille et ça va convertir la requête en connexion

Cas 1 :

Trois tableaux même structure dans 3 feuilles (finance, hr , comptabilité) on veut les combiner puis en créer un tcd
janvier février mars
A
B

A partir d’un nouveau classeur excel, on importe les données du classeur contenant les données, on aura une liste affiché des 3 feuilles (finance, hr , comptabilité) qu’on
peut sélectionner ensemble

On peut choisir une feuille puis dans les étapes on clique sur source puis, on trouve une colonne contenant les noms des feuilles, une colonne contenant les «  tables »
compris dans les feuilles puis faire append

Puis on sélectionne les colonnes des mois et on fait dépivoter pour les mettre dans une seule colonne

Cas 2 :

On a deux fichiers csv de ventes 2016, 2017 chacun comporte plus de 1M de lignes on veut créer un tcd

Importer à partir de dossier (défilter tout fichier non pertienent)

On aura une colonne « contenu » binaire on peut faire append , le problème est qu’on veut prendre « année » à partir du nom du classeur

Pour la convertir en table il faut ajouter une colonne formule personnalisée


=Csv.Document([Content])

On fera expand sur la nouvelle colonne

On exporte directement dans un TCD

Si ajoute un fichier csv 2018 dans le dossier, on fera rafarichir tout on aura une mise à jour de la requête et du tcd

Cas 3 :

On a les no factures montant et mois par code client

On veut les convertir en tableau

Diviser par facture (espace) et renvoyer en lignes

Cas 4 :

3 tables de ventes sur 3 feuilles, 2017,2018,2019


Il y a une ou deux colonnes manquantes par rapport à 2017 dans 2018 et 2019 on veut faire combiner

Dans la requête de la table qui manque par exemple la colonne revenu on ajoute colonne personnalisée q*p

Il a fait importation manuelle table par table, chargement dans connexion uniquement

Aller dans pq menu, requêtes combiner append on aura une nouvelle requête

On peut à tout moment modifier une requête élémentaire puis actualiser la requête globale

Cas5 :

Table des ventes contenant code produit, montant des ventes

Table produit contenant code produit nom produit catégorie

On veut ajouter les champs de la tab produit dans la table ventes

Importer table produits…connexion uniquement

Pq requêtes fusionner :

Créer une nouvelle requête

Ou bien ouvrir requête table des ventes et cliquer fusionner requêtes

On choisit la clé commune (une ou plusieurs colonnes)

Pq ajoute automatiquement toutes les colonnes de la table secondaire sauf clé commune

Pq ajoute une nouvelle colonne de type « table » on clique sur append et on sélectionne les champs à ajouter

Fermer et charger ça va actualiser la requête des ventes sur laquelle on a travaillé

Cas 6 :

Comparer deux tableaux

Requêtes fusionner

Types de requêtes

Table les étudiants du club art


Table les étudiants du club math

Les charger dans connexion uniquement

On veut qui étudie art ou math

Qui étudie math uniquement

Qui étudie art uniquement

Qui étudie math et art

Cas 7 :

Supprimer lignes/supprimer doublons

03 :15 :00

Au lieu d’utiliser somme.si on peut utiliser fusionner et agréger

Soit tab des ventes par codes produits

Soit tab des produits

On veut afficher dans tab des produits une nouvelle colonne des sommes de ventes par produit

Insérer en requête chaque tab

Puis dans requête tab produits faire fusionner requêtes puis sélectionner tab des ventes (tab secondaire) puis sélectionner colonne commune

Nouvelle colonne table apparait

Expand mais on aura deux options expand et agréger

Agréger puis sélectionner somme sur quelleS colonneS

fermer et charger dans table

cas 8 :

tab des ventes (code produit , type produit , couleur, quantité, date)

tab des prix : prix article selon couleur et type produit


on veut ajouter le prix dans tab une

solutions :

deux recherches x

ou

index et match

recherche v et match

dans powerquerry

deux reqûetes

tab des prix faire dépivoter pour les colonnes des couleurs
Fusionner les deux requêtes

Tab ventes principales

Tab prix secondaire

Append filtre prix

Sélection des colonnes communes : type produit puis prix Ordre est important

Cas 9 :

Grouper par (totaliser sur)

Dans 3 feuilles, Tabs des ventes semaine1 semaine2 semaine3 chaque tab contient

On va les combiner
Si on va travailler dans le même classeur et si on veut combiner tout tableau compris dans chaque feuille il faut créer une requête nouvelle utiliser la formule
excel.currentworkbook

Et défiltrer le nom de la feuille (= nom de cette nouvelle requête)

Dans pq il y a grouper par

Il y a grouper sur plusieurs critères

Aussi on définit l’output exemple somme sur colonne x et aussi somme sur colonne v

Cas 10 :

Gérer les requêtes

Dupliquer

Référence

Append

3 fichiers dans un dossier, comprenant une feuille par classeur comprenant tab des ventes 2016 2017 2018

Il a fait importation manuelle du classeur 1

A dupliqué la requête et a modifié nom du classeur

Puis a fait combiner 2016 2017

Référence : copie de la requête mais juste la première étape « source »


Les transformations possibles Commentaire
Diviser les données « compressées » d’une colonne en Plus sophistiqué que la fonction diviser colonne dans
plusieurs colonnes Excel exemple il peut diviser et renvoyer les données
en lignes (non pas en colonnes)
Il y a un bouton détecter type de données Pas de bouton mais acl lors de l’importation il propose
un type de données qu’on peut ensuite le modifier
Appliquer un seul type de donnée sur une colonne Similaire à acl
Supprimer doublons dans les lignes Similaire à excel
Lorsqu’on importe les données d’un classeur excel , pq
liste les objets de ce classeur :
Les feuilles
Les tables
Les plages nommées
Fusionner des colonnes exemple jour mois année Similaires à concaténer
Ajouter une colonne comme résultat de 2 ou plusieurs On peut utiliser les formules
colonnes exemple multiplication colonne quantité et
colonne prix
Dupliquer une requête et puis modifier sa composition
Combiner des requêtes/fusionner Plus sophistiquée que recherche v et aussi elle accepte
la correspondance approximative et on peut définir un
seuil d’approximation exemple 0,5
Grouper par (basique, avancé) on peut ajouter Similaire à totaliser sur
plusieurs colonnes exemple total ca, total quantité…

Vous aimerez peut-être aussi