Re : Fichiers de données volumineux
Re,
Ok pour ton idée des 80 tcd. De toute façon, je suis très mal placé pour te guider sur la sortie en tcd, étant mauvais dans ce domaine.
Par contre, je peux t'aider à débuter dans Powerpivot .
" Le DAX là c'est quand même un langage particulier. Ce n'est pas intuitif (à part un IF). J'aimerai bien pouvoir y utilise des fonctions perso développés en vba :-(
Comment faire pour vérifier si un ID est unique dans une colonne, en DAX ?
Comment faire pour vérifier qu'une valeur dans un champ fait bien partie d'une liste prédéfinie dans une table, en DAX ?"
Au niveau des fonctions personnalisées VBA dans Powerpivot, je n'en sais rien. J'ai quand même du mal à croire que ce soit possible. Maintenant, je ne vois pas ce qui bloque avec l'utilisation des fonctions DAX.
Si cela peut t'aider, voici comment aller un peu plus loin dans Powerpivot.
---------------------------------
Comment faire ?
Déjà, le mieux est de commencer par importer ta liste prédéfinie dans powerpivot (depuis excel ,depuis un autre csv, depuis une autre source).
Tu obtiens une table dans Powerpivot => direction la partie diagramme en cliquant sur l'icone en bas à droite. Tu crées une relation entre les deux tables, un peu comme dans access.
Mon exemple de recherchev() :
J'avais dans ma table d'origine qui comportait des N° de Business Unit (BU) mais il me fallait obtenir des noms compréhensibles.
=> je me suis créé une table nommée 'BU' avec deux colonnes : le N° et le nom de BU. J'ai fait un lien dans la partie diagramme sur le N° de BU entre les deux tables. Et j'ai tapé cette formule :
=related(BU[Name]) => cette formule m'a ramené le nom de ma BU à partir de la liste
Tu remarqueras qu'à la différence de recherchev(), on ne précise pas le champ de recherche. En effet, le champ de recherche est celui du lien entre les deux tables.
Mon exemple de somme.si() :
J'ai deux tables liées : 'Job' et 'Job_Entry'
Job : la définition d'un projet (date, nom du client, ...)
Job_Entry: les lignes de facturation et de coût de chaque job (projet)
Evidemment, je souhaite faire des sommes de valeurs dans ma table job pour en sortir des analyses. Le lien entre les deux tables est l'identifiant de projet.
Dans Job, j'ai créé l'équivalent d'un somme.si : =CALCULATE(sum(Job_Entry[My_Amount2]);Job_Entry[My_Type_lv4]="ASS TEAM LEADER")+0
Là, j'ai calculé la somme de la colonne 'My_Amount2' de la table 'Job_Entry', avec la condition que le champ My_Type_Lv4="ASS TEAM LEADER".
En gros, je souhaitais calculer dans la table Job, la somme des coûts salariaux d'une catégorie d'employé par projet.
C'est donc bien un somme.si. Tu remarqueras la souplesse de la fonction : le premier argument est le calcul désiré, le second est le filtre.
Je m'aperçois que je n'ai pratiquement utilisé que ces deux fonctions, agrémenté de '+', CONCATENATE et IF...comme souvent sur excel.
Quant à nb.si, je repartirais de mon équivalent de somme.si en remplaçant sum par count.
---------------------------
Ce pdf mémo d'une page devrait t'aider :
http://powerpivot-info.com/public_files/cheat-sheet/powerpivot-dax-functions-short.pdf
Il est vrai que le web n'évoque pas encore trop souvent Powerpivot. J'ai galéré de bonnes heures sur cet outil pour obtenir des fonctions toutes simples. Mais je pense que ça vaut le coup d'investir dans Powerpivot, MS souhaitant que ce soit l'avenir.
Poulpor