SERIEUXETCOOL
XLDnaute Occasionnel
Bonjour à tous,
J'utilise Excel 365 FR. Je rencontre un problème concernant la structure d'une base de données (i.e. la manière de présenter les données pour permettre leur analyse plus tard). J'espère trouver ici des conseils de personnes bien plus expérimentées que moi pour m'aider à y voir plus clair.
Je mets en pièce jointe un fichier Excel pour illustrer mon propos. Pour faire simple, supposons que j'étudie l'exemple d'une base de données, dans laquelle j'ai des cours (Maths, Méca, Physique, etc.), des durées (2h, 4h, etc.), des étudiants (Groupe1, Groupe2, etc.), des profs (Marc, Julie, Jean, etc.), des salles (Salle1, Salle2, Salle3, etc.). Intuitivement, je propose une base de données avec une colonne cours, étudiants, prof, salle. Jusque-là tout va bien et je peux analyser mes données via Tableau Croisé Dynamique (TCD) comme je l'entends. Par exemple, je peux connaître le nombre heures qui est assuré par un prof, le taux de charge d'une salle, vérifier si les groupes d'étudiants ont eu le même nombre d'heures de cours, présenter une maquette des cours avec les heures associées, etc.
Le problème se pose lorsque pour un même cours (de Maths par exemple), j'ai plusieurs données associées (comme plusieurs groupes d'étudiants qui assistent à ce cours, ou bien plusieurs profs qui donnent le cours, ou encore plusieurs salles nécessaires pour assurer ce cours). Dans ce cas de figure, mon TCD ne dissocie pas les données (ce qui me semble normal). Par conséquent, je n'arrive pas avoir la bonne granulométrie dans mon analyse. Je n'arrive plus à connaitre le nombre d'heures qui est assuré par un prof, puisque je vais avoir les heures réalisées par le groupe de profs. Même chose pour les autres colonnes. Du coup, je suis perdu.
La solution que je retiens à ce stade est de dupliquer ma base de données initiale autant de fois qu'il y a de colonnes qui présentent des données liées. Dans mon exemple précédent, les colonnes Elève, Prof et Salle contiennent toutes les 3 des données liées. Je vais donc dupliquer ma base initiale 3 fois. Ce qui donne les feuilles Excel "Table Elève", "Table Prof" et "Table Salle". Pour chaque nouvelle base de données, je m'occupe uniquement d'une seule colonne contenant des données liées. Les autres colonnes contenant des données liées ne changent pas dans cette feuille, mais dans les autres. Et donc je vais ajouter autant de nouvelles lignes qu'il y a de données liées.
Par exemple, la feuille "Table Elève" s'occupe de la colonne Elève. Le cours de physique est réalisé par le groupe1 et le groupe 2 (Groupe1, Groupe2). Je vais donc copier coller cette ligne. Une ligne contiendra Groupe1, l'autre ligne contiendra Groupe2. Je pourrais ainsi analyser cette colonne Elève finement. Je fais pareil pour les autres feuilles. C'est une macro VBA qui s'occupera de créer les bases de données "Slave" contenant des données non-liées, à partir de la base de donnée initiale "Master" contenant toutes les données éventuellement liées.
Cette méthode est loin d'être parfaite mais elle me permet de répondre à mon besoin : analyser finement des données qui se retrouvent liées dans un tableau Excel.
Si certains ont des conseils pour faire mieux (car dupliquer des bases de données, multiplier des données, augmenter le stockage, augmenter le risque d'erreurs, complexifier la structure de données, augmenter les temps de calculs, complexifier la maintenance, etc.). Autant d'arguments pour ne pas utiliser cette approche.
Un grand merci d'avance à ceux que ça inspire !
J'utilise Excel 365 FR. Je rencontre un problème concernant la structure d'une base de données (i.e. la manière de présenter les données pour permettre leur analyse plus tard). J'espère trouver ici des conseils de personnes bien plus expérimentées que moi pour m'aider à y voir plus clair.
Je mets en pièce jointe un fichier Excel pour illustrer mon propos. Pour faire simple, supposons que j'étudie l'exemple d'une base de données, dans laquelle j'ai des cours (Maths, Méca, Physique, etc.), des durées (2h, 4h, etc.), des étudiants (Groupe1, Groupe2, etc.), des profs (Marc, Julie, Jean, etc.), des salles (Salle1, Salle2, Salle3, etc.). Intuitivement, je propose une base de données avec une colonne cours, étudiants, prof, salle. Jusque-là tout va bien et je peux analyser mes données via Tableau Croisé Dynamique (TCD) comme je l'entends. Par exemple, je peux connaître le nombre heures qui est assuré par un prof, le taux de charge d'une salle, vérifier si les groupes d'étudiants ont eu le même nombre d'heures de cours, présenter une maquette des cours avec les heures associées, etc.
Le problème se pose lorsque pour un même cours (de Maths par exemple), j'ai plusieurs données associées (comme plusieurs groupes d'étudiants qui assistent à ce cours, ou bien plusieurs profs qui donnent le cours, ou encore plusieurs salles nécessaires pour assurer ce cours). Dans ce cas de figure, mon TCD ne dissocie pas les données (ce qui me semble normal). Par conséquent, je n'arrive pas avoir la bonne granulométrie dans mon analyse. Je n'arrive plus à connaitre le nombre d'heures qui est assuré par un prof, puisque je vais avoir les heures réalisées par le groupe de profs. Même chose pour les autres colonnes. Du coup, je suis perdu.
La solution que je retiens à ce stade est de dupliquer ma base de données initiale autant de fois qu'il y a de colonnes qui présentent des données liées. Dans mon exemple précédent, les colonnes Elève, Prof et Salle contiennent toutes les 3 des données liées. Je vais donc dupliquer ma base initiale 3 fois. Ce qui donne les feuilles Excel "Table Elève", "Table Prof" et "Table Salle". Pour chaque nouvelle base de données, je m'occupe uniquement d'une seule colonne contenant des données liées. Les autres colonnes contenant des données liées ne changent pas dans cette feuille, mais dans les autres. Et donc je vais ajouter autant de nouvelles lignes qu'il y a de données liées.
Par exemple, la feuille "Table Elève" s'occupe de la colonne Elève. Le cours de physique est réalisé par le groupe1 et le groupe 2 (Groupe1, Groupe2). Je vais donc copier coller cette ligne. Une ligne contiendra Groupe1, l'autre ligne contiendra Groupe2. Je pourrais ainsi analyser cette colonne Elève finement. Je fais pareil pour les autres feuilles. C'est une macro VBA qui s'occupera de créer les bases de données "Slave" contenant des données non-liées, à partir de la base de donnée initiale "Master" contenant toutes les données éventuellement liées.
Cette méthode est loin d'être parfaite mais elle me permet de répondre à mon besoin : analyser finement des données qui se retrouvent liées dans un tableau Excel.
Si certains ont des conseils pour faire mieux (car dupliquer des bases de données, multiplier des données, augmenter le stockage, augmenter le risque d'erreurs, complexifier la structure de données, augmenter les temps de calculs, complexifier la maintenance, etc.). Autant d'arguments pour ne pas utiliser cette approche.
Un grand merci d'avance à ceux que ça inspire !