Extraction/Compilation de donnés (équivalent GROUP BY SQL)

Le
ElXav
Bonjour la Communauté.

Plutôt habitué à travailler avec Access.
Je bute devant un problème d'extraction/compilation sous Excel.

J'ai un tableau ressemblant à ceci (à noter qu’il ne doit pas être
trié pour être présenté sous cette forme à l’utilisateur):

EAN produit Cdt LibFamille NB
CARTONS NB UVC Montant Achat Prix
3 017 627 454 106 28 SPECIFIQUES ENF
- -
5,760
7 622 400 417 382 12 SPECIFIQUES ENF
2 24 84,55 3,523
3 017 620 740 244 48 SPECIFIQUES ENF
- -
3,523
8 000 500 023 570 42 SPECIFIQUES ENF
1 42 175,11 4,169
3 017 620 736 100 96 SPECIFIQUES ENF
- -
2,777
3 273 072 101 082 40 MOULAGES
1 40 111,09 2,777
3 120 470 106 822 24 SPECIFIQUES ENF
- -
2,709
5 413 548 140 940 84 SPECIFIQUES ENF
2 168 455,10 2,709
3 274 647 099 308 10 SPECIFIQUES ADU
- -
2,404
3 274 647 099 094 16 MOULAGES
1 16 38,47 2,404
3 273 071 831 881 24 MOULAGES
1 24 39,06 1,628
3 015 495 071 562 44 MOULAGES
- -
1,628
3 173 287 501 588 30 SPECIFIQUES ENF
- -
2,889
3 015 497 037 009 16 SPECIFIQUES ADU
3 48 120,48 2,510
3 015 497 037 009 192 SPECIFIQUES ADU
2 384 963,86 2,510
3 015 497 037 108 16 SPECIFIQUES ADU
- -
3,977
3 015 497 037 108 192 SPECIFIQUES ADU
4 768 1 092,53 1,423
3 173 287 819 065 15 CONFISERIE ADU
- -
1,522

L’utilisateur ne renseigne que la colonne « NB CARTONS ». « NB_UVC =
»
et « Montant Achat » sont calculés automatiquement, « Prix » est =
fixe.

Js souhaite compiler les données comme ci-après, de façon à avoir :
Colonne 1 : Une ligne par « LibFamille »
Colonne 2 : Nombre de lignes par « LibFamille » contenant une
valeur dans « NB CARTONS »
Colonne 3 : Somme par « LibFamille » des valeurs dans « Nb UVC =
»
..Colonne 4 : Somme par « LibFamille » des valeurs dans « Montant
Achat »

J’obtiens le résultat suivant en posant côte à côte 3 tableaux cr=
oisés
dynamiques.

Nombre de NB CARTONS Somme de NB
UVC Somme de Montant Achat
FAMILLE Total
FAMILLE Total
FAMILLE Total
CONFISERIE ADU CONFISERIE ADU
0 CONFISERIE ADU 0
MOULAGES 3 MOULAGES
240 MOULAGES 632,99
SPECIFIQUES ADU 3 SPECIFIQUES ADU 1200
SPECIFIQUES ADU 2176,87
SPECIFIQUES ENF 3 SPECIFIQUES ENF
246 SPECIFIQUES ENF 757,03
Total 9
Total 1686
Total 3566,89

Est-il possible de le faire autrement, par fonctions de recherches, un
seul tableau croisé dynamique, autres ? Mais Hors programmation VB.

Sous Access (SQL), cela s’obtient par une requête simple de
regroupement :
SELECT FAMILLE, Count([NB DE CARTONS]) AS [CompteDeNB DE CARTONS],
Sum([NB UVC]) AS [SommeDeNB UVC],
Sum([Montant Achat]) AS [SommeDeMontant Achat]
FROM BdCollection
GROUP BY FAMILLE;

D’avance merci pour vos lumières.
Xav.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
ElXav
Le #19571861
Bon, à force de cliquer...

Voici comment je procède par tableau croisé dynamique.


Par glisser, (ou clic sur "Ajouter à " "Zone de données") placer les 3
colonnes dans la zone de données.

Résultat:
FAMILLE Données Total
CONFISERIE ADU Nombre de NB DE CARTONS
Somme de NB UVC 0
Somme de Montant Achat 0
MOULAGES Nombre de NB DE CARTONS 3
Somme de NB UVC 240
Somme de Montant Achat 632,9868799
SPECIFIQUES ADU Nombre de NB DE CARTONS 3
Somme de NB UVC 1200
Somme de Montant Achat 2176,874407
SPECIFIQUES ENF Nombre de NB DE CARTONS 3
Somme de NB UVC 246
Somme de Montant Achat 757,0320849
Total Nombre de NB DE CARTONS 9
Total Somme de NB UVC 1686
Total Somme de Montant Achat 3566,893372

Puis je clique sur l'intitulé de colonne "Données" qui contient le
bouton de liste déroulante et je fais glisser sur l'intitulé de
colonne "Total", et paf!
Résultat ok.

Si quelqu'un maitrisant les TCD peut m'expliquer ;-)

Pardon pour le dérangement.
Cordialement.



Cordialement.
JB
Le #19572801
On 15 juin, 15:58, ElXav
Bon, à force de cliquer...

Voici comment je procède par tableau croisé dynamique.

Par glisser, (ou clic sur "Ajouter à " "Zone de données") placer les 3
colonnes dans la zone de données.

Résultat:
FAMILLE Données        Total
CONFISERIE ADU  Nombre de NB DE CARTONS
        Somme de NB UVC 0
        Somme de Montant Achat  0
MOULAGES        Nombre de NB DE CARTONS 3
        Somme de NB UVC 240
        Somme de Montant Achat  632,9868799
SPECIFIQUES ADU Nombre de NB DE CARTONS 3
        Somme de NB UVC 1200
        Somme de Montant Achat  2176,874407
SPECIFIQUES ENF Nombre de NB DE CARTONS 3
        Somme de NB UVC 246
        Somme de Montant Achat  757,0320849
Total Nombre de NB DE CARTONS           9
Total Somme de NB UVC           1686


Bonsoir,

On peut utiliser SQL sous Excel avec ADO (ou DAO)

http://boisgontierjacques.free.fr/pages_site/ado.htm
http://boisgontierjacques.free.fr/pages_site/access.htm
http://boisgontierjacques.free.fr/pages_site/TableauxCroises.htm

JB
http://boisgontierjacques.free.fr
Total Somme de Montant Achat            3566,893372

Puis je clique sur l'intitulé de colonne "Données" qui contient le
bouton de liste déroulante et je fais glisser sur l'intitulé de
colonne "Total", et paf!
Résultat ok.

Si quelqu'un maitrisant les TCD peut m'expliquer ;-)

Pardon pour le dérangement.
Cordialement.

Cordialement.


ElXav
Le #19576321
Bonjour JB,

Oui, on peut tout faire via VBA, mais, je ne souhaitait pas, sur ce
coup là, utiliser VBA.
Je m'en suis sorti avec le TCD.
Il y a juste la manip exacte pour mettre plusieurs champs en colonne
qui n'est pas clair pour moi.
Je l'ai découvert après de multiples essais, je me cite:

"Puis je clique sur l'intitulé de colonne "Données" qui contient le
bouton de liste déroulante et je fais glisser sur l'intitulé de
colonne "Total", et paf!
Résultat ok.
"

Cette manip doit bien pouvoir se faire autrement que par un glisser
intempestif?!!

Cordialement.


On 15 juin, 18:22, JB
On 15 juin, 15:58, ElXav


> Bon, à force de cliquer...

> Voici comment je procède par tableau croisé dynamique.

> Par glisser, (ou clic sur "Ajouter à " "Zone de données") placer le s 3
> colonnes dans la zone de données.

> Résultat:
> FAMILLE Données        Total
> CONFISERIE ADU  Nombre de NB DE CARTONS
>         Somme de NB UVC 0
>         Somme de Montant Achat  0
> MOULAGES        Nombre de NB DE CARTONS 3
>         Somme de NB UVC 240
>         Somme de Montant Achat  632,9868799
> SPECIFIQUES ADU Nombre de NB DE CARTONS 3
>         Somme de NB UVC 1200
>         Somme de Montant Achat  2176,874407
> SPECIFIQUES ENF Nombre de NB DE CARTONS 3
>         Somme de NB UVC 246
>         Somme de Montant Achat  757,0320849
> Total Nombre de NB DE CARTONS           9
> Total Somme de NB UVC           1686

Bonsoir,

On peut utiliser SQL sous Excel avec ADO (ou DAO)

http://boisgontierjacques.free.fr/pages_site/ado.htmhttp://boisgontierjac ques.free.fr/pages_site/access.htmhttp://boisgontierjacques.free.fr/pages_s ite/TableauxCroises.htm

JBhttp://boisgontierjacques.free.fr



> Total Somme de Montant Achat            3566,893372

> Puis je clique sur l'intitulé de colonne "Données" qui contient le
> bouton de liste déroulante et je fais glisser sur l'intitulé de
> colonne "Total", et paf!
> Résultat ok.

> Si quelqu'un maitrisant les TCD peut m'expliquer ;-)

> Pardon pour le dérangement.
> Cordialement.

> Cordialement.- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -- Masquer le texte des m essages précédents -

- Afficher le texte des messages précédents -


Modeste
Le #19577921
Bonsour® ElXav avec ferveur ;o))) vous nous disiez :

Cette manip doit bien pouvoir se faire autrement que par un glisser
intempestif?!!



un glisser volontaire peut-etre ???
;o)))
ElXav
Le #19578241
Bonjour Modeste,

Hé non, 'est ça le pire.
Un dérapage, et là, miracle, mes 3 champs sont chacun dans une
colonnes, au lieu d'être en tête de ligne comme ils le sont à la
construction du TCD.
J'aimerais savoir, si c'est LA solution, pour obtenir ce résultat :-/

Exemple simple (que j'aurais dû mettre dans mon post initial, désolé)

Famille Valeur1 Valeur2
Fam1 1 10
Fam1 0
Fam1 0
Fam2 2 20
Fam3 1 10
Fam1 0
Fam1 1 10
Fam2 1 10
Fam2 1 10

Je veux une synthèse comme suit:
Famille Nombre Valeur1 Somme Valeur2
Fam1 2 20
Fam2 4 40
Fam3 1 10

A partir de l'assistant TCD, que ce soit via l'option
"Disposition...", ou en ajoutant les champs depuis la fenêtre "Liste
de champs de tableau croisé", j'obtiens le résultat suivant:

Famille Données Total
Fam1 Nombre de Valeur1 2
Somme de Valeur2 20
Fam2 Nombre de Valeur1 3
Somme de Valeur2 40
Fam3 Nombre de Valeur1 1
Somme de Valeur2 10
Total Nombre de Valeur1 6
Total Somme de Valeur2 70

Si ensuite, je fais glisser le bouton "Données" sur l'intitulé de
colonne "Total", j'obtiens ce que je cherche:

Données
Famille Nombre de Valeur1 Somme de Valeur2
Fam1 2 20
Fam2 3 40
Fam3 1 10
Total 6 70

J'ai découvert ce glissé par hasard.
Aussi, mon interrogation: Est-ce la seule méthode à appliquer pour
faire en sorte que les champs que l'on place dans la "Zone de données"
soit placés en colonne?

Wouhalou.
J'espère avoir était plus clair ;-)
Xav.





On 16 juin, 12:31, "Modeste"
Bonsour® ElXav  avec ferveur  ;o))) vous nous disiez :

> Cette manip doit bien pouvoir se faire autrement que par un glisser
> intempestif?!!

un glisser volontaire peut-etre ???
;o)))


LSteph
Le #19579911
Bonjour,

Dans un TCD une fois obtenu un premier jet avec les éléments voulus
" les blocs gris" Noms de champ Données Champs de page Lignes ou
Colonnes
peuvent ainsi être a volo déplacés , les éléments suivront la
disposition du glisser déplacer.

Si on l'emmène plus loin en dehors une croix apparaît également pour
supprimer
A cpt des version >2K tu as en plus un outil Liste des champs de
tableau qui apparaît pour plus d'option sur la structure.

Reste qu'un bon nombre de possibilités sont accessibles par menu
contextuel clic droit dans le TCD, sans compter la barre d'outils.

Les mêmes actions peuvent être reproduites en VBA.

Cordialement.

--
lSteph

On 16 juin, 14:10, ElXav
Bonjour Modeste,

Hé non, 'est ça le pire.
Un dérapage, et là, miracle, mes 3 champs sont chacun dans une
colonnes, au lieu d'être en tête de ligne comme ils le sont à la
construction du TCD.
J'aimerais savoir, si c'est LA solution, pour obtenir ce résultat :-/

Exemple simple (que j'aurais dû mettre dans mon post initial, désol é)

Famille     Valeur1     Valeur2
Fam1          1            10
Fam1                          0
Fam1                          0
Fam2         2             20
Fam3         1             10
Fam1                          0
Fam1         1             10
Fam2         1             10
Fam2         1             10

Je  veux une synthèse comme suit:
Famille      Nombre Valeur1           Somme Valeur2
Fam1                 2                                  20
Fam2                 4                                  40
Fam3                 1                                  10

A partir de l'assistant TCD, que ce soit via l'option
"Disposition...", ou en ajoutant les champs depuis la fenêtre "Liste
de champs de tableau croisé", j'obtiens le résultat suivant:

Famille      Données                Total
Fam1        Nombre de Valeur1      2
                Somme de Valeur2     20
Fam2        Nombre de Valeur1      3
                Somme de Valeur2     40
Fam3        Nombre de Valeur1      1
                Somme de Valeur2     10
Total Nombre de Valeur1              6
Total Somme de Valeur2            70

Si ensuite, je fais glisser le bouton "Données" sur l'intitulé de
colonne "Total", j'obtiens ce que je cherche:

                Données
Famille     Nombre de Valeur1     Somme de Valeur2
Fam1                2                                 20
Fam2                3                                 40
Fam3                1                                 10
Total                 6                                 70

J'ai découvert ce glissé par hasard.
Aussi, mon interrogation: Est-ce la seule méthode à appliquer pour
faire en sorte que les champs que l'on place dans la "Zone de données"
soit placés en colonne?

Wouhalou.
J'espère avoir était plus clair ;-)
Xav.

On 16 juin, 12:31, "Modeste"


> Bonsour® ElXav  avec ferveur  ;o))) vous nous disiez :

> > Cette manip doit bien pouvoir se faire autrement que par un glisser
> > intempestif?!!

> un glisser volontaire peut-etre ???
> ;o)))- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


ElXav
Le #19597621
Bonjour Steph,

Oui, merci ;-)
Déjà bien remarqué tout ce que tu indiques.

Ce que je cherche, c'est la ou les options permettant, lors de la
construction initiale du tableau (la dépose des champs dans la zoe de
données), de spécifier que ces champs sont à mettre dans des
colonnes...

Wouhalou.
Merci quand même.

Cordialement.


On 16 juin, 18:06, LSteph
Bonjour,

Dans unTCDune fois obtenu un premier jet avec les éléments voulus
" les blocs gris" Noms de champ Données Champs de page Lignes ou
Colonnes
peuvent ainsi être a volo déplacés , les éléments suivront la
disposition du glisser déplacer.

Si on l'emmène plus loin en dehors une croix apparaît également pou r
supprimer
A cpt des version >2K  tu as en plus un outil Liste des champs de
tableau qui apparaît pour plus d'option sur la structure.

Reste qu'un bon nombre de possibilités sont accessibles par menu
contextuel clic droit dans leTCD,  sans compter la barre d'outils.

Les mêmes actions peuvent être reproduites en VBA.

Cordialement.

--
lSteph

On 16 juin, 14:10, ElXav


> Bonjour Modeste,

> Hé non, 'est ça le pire.
> Un dérapage, et là, miracle, mes 3 champs sont chacun dans une
> colonnes, au lieu d'être en tête de ligne comme ils le sont à la
> construction duTCD.
> J'aimerais savoir, si c'est LA solution, pour obtenir ce résultat :-/

> Exemple simple (que j'aurais dû mettre dans mon post initial, désol é)

> Famille     Valeur1     Valeur2
> Fam1          1            10
> Fam1                          0
> Fam1                          0
> Fam2         2             20
> Fam3         1             10
> Fam1                          0
> Fam1         1             10
> Fam2         1             10
> Fam2         1             10

> Je  veux une synthèse comme suit:
> Famille      Nombre Valeur1           Somme Valeur2
> Fam1                 2                                  20
> Fam2                 4                                  40
> Fam3                 1                                  10

> A partir de l'assistantTCD, que ce soit via l'option
> "Disposition...", ou en ajoutant les champs depuis la fenêtre "Liste
> de champs de tableau croisé", j'obtiens le résultat suivant:

> Famille      Données                Total
> Fam1        Nombre de Valeur1      2
>                 Somme de Valeur2     20
> Fam2        Nombre de Valeur1      3
>                 Somme de Valeur2     40
> Fam3        Nombre de Valeur1      1
>                 Somme de Valeur2     10
> Total Nombre de Valeur1              6
> Total Somme de Valeur2            70

> Si ensuite, je fais glisser le bouton "Données" sur l'intitulé de
> colonne "Total", j'obtiens ce que je cherche:

>                 Données
> Famille     Nombre de Valeur1     Somme de Valeur2
> Fam1                2                                 20
> Fam2                3                                 40
> Fam3                1                                 10
> Total                 6                                 70

> J'ai découvert ce glissé par hasard.
> Aussi, mon interrogation: Est-ce la seule méthode à appliquer pour
> faire en sorte que les champs que l'on place dans la "Zone de données "
> soit placés en colonne?

> Wouhalou.
> J'espère avoir était plus clair ;-)
> Xav.

> On 16 juin, 12:31, "Modeste"
> > Bonsour® ElXav  avec ferveur  ;o))) vous nous disiez :

> > > Cette manip doit bien pouvoir se faire autrement que par un glisser
> > > intempestif?!!

> > un glisser volontaire peut-etre ???
> > ;o)))- Masquer le texte des messages précédents -

> - Afficher le texte des messages précédents -- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Publicité
Poster une réponse
Anonyme