Excel - Analyse de données
Résolu/Fermé
brochamin
Messages postés
88
Date d'inscription
vendredi 14 décembre 2007
Statut
Membre
Dernière intervention
22 février 2014
-
28 oct. 2008 à 21:55
brochamin Messages postés 88 Date d'inscription vendredi 14 décembre 2007 Statut Membre Dernière intervention 22 février 2014 - 3 nov. 2008 à 20:43
brochamin Messages postés 88 Date d'inscription vendredi 14 décembre 2007 Statut Membre Dernière intervention 22 février 2014 - 3 nov. 2008 à 20:43
A voir également:
- Excel - Analyse de données
- Liste déroulante excel - Guide
- Formule excel - Guide
- Si et excel - Guide
- Aller à la ligne excel - Guide
- Mise en forme conditionnelle excel - Guide
11 réponses
eriiic
Messages postés
24569
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
14 mars 2024
7 208
30 oct. 2008 à 21:09
30 oct. 2008 à 21:09
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
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 681
30 oct. 2008 à 23:44
30 oct. 2008 à 23:44
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.
eriiic
Messages postés
24569
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
14 mars 2024
7 208
30 oct. 2008 à 23:52
30 oct. 2008 à 23:52
bon reflexe gb et bonne soirée :-)
Tu peux appliquer tout de suite brochamin tu auras un gain nettement plus important
Tu peux appliquer tout de suite brochamin tu auras un gain nettement plus important
brochamin
Messages postés
88
Date d'inscription
vendredi 14 décembre 2007
Statut
Membre
Dernière intervention
22 février 2014
24
3 nov. 2008 à 20:43
3 nov. 2008 à 20:43
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.
brochamin
Messages postés
88
Date d'inscription
vendredi 14 décembre 2007
Statut
Membre
Dernière intervention
22 février 2014
24
29 oct. 2008 à 08:47
29 oct. 2008 à 08:47
Maintenant qu'il fait jour, est-ce qu'il y a une bonne âme pour m'aider.
Merci
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 303
29 oct. 2008 à 09:52
29 oct. 2008 à 09:52
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
brochamin
Messages postés
88
Date d'inscription
vendredi 14 décembre 2007
Statut
Membre
Dernière intervention
22 février 2014
24
29 oct. 2008 à 10:07
29 oct. 2008 à 10:07
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.
eriiic
Messages postés
24569
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
14 mars 2024
7 208
29 oct. 2008 à 18:58
29 oct. 2008 à 18:58
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
brochamin
Messages postés
88
Date d'inscription
vendredi 14 décembre 2007
Statut
Membre
Dernière intervention
22 février 2014
24
30 oct. 2008 à 17:33
30 oct. 2008 à 17:33
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
brochamin
Messages postés
88
Date d'inscription
vendredi 14 décembre 2007
Statut
Membre
Dernière intervention
22 février 2014
24
30 oct. 2008 à 22:16
30 oct. 2008 à 22:16
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.
eriiic
Messages postés
24569
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
14 mars 2024
7 208
30 oct. 2008 à 23:49
30 oct. 2008 à 23:49
de rien,
bonne continuation
eric
bonne continuation
eric
brochamin
Messages postés
88
Date d'inscription
vendredi 14 décembre 2007
Statut
Membre
Dernière intervention
22 février 2014
24
31 oct. 2008 à 08:05
31 oct. 2008 à 08:05
Merci à vous deux pour vos conseils.