XL 2016 TCD avec segments fusionnés

Bidexcel

XLDnaute Nouveau
Bonjour à tous, je sollicite votre aide

Je dispose de deux tableaux sur des feuilles différentes ("Cours" de feuille copie coller transposée cours et "Volumes" de la feuille copie coller transposée volume.

Chaque tableau comporte les mêmes dates en colonne et les mêmes symboles en lignes,

L'idée est d'avoir pour symbole donné et dans un intervalle de temps sélectionné à l'aide du filtre chronologique, sur un graphiques, les volumes (en bâton axe principal) et le cours (en courbe axe secondaire) dans.

Pour ce faire, J'ai créée un TCD dans lequel j'ai créé une relation entre mes deux tableaux et j'ai insérer des segments, mais les segments me permettent que de filtrer d'une part les volumes et les cours.

Je voudrais un segment unique dans le lequel, je pourrais filtrer plutôt les symboles au lieux des valeurs cours et volumes.
 

Pièces jointes

  • TEST TCD.xlsx
    431.5 KB · Affichages: 18
Solution
Re,

Votre requête finale retourne des valeurs textuelles et vous ne pouvez donc pas les sommer dans votre TCD, si vous tentez de le faire, excel vous le signale. Il suffisait de lire le message d'erreur pour comprendre.

Dans chacune de vos requête source vérifier que le type des données de chaque colonne est le bon.
Mieux vaut le faire avant la fusion, sinon vous risquez de perdre des données.
Positionnez-vous sur l'étape 2 (Type modifié)

A gauche de chaque nom de colonne vous avez un bouton donnant le type des données contenues dans la colonne (ABC, 123, mixte des deux, ...)
1606494963921.png


Cliquez sur ce bouton de toutes les colonnes qui n'indiquent pas '123' . Dans le menu qui s'ouvre, choisissez 'nombre décimal'.

Si l'éditeur...

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

Comme je n'ai pas eu accès à vos connexions d'origine, j'en ai créé deux autres (nommées Cours et Volumes )à partir de vos tableaux de données et une supplémentaire pour la fusion (nommée fusion ) des deux autres.

Les deux premières ne font que transposer vos données.


Pour afficher l'éditeur power query, dans l'onglet 'Données' ( Obtenir et transformer les données pour 2016 ?) cliquez sur le boutons 'Requêtes et connexion', dans le panneau qui s'affiche, clic-droit sur un nom de connexion puis 'Modifier'

Voyez d'abord les différentes étapes (3) des deux premières puis les deux étapes de la requête de fusion.

Sans doute cela pourrait-être fait à partir de vos connexions d'origine.


Cordialement
 

Bidexcel

XLDnaute Nouveau
Re,

Comme je n'ai pas eu accès à vos connexions d'origine, j'en ai créé deux autres (nommées Cours et Volumes )à partir de vos tableaux de données et une supplémentaire pour la fusion (nommée fusion ) des deux autres.

Les deux premières ne font que transposer vos données.


Pour afficher l'éditeur power query, dans l'onglet 'Données' ( Obtenir et transformer les données pour 2016 ?) cliquez sur le boutons 'Requêtes et connexion', dans le panneau qui s'affiche, clic-droit sur un nom de connexion puis 'Modifier'

Voyez d'abord les différentes étapes (3) des deux premières puis les deux étapes de la requête de fusion.

Sans doute cela pourrait-être fait à partir de vos connexions d'origine.


Cordialement
J'ai pu ajouter les deux tableaux dans "Données" - "A partir d'un tableau ou d'une plage" et ca m'a sélectionné tous le tableau. J'ai ensuite cliquer sur "fermer et charger uniquement" puis "Ne créer que la connexion".
Je n'arrive pas à cerner comment vous aviez procéder pour la fusion, je vois que vous aviez mis les symboles en colonnes devant les dates pur les connexions nommées "Fusion" et "Fusion2".

Pourrais je avoir un petit enregistrement de la manipulation que vous aviez eu à faire?
Merci beaucoup
 

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

Pour les requêtes 'Cours' et 'Volumes'.
Les étapes sont les suivantes :

1 - Source = Excel.CurrentWorkbook(){[Name="[B]volumes[/B]"]}[Content]
dans cette étape, vérifier que le Name correspond bien au nom de votre Tableau de données, ici le tableau nommé 'volumes'. IMPORTANT : Power Query est sensible à la casse : 'Volumes' est différent de 'volumes'

2 - Type modifié = Table.TransformColumnTypes(Source,{{"Date ", type date}, {"PALC", Int64.Type}, {"SCRC", Int64.Type}, {"SICC", Int64.Type}, {"SOGC", Int64.Type}, {"SPHC", Int64.Type}, {"BRVM-AGR", type number}})
P.Q. met pour le champ "Date", le type datetime automatiquement, changez dans la barre de formule de l'éditeur le mot datetime par date

3 - Tableau croisé dynamique des colonnes supprimé = Table.UnpivotOtherColumns(#"Type modifié", {"Date "}, "Symbole", "Volume")
Pour réaliser cette étape :
3.1 - Cliquez sur la colonne 'PALC' maintenez la touche shift (MAJ) enfoncée et cliquer sur la colonne 'BRVM-AGR' pour sélectionner toutes les colonne SAUF la première (date).
3.2 - Onglet 'Transformer' cliquez sur le bouton ''Dépivoter les colonnes'. Une fois le travail effectué par P.Q. vous verrez dans la barre de formule : Table.UnpivotOtherColumns(#"Type modifié", {"Date "}, "Attribut", "Valeur")
3.3 - Changer les mots "Attribut" et "Valeur" par "Symbole" et "Volume" pour la requête "Volumes' et par 'Symbole' et 'Cours' pour la requête 'Cours'

Vos requêtes sont prêtes.

Pour la fusion.
Les étapes sont les suivantes :

1 - Dans l'onglet 'Accueil' de l'éditeur développez le bouton 'Fusionner des requêtes' et choisir la deuxième options : 'Fusionner des requêtes comme nouvelles'.
2 - Dans la fenêtre qui souvre choisissez les options comme sur l'image ci-dessous :

1606463550606.png


Veillez à bien sélectionner les 2 champs (Date et Symbole) pour les deux tables.
Laissez le type de jointure à 'Externe gauche.....'
Validez par 'OK'.

3 - à droite du nom de la quatrième colonne (Volumes) cliquez sur le bouton avec une double flèche vers la gauche et la droite. Dans la fenêtre qui souvre, choisissez :

1606463955157.png




Validez par 'OK'.

Voilà votre fusion est prête.

'fusion (2)' est une duplication de 'fusion' faite par excel car je n'avais demandé 'ne créer que la connexion' pour 'fusion' avant de l'afficher dans la feuille.

A vous maintenant de vous exercer, comprendre, adapter et imaginer ce que vous voulez.

Bonne journée
 

Pièces jointes

  • 1606463955297.png
    1606463955297.png
    22.7 KB · Affichages: 20
Dernière édition:

Bidexcel

XLDnaute Nouveau
Re,

Pour les requêtes 'Cours' et 'Volumes'.
Les étapes sont les suivantes :

1 - Source = Excel.CurrentWorkbook(){[Name="[B]volumes[/B]"]}[Content]
dans cette étape, vérifier que le Name correspond bien au nom de votre Tableau de données, ici le tableau nommé 'volumes'. IMPORTANT : Power Query est sensible à la casse : 'Volumes' est différent de 'volumes'

2 - Type modifié = Table.TransformColumnTypes(Source,{{"Date ", type date}, {"PALC", Int64.Type}, {"SCRC", Int64.Type}, {"SICC", Int64.Type}, {"SOGC", Int64.Type}, {"SPHC", Int64.Type}, {"BRVM-AGR", type number}})
P.Q. met pour le champ "Date", le type datetime automatiquement, changez dans la barre de formule de l'éditeur le mot datetime par date

3 - Tableau croisé dynamique des colonnes supprimé = Table.UnpivotOtherColumns(#"Type modifié", {"Date "}, "Symbole", "Volume")
Pour réaliser cette étape :
3.1 - Cliquez sur la colonne 'PALC' maintenez la touche shift (MAJ) enfoncée et cliquer sur la colonne 'BRVM-AGR' pour sélectionner toutes les colonne SAUF la première (date).
3.2 - Onglet 'Transformer' cliquez sur le bouton ''Dépivoter les colonnes'. Une fois le travail effectué par P.Q. vous verrez dans la barre de formule : Table.UnpivotOtherColumns(#"Type modifié", {"Date "}, "Attribut", "Valeur")
3.3 - Changer les mots "Attribut" et "Valeur" par "Symbole" et "Volume" pour la requête "Volumes' et par 'Symbole' et 'Cours' pour la requête 'Cours'

Vos requêtes sont prêtes.

Pour la fusion.
Les étapes sont les suivantes :

1 - Dans l'onglet 'Accueil' de l'éditeur développez le bouton 'Fusionner des requêtes' et choisir la deuxième options : 'Fusionner des requêtes comme nouvelles'.
2 - Dans la fenêtre qui souvre choisissez les options comme sur l'image ci-dessous :

Regarde la pièce jointe 1086450

Veillez à bien sélectionner les 2 champs (Date et Symbole) pour les deux tables.
Laissez le type de jointure à 'Externe gauche.....'
Validez par 'OK'.

3 - à droite du nom de la quatrième colonne (Volumes) cliquez sur le bouton avec une double flèche vers la gauche et la droite. Dans la fenêtre qui souvre, choisissez :

Regarde la pièce jointe 1086451



Validez par 'OK'.

Voilà votre fusion est prête.

'fusion (2)' est une duplication de 'fusion' faite par Excel car je n'avais demandé 'ne créer que la connexion' pour 'fusion' avant de l'afficher dans la feuille.

A vous maintenant de vous exercer, comprendre, adapter et imaginer ce que vous voulez.

Bonne journée
Bonjour
Roblochon
J'ai suivi vos explications et j'ai pu créer les requêtes "Cours" et "Volumes" ainsi que la fusion dans mon fichier final. Cependant dans la création de mon tableau croisé dynamique ça me fait la somme des valeurs.

Capture.PNG

Diffèrent du bon format ci dessous
Capture2.PNG

Est ce un problème de format Nombre ? J'ai creusé mais j'arrive pas à voir d'où viens le problème.
Merci de m'aider STP
 

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

Je ne peux pas savoir, avec des images. D'ailleurs d'où est issu le tcd de la première image ?
Dans la requêtes fusion, vous n'avez avez peut-être pas de valeur (volume) à certaines dates ?
C'est normal pour un tcd de 'statistiquer' des données par une opération quelconque.
S'il y a plusieurs lignes de cours un même jour pour un même symbole mais qu'une ligne de volume le même jour pour le même symbole, la fusion créera autant de lignes qu'il y a de cours ce jour là. Si elle ne trouve pas de correspondance en volume, elle mettra null.

Mais peut-être n'avez-vous pas besoin d'un TCD mais simplement un tableau avec segments 'Symbole' et'Date' pour alimenter votre graphique.

Cordialement
 
Dernière édition:

Bidexcel

XLDnaute Nouveau
Re,

Je ne peux pas savoir, avec des images. D'ailleurs d'où est issu le tcd de la première image ?
Dans la requêtes fusion, vous n'avez avez peut-être pas de valeur (volume) à certaines dates ?
C'est normal pour un tcd de 'statistiquer' des données par une opération quelconque.
S'il y a plusieurs lignes de cours un même jour pour un même symbole mais qu'une ligne de volume le même jour pour le même symbole, la fusion créera autant de lignes qu'il y a de cours ce jour là. Si elle ne trouve pas de correspondance en volume, elle mettra null.

Mais peut-être n'avez-vous pas besoin d'un TCD mais simplement un tableau avec segments 'Symbole' et'Date' pour alimenter votre graphique.

Cordialement
Voici le fichier final dans lequel j'ai appliquer la procédure.
Avec les premières données que je vous ais envoyé ça marche bien et j'arrive à insérer le TDC et les valeurs apparaissent bien (Voir TCD1 avec comme requêtes "Cours", "Volumes" et "Fusion"

J'ai voulu appliquer la même procédure pour des données plus étendues. Dans TCD2 (avec comme requetes "DonneesCours", "DonneesVolumes" et "FusionDonnees"), les valeurs ne s'affichent pas comme sur le TCD1.
C'est vrai que sur mon tableau "DonneesCours", "DonneesVolumes" il y a des colonnes vides et créant la requête ca m'affiche "Null" mais j'ai remplacé tout les vides par des 0 et je rencontre le même soucis.
le fichier étant lourd je les mis dans ce lien

https://www.transfernow.net/NZm2Rg112020

Merci

Cordialement !!
 

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

Votre requête finale retourne des valeurs textuelles et vous ne pouvez donc pas les sommer dans votre TCD, si vous tentez de le faire, excel vous le signale. Il suffisait de lire le message d'erreur pour comprendre.

Dans chacune de vos requête source vérifier que le type des données de chaque colonne est le bon.
Mieux vaut le faire avant la fusion, sinon vous risquez de perdre des données.
Positionnez-vous sur l'étape 2 (Type modifié)

A gauche de chaque nom de colonne vous avez un bouton donnant le type des données contenues dans la colonne (ABC, 123, mixte des deux, ...)
1606494963921.png


Cliquez sur ce bouton de toutes les colonnes qui n'indiquent pas '123' . Dans le menu qui s'ouvre, choisissez 'nombre décimal'.

Si l'éditeur vous propose d'insérer une étape, validez. Il modifiera seulement l'étape 'Type modifié' si vous êtes placé dessus. Voyez ce qui change dans la barre de formule. vous pouvez le faire là également en 'copiant/collant' les bonnes valeurs pour chaque colonne.

Une fois vos requêtes sources modifiées, ouvrez la requête de fusion, actualisez là éventuellement et vérifiez bien que dans la dernière étape, le type des données (number ou 123).

Fermer et charger.

Recommencez votre TCD

Bon week-end
 

Bidexcel

XLDnaute Nouveau
Re,

Votre requête finale retourne des valeurs textuelles et vous ne pouvez donc pas les sommer dans votre TCD, si vous tentez de le faire, excel vous le signale. Il suffisait de lire le message d'erreur pour comprendre.

Dans chacune de vos requête source vérifier que le type des données de chaque colonne est le bon.
Mieux vaut le faire avant la fusion, sinon vous risquez de perdre des données.
Positionnez-vous sur l'étape 2 (Type modifié)

A gauche de chaque nom de colonne vous avez un bouton donnant le type des données contenues dans la colonne (ABC, 123, mixte des deux, ...) Regarde la pièce jointe 1086518

Cliquez sur ce bouton de toutes les colonnes qui n'indiquent pas '123' . Dans le menu qui s'ouvre, choisissez 'nombre décimal'.

Si l'éditeur vous propose d'insérer une étape, validez. Il modifiera seulement l'étape 'Type modifié' si vous êtes placé dessus. Voyez ce qui change dans la barre de formule. vous pouvez le faire là également en 'copiant/collant' les bonnes valeurs pour chaque colonne.

Une fois vos requêtes sources modifiées, ouvrez la requête de fusion, actualisez là éventuellement et vérifiez bien que dans la dernière étape, le type des données (number ou 123).

Fermer et charger.

Recommencez votre TCD

Bon week-end
Bonjour, j'espère que vous passiez un bon weekend effectivement cela marche parfaitement maintenant 😊😊 ☺.
Merci bien pour votre aide, j'ai appris sur Power query
 

Discussions similaires

Réponses
1
Affichages
2 K
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 074
Messages
2 085 059
Membres
102 768
dernier inscrit
clem135164