Optimisation - BDSOMME vs Somme.si.ens

Shiriu

XLDnaute Nouveau
Bonjour à tous,

1 - Vous trouverez ci-joint un extrait de fichier opérationnel utilisant la méthode Somme.si.ens.

2 - Mon objectif est d'optimiser le code pour le rendre le plus léger possible tous en conservant le même résultat.
Dans une autre discussion avec Tototiti2008 il a été précisé que BDSOMME était la fonction la plus fiable et la plus légère.

Ne maitrisant pas réellement cette fonction pourriez vous m'orienter sur la bonne voie.

3 - Dans le fichier :
Onglets : IRF. (Il s'agit de la base de donnée récupéré) On ne touche pas à l'onglet.

Onglets : Bal :
L'objectif de ce fichier est de combiner Période (2014/04), Numéro (1641000), Rubrique (AN,OD,CR,...), Valeur Dt, Valeur Ct.

En jaune (L1) Saisir un compte trouver en IRF. (En ligne)
En marron soit de N à AO = 1 mois (En colonne)
En rose soit de AP à XX = 2 mois etc etc

Les formules 'Somme.si.ens' se trouvent en cellule 'N1' et 'O1' et sont répété sur les cellules suivantes.

4 - Vous l'avez compris le fichier sera au final juste énorme. Et il ne s'agit que d'un onglet.
Pour faire simple uniquement dans cette onglet j'aurai.
Numéro = 700
Rubrique = 30
Période = 36
Valeur = 2

Soit un total de plus de 756 000 formules. :confused:

Shiriu
 

Pièces jointes

  • Optimisation - Somme.si.ens.xlsm
    16.7 KB · Affichages: 67

tototiti2008

XLDnaute Barbatruc
Re : Optimisation - BDSOMME vs Somme.si.ens

Bonjour Shiriu,

Pour utiliser les fonctions de MatricielPersoCalcul, je te conseille de déjà essayer sur le classeur du message #7
Regarde comment Boisgontier les a écrites, efface les, refait les... c'est déjà particulier
 

Michel_ja

XLDnaute Occasionnel
Bonsoir à tous,
je me permets de rouvrir le débat sur l'utilisation de BdSomme, RechercheV, ou SommeSiEns.
J'ai une base de données plutôt longue, plus de 180000 lignes et environ 40 Colonnes dont une vingtaine sont dédiées à des chiffres par années. Des ventes de voitures par modèles, par pays... J'ai une feuille où je donne la possibilité via un TCD à l'utilisateur de choisir un modèle (de voiture) et je souhaite récupérer le total des volumes dans l'ensemble des pays et pour chaque année.
J'ai pensé à faire cela avec la fonction BdSomme. Je joins une copie d'écran. Sur la partie gauche il y a les zones de critères, E16:M17 par exemple, et sur la zone N16:AG17, il y a les volumes. Le gros soucis est que j'utilise BdSomme 3 ou 4 fois pour 49 pays et donc Excel met trop de temps à refaire les calcules lorsque l'utilisateur change de modèle (Segment TCD).
Je me demande aujourd'hui s'il serait préférable de fusionner dans la base de données les colonnes des critères et puis faire une RechercheV. Mais d'après mes lectures, ça serait encore plus long compte tenu de la longueur de la base de données. Les données ne sont pas classées donc impossible de mettre vrai dans l'argument de RechercheV.
J'ai regardé la macro VBA de Boisgontier, RechvPlus65000Lignes, mais je ne connais pas assez VBA pour remonter les volumes sur une zone horizontale plutôt que verticale. De plus, je me demande comment modifier le code pour que la macroi prenne en compte l'ensemble des lignes (3 ou 4 x 49 pays). Sans doute en ajoutant une boucle ?
J'ai testé SommeSiEns mais c'est encore plus long compte tenu du nombre de critères et de la taille de la base de données.

Est-ce qu'une bonne âme pourrez m'aider ?
Je vous remercie.
Michel
 

Pièces jointes

  • BdSomme ou RechercheV.jpg
    BdSomme ou RechercheV.jpg
    322.9 KB · Affichages: 16
Dernière édition:

Discussions similaires

Réponses
4
Affichages
297
Réponses
5
Affichages
395

Statistiques des forums

Discussions
312 276
Messages
2 086 711
Membres
103 377
dernier inscrit
fredy45