Mon fichier fait 890 Ko, mais il est très lent (2 mn à ouvrir) qq soit l'ordinateur !

mouftie

XLDnaute Junior
Bonjour,
J'ai un fichier avec 10 000 lignes de données brut sur 6 colonnes et un tableau avec une 50e de formules matricielles ; le tout pour un pois de 890 Ko.
L'ouvrir met 2 mn, passer d'une cellule à l'autre prend 26 s.
Je ne peux pas décemment fournir cette application aux utilisateurs.
Je sais que les formules matricielles sont gourmandes, mais quand même, cela ne me semble pas très normal.

Est-ce que oui, je dois y renoncer ou y a t'il qq chose à faire ? surtout, qu'il va falloir que j'ajoute encore une 50 de formules matricielles !
Je vous joins mon fichier : Ce lien n'existe plus

Merci pour votre aide
 
Dernière édition:

Misange

XLDnaute Barbatruc
Re : Mon fichier fait 890 Ko, mais il est très lent (2 mn à ouvrir) qq soit l'ordinat

Bonjour

Ce n'est pas le poids de ton classeur qui pose un problème mais bien les formules matricielles.
Ma première réflexion en voyant tout cela c'est : TCD
Ce lien n'existe plus
à priori je pense qu'une très très grande partie de tes calculs peuvent être résolus avec un TCD. En tous cas il faut privilégier cette approche pour faire ce qui faisable avec.
Ensuite, au lieu de faire des formules matricielles, quand il y a des problèmes de temps de calcul de la sorte il est infiniment plus efficace de rajouter à ta base de données (que tu aurais tout avantage à transformer en tableau au sens excel du terme (onglet accueil/Style/mettre sous forme de tableau
Ce lien n'existe plus colonnes )
des colonnes supplémentaires qui testent les conditions que tu as dans tes matricielles.
Une excellente page sur les matricielles de Laurent Longre et leurs limites
Ce lien n'existe plus
Formules matricielles avancées | xcell

je t'ai fait un embryon d'exemple avec un TCD. Je n'ai pas creusé très loin car juste d'aller sur ton classeur pour voir les infos dont tu as besoin prend un temps inacceptable.
 

Pièces jointes

  • tcd.xlsx
    681.1 KB · Affichages: 130
  • tcd.xlsx
    681.1 KB · Affichages: 165
  • tcd.xlsx
    681.1 KB · Affichages: 164

mouftie

XLDnaute Junior
Re : Mon fichier fait 890 Ko, mais il est très lent (2 mn à ouvrir) qq soit l'ordinat

Bonjour Misange,
Merci pour ta réponse très intéressante ; je vais étudier ça de plus prêt, cependant, j'ai déjà 2 grosses questions de faisabilité.
Dans mon fichier, j'ai essentiellement des données en durée convertit en hh:mm:ss pour lesquels je dois faire soit des sommes soit des moyennes, soit enfin d'autres calculs.
Je ne maîtrise pas bien les TCD, je n'y ai jamais fait que des sommes (comme dans l'exemple que tu m'as fait) est-il possible d'y faire apparaître la moyenne journalière des durées de parcage par exemple ? et si oui, comment ?
Est-il possible de multiplier une somme d'appels par un coefficient par exemple ?

Enfin est-il possible de diviser les étiquettes de colonnes en semaine ? (les utilisateurs ont demandés dans le cahier des charges une vision hebdomadaire ?)

En tout cas d'ores et déjà un grand merci pour ta réponse et ton exemple ; il me donne une bonne leçon.
C'est extrêmement efficace et rapide. Merci également pour les liens.
 

Misange

XLDnaute Barbatruc
Re : Mon fichier fait 890 Ko, mais il est très lent (2 mn à ouvrir) qq soit l'ordinat

Bonsoir
Lis le tuto en entier :) (et les suivants qui détaillent bien d'autres points).
tu verras que tu peux
1) faire des tas d'autres calculs que nombre de ... notamment moyenne de
2) choisir le format de sortie, par exemple heure
voir exemple en pièce jointe.

Pour la semaine :
les semaines étant à cheval sur les mois, excel ne te le propose pas d'emblée dans les options de regroupement de dates. MAis il te suffit d'ajouter une colonne dans ta base de données avec le N° de la semaine (la formule que j'ai mise,n de Daniel Maher est complexe mais elle respecte parfaitement la norme européenne ce que ne font pas les formules excel. Voir les explications ici :
Ce lien n'existe plus
 

mouftie

XLDnaute Junior
Re : Mon fichier fait 890 Ko, mais il est très lent (2 mn à ouvrir) qq soit l'ordinat

Oui, merci, je suis "dessus" ton dernier message, j'ai inserrer des champs calculés, je ne vois pas encore comment faire ressortir mes données à la semaine, j'ai vu qu'avec 2010 on peut faire des calculs, je suis sur Ex2007...
J'essaie encore de trouver ; sans mes données à la semaine, ça ne passera pas.
quand tu dis
choisir le format de sortie, par exemple heure ; voir exemple en pièce jointe.
Je ne vois pas trop ce que tu veux dire, est-ce que tu as joins un autre fichier que celui de tout à l'heure ?
Je me disais qu'il fallait peut-être passé par les N° de semaine ; je vais suivre ton conseil et suivre le tuto...
 
Dernière édition:

Misange

XLDnaute Barbatruc
Re : Mon fichier fait 890 Ko, mais il est très lent (2 mn à ouvrir) qq soit l'ordinat

Ah zut j'avais oublié de joindre le fichier modifié. Le voici
 

Pièces jointes

  • tcd.xlsx
    845.7 KB · Affichages: 95
  • tcd.xlsx
    845.7 KB · Affichages: 108
  • tcd.xlsx
    845.7 KB · Affichages: 102

mouftie

XLDnaute Junior
Re : Mon fichier fait 890 Ko, mais il est très lent (2 mn à ouvrir) qq soit l'ordinat

Bonjour Misange,
Ca à l'air de répondre à 80% à ce que je voulais :
vitesse = 100%
données = 100%
Analyse = 100%
Présentation = 60%
Il me reste qq jours pour étudier dans tout les liens que tu m'as communiqué (et d'autres peut-être) pour résoudre la présentation.
Je te remercie bien sincèrement.

Cependant, je reste dubitative...
A quoi sert les formules matricielles si elles ne doivent pas être manipulées sous peine de bloquer l'application ?
Sur un autre site, il est dit de bloquer les calculs automatiques et d'utiliser la touche F9 pour mettre à jour ; certes c'est efficace, mais pas top, comment demander ça aux utilisateurs ?
 

mouftie

XLDnaute Junior
: Mon fichier fait 890 Ko, mais il est très lent (2 mn à ouvrir) qq soit l'ordinat

Bonjour Misange,
Ca à l'air de répondre à 80% à ce que je voulais :
vitesse = 100%
données = 100%
Analyse = 100%
Présentation = 60%
Il me reste qq jours pour étudier dans tout les liens que tu m'as communiqué (et d'autres peut-être) pour résoudre la présentation.
Je te remercie bien sincèrement.

Cependant, je reste dubitative...
A quoi sert les formules matricielles si elles ne doivent pas être manipulées sous peine de bloquer l'application ?
Sur un autre site, il est dit de bloquer les calculs automatiques et d'utiliser la touche F9 pour mettre à jour ; certes c'est efficace, mais pas top, comment demander ça aux utilisateurs ?
 

Misange

XLDnaute Barbatruc
Re : Mon fichier fait 890 Ko, mais il est très lent (2 mn à ouvrir) qq soit l'ordinat

Regarde dans les options du TCD, dans l'onglet création/Disposition tu peux choisir différentes présentations.
Tu peux aussi faire glisser les étiquettes des lignes et des colonnes pour choisir la façon d'analyser et de présenter tes données. C'est une des grandes forces des TCD de pouvoir analyser les mêmes données de différentes façons sans devoir pour autant pondre de nouvelles formules almabiquées.

Les formules matricielles ont des limites qui sont très bien connues. Ce n'est pas parce qu'on peut les utiliser qu'elles sont adaptées à toutes les situations. Sur de grands tableaux notamment leur temps de calcul est très souvent rédhibitoire.
Par ailleurs, faute de pouvoir manipuler facilement ton classeur orginal, je n'ai pas regardé en détail tes formules mais il n'est pas dit qu'elles soient optimales. Avec excel il y a bien souvent de nombreuses façons d'arriver au même résultat.

Oui bien sur tu peux mettre le mode de calcul sur manuel et ne rafraichir que lorsque c'est nécessaire. MAis le temps de calcul sera toujours aussi long et comme tu l'indiques toi même ça pose un problème si c'est un utilisateur non chevronné qui doit y penser...

Une autre solution, c'est de passer par le VBA pour faire les calculs, de préférence en utilisant les arrays de façon à ne travailler qu'en mémoire vive et de ne surtout pas parcourir les nombreuses lignes de ton tableau, puis de coller le résultat dans la feuille et surtout pas une formule. Il faut aussi réfléchir à la fréquence de mise à jour : si tu analyses des ventes par exemple, à partir d'un tableau journalier, il est certain que les données des vente's de janvier 2012 ne vont plus évoluer en 2013. Il est donc idiot dans ce cas de refaire le calcul des valeurs de janvier 2012 à chaque ouverture de ta feuille. Un simple copier/coller valeur sur les parties de la feuille résultat qui n'ont plus de raison de bouger accélère grandement les calculs.
Mais franchement, le premier réflexe à avoir, parce qu'elle utilise au mieux les ressources internes d'excel et qu'elle est extrêmement rapide, ce sont les TCD. Les TCD peuvent vraiment travailler sur un très grand nombre de ligne et au besoin en utilisant power pivot, tu peux encore augmenter considérablement cette puissance et travailler jusqu'à plusieurs millions de lignes (contenues dans un fichier externe dans ce cas là).
 

mouftie

XLDnaute Junior
[Résolu] Mon fichier fait 890 Ko, mais il est lent (2 mn à ouvrir) qq soit l'ordi

Misange,
Je n'arrive pas à mettre [Résolu] dans l'intitulé de mon 1er message, ni dans celui-là...

En ce qui concerne cette discussion, elle m'a beaucoup apportée, je ne sais pas quel est ton métier, dans le "civil", mais tu es très claire et convainquante dans tes explications.
Moi qui suis en pleine reconversion et autodidacte, j'espère avoir de nouveau à faire avec toi, ce qui n'enlève rien à tout ceux qui comme toi font leur possible pour aider leur congénère ou leur prochain, comme on disait au cathé...
Merci mille fois et bonne continuation.

Ps je vais encore essayé de mentionner résolu...

Le Pb, pour [Résolu] c'est qu'il fallait raccourcir le titre ; c'est pour ça que je n'y arrivait pas ; il y a une limite
 
Dernière édition:

Misange

XLDnaute Barbatruc
Re : Mon fichier fait 890 Ko, mais il est très lent (2 mn à ouvrir) qq soit l'ordinat

Welcome :)
Au fait, je suis une "elle" :)
Pour mettre résolu : dans le premier message de ce fil (ensemble de messages d'une même conversation), tu cliques sur modifier le message et là tu ajoutes [résolu] devant le titre du message.
L'avantage d'un forum c'est qu'il y a beaucoup de personnes susceptibles de se relayer pour aider, suivant le temps, les compétences, l'envie.
 

Statistiques des forums

Discussions
312 818
Messages
2 092 374
Membres
105 381
dernier inscrit
stephan57