Excel - Analyse de données
Résolu
brochamin
Messages postés
88
Date d'inscription
Statut
Membre
Dernière intervention
-
brochamin Messages postés 88 Date d'inscription Statut Membre Dernière intervention -
brochamin Messages postés 88 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai une base de données sur excel que je souhaite pouvoir analyser. J'ai voulu faire un tableau croisé dynamique, mais je rencontre 1 problème:
J'ai beaucoup d'informations dans le champs "données", pour que le tableau soit plus lisibles, je coche ou décoche les informations qui m'intéressent à l’instant T dans le menu déroulant du champs "lignes" (endroit où se mettent les intitulés des calculs fait par excel à partir champs mis dans "données"). Le problème est que dès qu'une information du champs "données" est décochée, elle disparait complètement du menu déroulant. On ne peut plus réactiver son affichage. La seule solution est d'afficher la "liste des champs" disponibles pour la constitution du TCD et de refaire glisser ce champs dans la partie "données" du tableau. Un peu pénible à la longue, d'autant qu'excel ne retient pas l'ordre où il était placé avant de disparaitre.
Merci à ceux qui se pencheront sur mon problème.
je mets mon fichier en pj au cas où mes explications ne soient pas très claires...
Pour info, j'utilise excel 2002
https://www.cjoint.com/?kCvYF13Yt8
J'ai une base de données sur excel que je souhaite pouvoir analyser. J'ai voulu faire un tableau croisé dynamique, mais je rencontre 1 problème:
J'ai beaucoup d'informations dans le champs "données", pour que le tableau soit plus lisibles, je coche ou décoche les informations qui m'intéressent à l’instant T dans le menu déroulant du champs "lignes" (endroit où se mettent les intitulés des calculs fait par excel à partir champs mis dans "données"). Le problème est que dès qu'une information du champs "données" est décochée, elle disparait complètement du menu déroulant. On ne peut plus réactiver son affichage. La seule solution est d'afficher la "liste des champs" disponibles pour la constitution du TCD et de refaire glisser ce champs dans la partie "données" du tableau. Un peu pénible à la longue, d'autant qu'excel ne retient pas l'ordre où il était placé avant de disparaitre.
Merci à ceux qui se pencheront sur mon problème.
je mets mon fichier en pj au cas où mes explications ne soient pas très claires...
Pour info, j'utilise excel 2002
https://www.cjoint.com/?kCvYF13Yt8
A voir également:
- Excel - Analyse de données
- Liste déroulante excel - Guide
- Trier des données excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Supprimer les données de navigation - Guide
11 réponses
comment faire pour borner mes calculs en fonction des listes déroulantes
tu ne peux pas facilement car c'est une chaine (janvier>avril ...), de plus avec l'année en dernier.
Sur feuille 'Données' en C utilises plutôt le format "aaaa-mm"
Pour tes listes déroulantes prépare une liste à part sous la forme 2006-01 2006-02... ça évitera d'avoir 12 fois la même valeur.
Et dans tes formules tu pourras ajouter sommeprod(...*(Données!C2:C65536>=A2)*(Données!C2:C65536<=B2))
pourquoi excel met tant de temps ?
déjà faudrait préciser en faisant quelle opération.
Mais la réponse générale est qu'il a bcp de calcul à faire et qu'il faut optimiser.
- à quoi sert la colonne B avec =TEXTE(A3;"aaaa") puisque qu'il n'y a aucune dépendance et que tu as la même chose dans la colonne A ?
- supprimer en colonne C NOMPROPRE() puisque ça n'agit pas sur le format fournit par texte()
- colonne K (et d'autres) : =SI(G2=0;"0";$G2/(I2/"1:00")). Tu as 'valeur 0' de coché dans 'outils / options / affichage'. Mets seulement =$G2/(I2/"1:00"), c'est suffisant si c'est le numérateur que tu testes.
- et tant que tu y es le (Données!C2:C65536>=A2)*(Données!C2:C65536<=B2) que tu vas utiliser de multiples fois calcule le une fois dans une colonne et utilises cette colonne
Et si tout ça n'est pas suffisant, garder les formules uniquement en ligne 2 (valable si tu es le seul utilisateur de fichier ou sinon tu sensibilises les utilisateurs) :
sélectionner A3, shift+ctrl+fin, (éventuellement remonter de qcq lignes avec shift+fleche haut si tu veux qcq formules d'avance en bas) clic-droit, copier, collage spécial valeur . Une fois habitué ça se fait très vite...
Si la dernière colonne est utilisée par (Données!C2:C65536>=A2)*(Données!C2:C65536<=B2) la déselectionner avec shift+fleche gauche avant le copier/coller...
Je te conseille de repérer les colonnes avec formule d'un fond coloré pour les repérer.
Si tu modifies une valeur existante tu sélectionnes la cellule avec formule, un double-clic sur son carré noir en bas à droite et elle se recopie jusqu'en bas pour recalculer les valeurs. Idem pour toutes les formules...
Pour des ajouts copier/coller la ligne 1 plusieurs fois en bas
eric
tu ne peux pas facilement car c'est une chaine (janvier>avril ...), de plus avec l'année en dernier.
Sur feuille 'Données' en C utilises plutôt le format "aaaa-mm"
Pour tes listes déroulantes prépare une liste à part sous la forme 2006-01 2006-02... ça évitera d'avoir 12 fois la même valeur.
Et dans tes formules tu pourras ajouter sommeprod(...*(Données!C2:C65536>=A2)*(Données!C2:C65536<=B2))
pourquoi excel met tant de temps ?
déjà faudrait préciser en faisant quelle opération.
Mais la réponse générale est qu'il a bcp de calcul à faire et qu'il faut optimiser.
- à quoi sert la colonne B avec =TEXTE(A3;"aaaa") puisque qu'il n'y a aucune dépendance et que tu as la même chose dans la colonne A ?
- supprimer en colonne C NOMPROPRE() puisque ça n'agit pas sur le format fournit par texte()
- colonne K (et d'autres) : =SI(G2=0;"0";$G2/(I2/"1:00")). Tu as 'valeur 0' de coché dans 'outils / options / affichage'. Mets seulement =$G2/(I2/"1:00"), c'est suffisant si c'est le numérateur que tu testes.
- et tant que tu y es le (Données!C2:C65536>=A2)*(Données!C2:C65536<=B2) que tu vas utiliser de multiples fois calcule le une fois dans une colonne et utilises cette colonne
Et si tout ça n'est pas suffisant, garder les formules uniquement en ligne 2 (valable si tu es le seul utilisateur de fichier ou sinon tu sensibilises les utilisateurs) :
sélectionner A3, shift+ctrl+fin, (éventuellement remonter de qcq lignes avec shift+fleche haut si tu veux qcq formules d'avance en bas) clic-droit, copier, collage spécial valeur . Une fois habitué ça se fait très vite...
Si la dernière colonne est utilisée par (Données!C2:C65536>=A2)*(Données!C2:C65536<=B2) la déselectionner avec shift+fleche gauche avant le copier/coller...
Je te conseille de repérer les colonnes avec formule d'un fond coloré pour les repérer.
Si tu modifies une valeur existante tu sélectionnes la cellule avec formule, un double-clic sur son carré noir en bas à droite et elle se recopie jusqu'en bas pour recalculer les valeurs. Idem pour toutes les formules...
Pour des ajouts copier/coller la ligne 1 plusieurs fois en bas
eric
bonsoir brochamin, Éric
Le calcul est toujours long,
Si je puis me permettre, la façon dont tu as nommé tes colonnes ne facilite pas la rapidité du calcul.
Pour "Cadences_réelles" par exemple
=Données!$P$2:$P$65536
peut être remplacé par
=DECALER(Données!$P$2;;;NBVAL(Données!$A:$A);1)
Ainsi les calculs ne se font que sur la zone utilisée et c'est beaucoup plus rapide.
Il faut bien sûr que toutes les zones soient nommées ainsi pour avoir des tailles identiques, mais en copiant la première, il suffit ensuite de coller et changer la lettre de la colonne.
Le calcul est toujours long,
Si je puis me permettre, la façon dont tu as nommé tes colonnes ne facilite pas la rapidité du calcul.
Pour "Cadences_réelles" par exemple
=Données!$P$2:$P$65536
peut être remplacé par
=DECALER(Données!$P$2;;;NBVAL(Données!$A:$A);1)
Ainsi les calculs ne se font que sur la zone utilisée et c'est beaucoup plus rapide.
Il faut bien sûr que toutes les zones soient nommées ainsi pour avoir des tailles identiques, mais en copiant la première, il suffit ensuite de coller et changer la lettre de la colonne.
J'ajoute simplement un dernier post pour ceux qui rencontreraient les mêmes problèmes que moi. Je souligne l'importance du conseil de gbinforme pour réduire le temps de calcul d'excel.
Une astuce bien pratique, encore merci.
Une astuce bien pratique, encore merci.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
clic droit dans ton tcd
afficher la liste de champs
sélectionne la (ou une) donnée en cause : elle n'est pas en gras
ajouter à "zone de données"
cliquer glisser vers la zone de données (celle où tu as tes calculs)
la donnée réapparait en bas de la liste
clic droit dans ton tcd
afficher la liste de champs
sélectionne la (ou une) donnée en cause : elle n'est pas en gras
ajouter à "zone de données"
cliquer glisser vers la zone de données (celle où tu as tes calculs)
la donnée réapparait en bas de la liste
Bonjour,
Merci pour cette réponse, mais je connais ce moyen pour retrouver une donnée. C'est ce que je qualifie de "pénible à la longue". Je cherchais une autre méthode qui permette de ne pas faire disparaitre du menu déroulant, le champs que je décoche.
Merci pour cette réponse, mais je connais ce moyen pour retrouver une donnée. C'est ce que je qualifie de "pénible à la longue". Je cherchais une autre méthode qui permette de ne pas faire disparaitre du menu déroulant, le champs que je décoche.
Bonsoir,
pour l'instant à part te faire une macro qui te les rétablit je ne vois pas...
exemple pour rétablir 'Somme de nb Séries' :
Sub resetPivotFields()
With ActiveSheet.PivotTables("Tableau croisé dynamique1")
.AddDataField ActiveSheet.PivotTables("Tableau croisé dynamique1") _
.PivotFields("nb Séries"), "Somme de nb Séries", xlSum
.DataPivotField.PivotItems("Somme de nb Séries").Position = 2
End With
End Sub
eric
pour l'instant à part te faire une macro qui te les rétablit je ne vois pas...
exemple pour rétablir 'Somme de nb Séries' :
Sub resetPivotFields()
With ActiveSheet.PivotTables("Tableau croisé dynamique1")
.AddDataField ActiveSheet.PivotTables("Tableau croisé dynamique1") _
.PivotFields("nb Séries"), "Somme de nb Séries", xlSum
.DataPivotField.PivotItems("Somme de nb Séries").Position = 2
End With
End Sub
eric
Je résous partiellement mon problème en ne passant plus par un TCD, mais en faisant moi même les calculs. Ensuite je pourrais utiliser des filtres pour afficher ou masquer telle ou telle donnée.
Je rencontre un autre problème: comment faire pour borner mes calculs en fonction des listes déroulantes que j'ai mis en haut de page...? J'ai fais un test sur la ligne 13, mais pas très concluant. fichier ci-dessous
Question subsidiaire: pourquoi excel met tant de temps à faire les calculs du tableau (pas instantané)?
https://www.cjoint.com/?kErFoN68oX
Merci
Je rencontre un autre problème: comment faire pour borner mes calculs en fonction des listes déroulantes que j'ai mis en haut de page...? J'ai fais un test sur la ligne 13, mais pas très concluant. fichier ci-dessous
Question subsidiaire: pourquoi excel met tant de temps à faire les calculs du tableau (pas instantané)?
https://www.cjoint.com/?kErFoN68oX
Merci
Merci mille fois !!!
Tes conseils sont exactement ce qu'il me fallait ! Le calcul est toujours long, mais je vais pouvoir optimiser les choses maintenant que le fond est bon! C'est pas facile, mais on peut bien se passer des TCD.
Si ça t'intéresse de voir le résultat, je mettrais bien volontier le classeur à ta dispositiion.
Encore merci de ton aide.
Tes conseils sont exactement ce qu'il me fallait ! Le calcul est toujours long, mais je vais pouvoir optimiser les choses maintenant que le fond est bon! C'est pas facile, mais on peut bien se passer des TCD.
Si ça t'intéresse de voir le résultat, je mettrais bien volontier le classeur à ta dispositiion.
Encore merci de ton aide.