Alléger calcul matriciel

  • Initiateur de la discussion Initiateur de la discussion dieu08
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

dieu08

XLDnaute Occasionnel
[SOMMEPROD] - alléger calcul matriciel

Bonjour,

Grâce à ce forum, j'ai pu mettre en place différentes formules de calculs matriciels sur un tableau de synthèse. Je me suis vite aperçu que ces calculs étaient longs et monopolisaient de la ressource.

Je faisais avec jusque là mais je suis sur un fichier dont la formule de base est :
{=SOMMEPROD((Brutes!$M$2:$M$61007=$AL14)*(Brutes!$E$2:$E$61007=E$1)*(Brutes!$A$2:$A$61007=$A$2)*(Brutes!$K$2:$K$61007))}

Je n'arrive pas au bout, c'est trop long (40 minutes pour 10 cellules).

L'onglet source (62000 lignes) est dans le même fichier. Je ne peux malheureusement pas mettre un fichier exemple car il y a des données nominatives.

La question arrive enfin :

- comment alléger mon système de calcul ? Par un cube OLAP ? Par des requêtes SQL à la place des calculs matriciels ?

(sachant que je n'y connais rien à la création d'un cube via excel)

Je vous remercie déjà de l'aide que vous pourrez m'apporter. 😉

Dieu08
 
Dernière édition:
Re : Alléger calcul matriciel

Bonjour dieu,

les fonctions matricielles, et SOMMEPROD encore plus, sont trés lourdes à calculer.

Je pense, en regardant la formule, qu'on doit pouvoir y arriver avec une fonction BDSOMME, beaucoup moins gourmande....

mais pour confirmer, il me faudrait un bout de fichier exemple...
 
Re : Alléger calcul matriciel

Bonjour,
Bonjour à tous,

Je pense que c'est en fonction de la feuille "brutes", considérée comme base de donées, que vous vouliez atteindre le résultat, qui est affiché sur la feuille "valeur".

Si, c'est le cas essaye de revoir les entêtes des deux feuilles afin qu'ils soient uniforme, pour qu'on puisse réaliser votre probléme par un TCD .

A+
Bcharef
 
Dernière édition:
Re : Alléger calcul matriciel

Bonjour à tous,

un simple sommeprod() ne conviendrait-il pas?

=SOMMEPROD((Brutes!$R$2:$R$171=Valeur!$A$2&" "&Valeur!E$1&" "&Valeur!$AL3)*1)

Cdlt

En fait, j'ai fait une petite erreur la formule est :

=SOMME(N(FREQUENCE(SI(Brutes!$R$2:$R$61830=CONCATENER($A$2;" ";E$1;" ";$AL3);EQUIV(Brutes!$G$2:$G$61830;Brutes!$G$2:$G$61830;0));LIGNE($1:$61830))>0))

Car je dois éviter de compter les doublons. Donc la formule que vous proposez ne peut convenir.

Dieu08
 
Re : Alléger calcul matriciel

bonjour à tous

tu es obligé de le faire par formule ?

par macro avec les filtres, ca à des chance d'etre beaucoup plus rapides

Bonjour,

Je doute que des calculs aussi complexes puissent être simplifiés ainsi mais si tu as un exemple concret à me donner, je suis preneur évidemment !

Je galère et ça devient urgent !

Dieu08
 
Re : Alléger calcul matriciel

Bonsoir Dieu08, bonsoir à tous,

Ta demande n'est pas très claire pour moi puisque la première formule que tu as donné totalise la colonne K donc le montant des prestations alors que la deuxième compte le nombre de prestations.

Comme c'est facile à modifier, je t'envoie un exemple avec le total des prestations en colonne K.

Si tu as vraiment un ensemble de données aussi important, je te propose comme dans l'exemple, une double solution:

Une requête MSQuery tout d'abord qui va cumuler les prestations pour les différentes catégories et les mois.

une macro qui va se servir des résultats de la requête pour remplir la feuille "Valeur".

J'espère que ça va dans le sens que tu souhaites.

@+

Gael
 

Pièces jointes

Re : Alléger calcul matriciel

Bonsoir Dieu08, bonsoir à tous,

Ta demande n'est pas très claire pour moi puisque la première formule que tu as donné totalise la colonne K donc le montant des prestations alors que la deuxième compte le nombre de prestations.

Comme c'est facile à modifier, je t'envoie un exemple avec le total des prestations en colonne K.

Si tu as vraiment un ensemble de données aussi important, je te propose comme dans l'exemple, une double solution:

Une requête MSQuery tout d'abord qui va cumuler les prestations pour les différentes catégories et les mois.

une macro qui va se servir des résultats de la requête pour remplir la feuille "Valeur".

J'espère que ça va dans le sens que tu souhaites.

@+

Gael

Bonjour,

J'y regarde de suite ...

Mais comment as-tu fait pour joindre un fichier de 145 ko ?

Dieu08
 
Re : Alléger calcul matriciel

Bonjour Dieu08,

Sans vouloir faire de Pub pour XLD, tu peux devenir "supporter XLD" moyennant une cotisation modique qui t'accordera certains privilèges dont l'augmentation de la taille des fichiers envoyés.

Regarde en début de forum, "Devenir supporter XLD".

@+

Gael
 
Re : Alléger calcul matriciel

Bonjour Dieu08,

Sans vouloir faire de Pub pour XLD, tu peux devenir "supporter XLD" moyennant une cotisation modique qui t'accordera certains privilèges dont l'augmentation de la taille des fichiers envoyés.

Regarde en début de forum, "Devenir supporter XLD".

@+

Gael

Je vais aller voir 😛

Aurais-tu l'amabilité de détailler la procédure que tu as mise en place dans ton fichier ?

J'avoue que j'ai un peu mal à comprendre ce que tu as fait pour le reproduire.

Mais je pense qu'avec ta proposition, je suis sur le bon chemin.

Merci d'avance.

Dieu08
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
20
Affichages
1 K
N
Réponses
17
Affichages
2 K
A
Réponses
2
Affichages
631
alcabin26
A
B
  • Question Question
Réponses
3
Affichages
1 K
M
Réponses
1
Affichages
870
Réponses
6
Affichages
1 K
Réponses
1
Affichages
1 K
R
  • Question Question
Réponses
10
Affichages
949
T
Réponses
0
Affichages
1 K
titoun007
T
K
  • Question Question
Microsoft 365 Problème de calcul
Réponses
11
Affichages
3 K
Retour