Index Equiv LireTCD Grande.valeur --> Top 6 d'un TCD

magnusyou

XLDnaute Junior
Bonsoir à tous,

J'ai un petit blocage concernant la mise en place d'une formule sur un de mes fichiers.

En fait, je souhaiterai remonter une valeur d'un TCD si celle-ci est dans le Top 6 mais selon plusieurs critères.

Globalement l'idée est la suivante:

Pour le pays sélectionné en L3, je voudrai savoir quel est le Top 6 de mes "types de séjour" en 2013 et en 2014 ainsi que le nombre de demandes.

Je vous mets une pj avec ce que je souhaite obtenir comme résultat.

Par avance merci de votre aide précieuse,
 

Pièces jointes

  • magnusyouTCD.xlsx
    303.1 KB · Affichages: 58
  • magnusyouTCD.xlsx
    303.1 KB · Affichages: 79
  • magnusyouTCD.xlsx
    303.1 KB · Affichages: 76

mromain

XLDnaute Barbatruc
Re : Index Equiv LireTCD Grande.valeur --> Top 6 d'un TCD

Bonjour magnusyou, Misange, chris, le forum

Ci-joint, une autre solution, sans tableaux croisés dynamiques, mais avec une requête MS-Query qui fait une partie du traitement.
Elle cumule les Demandes par Pays, Année et Type de séjour dans la feuille FeuilInt qui peut rester cachée à l’utilisateur final.
La sélection du pays analysé et le résultat sont sur la feuille AnalysePays.

J’ai rajouté du code VBA pour la gestion des connexions MS-Query. Il faut donc activer les macros pour faire fonctionner le classeur.

Cette solution fonctionne, par contre, elle a le désavantage par rapport à la solution proposée par Misange et chris (2 TCD avec un slicer) de :
  • Nécessiter l’activation des macros ;
  • Etre plus contraignante à mettre en œuvre ;
  • Se baser sur MS-Query qui commence à être déprécié depuis Excel 2013 – même si ce point n’est pas bloquant à moyen terme.

A+
Miki
 

Pièces jointes

  • magnusyouTCD2.xlsm
    343.6 KB · Affichages: 90

magnusyou

XLDnaute Junior
Re : Index Equiv LireTCD Grande.valeur --> Top 6 d'un TCD

!!!!!!!!!

Ouahouu.. Merci!!

J'essaye de comprendre la mécanique mais c'est pas simple du tout.. surtout quand je me suis amusé à faire Alt+F11 ! Ca pique les yeux ! :)

Romain, pourquoi passé par MS-Query en fait?
 

Misange

XLDnaute Barbatruc
Re : Index Equiv LireTCD Grande.valeur --> Top 6 d'un TCD

Bonsoir, coucou Chris et mromain,
Décidemment tu as l'air de beaucoup aimer ce qui est compliqué. Alors pour le fun puisque tu ne vas pas aimer un truc aussi simple, sans macro, sans formule, :)
Un nouvel exemple en PJ avec un segment synchronisant les deux TCD et les deux graphiques associés.

NB : il ne me semble pas logique de mettre dans la base de données des demandes = 0 mais c'est à toi de voir.
 

Pièces jointes

  • magnusyouTCD.xlsx
    302.3 KB · Affichages: 54
  • magnusyouTCD.xlsx
    302.3 KB · Affichages: 65
  • magnusyouTCD.xlsx
    302.3 KB · Affichages: 70

mromain

XLDnaute Barbatruc
Re : Index Equiv LireTCD Grande.valeur --> Top 6 d'un TCD

Re bonjour,
Chris, alors comment trouver la valeur avec cette formule en lui demandant les 6 plus grandes?
Comme te l’a dit Chris, LIREDONNEESTABCROISDYNAMIQUE peut renvoyer les VALEURS de ton TCD en fonction des LIGNES. Dans ton TCD, la fonction te permettra donc d’accéder aux sommes de Demandes en fonctions d’un Pays, d’un Type de séjour et d’une Année.
304752d1398194604-index-equiv-liretcd-grande-valeur-top-6-dun-tcd-tcd_champs.png


Cette fonction ne te permettra donc pas de renvoyer le type de séjour. De plus, les VALEURS d’un TCD étant numérique, la fonction LIREDONNEESTABCROISDYNAMIQUE renverra toujours une valeur numérique.

Romain, pourquoi passé par MS-Query en fait?
MS-Query permet de faire des requêtes SQL sur des données Excel (entre autre). Dans ton cas, le SQL permet de traiter les données de la feuille Feuil2 en :
  • regroupant (GROUP BY SQL) les Demandes par Pays, Type de séjour et Année ;
  • triant les résultats(ORDER BY SQL) par Pays, Année, Somme de Demandes (décroissant) et Type de séjour.
Les données ainsi triées, il suffit de trouver la première ligne de 2013 pour le pays voulu (cellule FeuilInt!I3) et les 6 suivantes, idem pour 2014.

J'essaye de comprendre la mécanique mais c'est pas simple du tout..
Il faut avouer que MS-Query est un peu déroutant au début, mais une fois apprivoisé, il est bien utile. Si tu t’y intéresses, voici un tuto que j’avais fait pour présenter cette fonctionnalité.
Ensuite, pour éditer la requête, il faut faire un clic droit sur le tableau de la feuille FeuilInt, puis Table > Modifier la requête.

surtout quand je me suis amusé à faire Alt+F11 ! Ca pique les yeux !
Il ne faut pas regarder le VBA au début dans le sens où le gros du traitement (utile à ta problématique) est fait par MS-Query. Le VBA n’est là que pour pallier aux limites de MS-Query abordées à la fin du tuto.

Bon courage tout de même si tu choisis de te lancer dans l’aventure. Cela dit, et vaut sûrement mieux le répéter, même si cette solution fonctionne, celle proposée par Misange et chris est plus facile à mettre en œuvre et à maintenir.

edit: La solution de Misange est effectivement bien plus simple quand même..

A+
 

Pièces jointes

  • TCD_Champs.png
    TCD_Champs.png
    34.3 KB · Affichages: 99
Dernière édition:

chris

XLDnaute Barbatruc
Re : Index Equiv LireTCD Grande.valeur --> Top 6 d'un TCD

Bonjour
Bonsoir, coucou Chris et mromain,
Décidemment tu as l'air de beaucoup aimer ce qui est compliqué. Alors pour le fun puisque tu ne vas pas aimer un truc aussi simple, sans macro, sans formule, :)
Un nouvel exemple en PJ avec un segment synchronisant les deux TCD et les deux graphiques associés.

NB : il ne me semble pas logique de mettre dans la base de données des demandes = 0 mais c'est à toi de voir.

Misange : j'avais fait le même ! Mais magnusyou semblant allergique à cette solution, je l'ai gardée sous le coude...
Mromain : j'utilise aussi MsQuery pour des cas particuliers : requête union notamment mais là... Bonne idée le VBA pour maintenir le lien. Je vais garder ton code ;).
 

mromain

XLDnaute Barbatruc
Re : Index Equiv LireTCD Grande.valeur --> Top 6 d'un TCD

Bonsoir Chris,

Je vais garder ton code
Ça fait plaisir :)
Bien que les fonctions s’appellent UpdateExcelConnection(s), elles marchent aussi pour des bases Access.
j'utilise aussi MsQuery pour des cas particuliers : requête union notamment
Il m’arrive encore de m’en servir (rarement) pour des fichiers de reporting basés sur des extracts d’outils (l'utilisateur saisi le chemin de la source de donnée dans une cellule, et à la modification de celle-ci, toutes les connexions basées sur la source sont mises à jour), ou des fichiers de "vue de données" issues de bases de données.

Bonne soirée
 

Discussions similaires

Réponses
5
Affichages
399

Statistiques des forums

Discussions
312 429
Messages
2 088 350
Membres
103 823
dernier inscrit
ben talha redouane