Possibilité d'optmiser une formule matricielle ?

sophie

XLDnaute Nouveau
Bonjour à tous,

Tout d'abord, je suis novice sur le forum donc je m'excuse d'avance si ma question paraît stupide, mal formulée ou a déjà obtenu une réponse ailleurs. Je m'efforcerais de faire mieux la prochaine fois.

Voici mon problème :
Je cherche à identifier dans un tableau des identifiants de brevets, ces identifiants étant inscrits dans un autre tableau sur une autre feuille. Grâce à ce forum et à d'autres, j'ai pu trouver une formule matricielle qu fonctionne pour ce que je recherche. La voici : =(SOMME(ESTNUM(CHERCHE(SI(Feuil4!$B$2:$KB$2<>"";Feuil4!$B$2:$KB$2);Feuil7!C$2))*LIGNE(Feuil4!$B$2:$KB$2))>0)*1
Feuil4!$B$2:$KB$2 correspond à la plage dans laquelle je cherche mes identifiants (1 brevet pouvant avoir une multitude d'identifiants)
Feuil7!C$2 correspond à la cellule dans laquelle je recherche au moins un des identifiants inscrits dans la plage Feuil4!$B$2:$KB$2. Si un des identifiants est présent, la formule me renvoie 1, sinon 1.
Je répète cette action pour autant de brevets cités que j'ai.
Le problème est qu'elle est très longue à appliquer sur l'ensemble de mes données. Je dois appliquer cette formule pour chaque cellule d'un tableau qui comprends plus de 8000 colonnes et près de 2600 lignes. Je souhaiterais donc savoir s'il existe des moyens d'optimiser cette opération afin de gagner du temps, car pour l'instant je ne peux étirer la formule que sur 300 lignes et une dizaine de colonnes à chaque fois.

Je me demande donc si :
adapter ma formule sur VBA me permettrait de gagner du temps ?
il existe un moyen de simplifier cette formule ?
le fait de scinder mon tableau de donnée en deux tableaux distincts que je traiterais l'un à la suite de l'autre aiderait Excel à aller plus vite ?

Merci d'avance pour votre aide !
 

Dugenou

XLDnaute Barbatruc
Re : Possibilité d'optmiser une formule matricielle ?

Bonjour,
En effet pour un tel volume de données le VBA semble plus indiqué (8000 colonnes ???? comment fais-tu cela ?)

Il faudra cependant joindre un exemple (allégé) de fichier sans données confidentielles pour qu'un macroteur puisse t'aider.

Cordialement
 

sophie

XLDnaute Nouveau
Re : Possibilité d'optmiser une formule matricielle ?

Bonjour,

Merci beaucoup pour votre réactivité !!
J'ai 8 803 colonnes car 8 803 brevets citants, et j'ai 2 698 lignes car 2 698 brevets cités.
Je vous joins un fichier simplifié :
la feuille 1 contient l'information dont j'ai besoin pour seulement 2 brevets citants
la feuille 2 contient l'information dont j'ai besoin pour seulement 2 brevets cités
la feuille fournit un exemple du calcul de ma formule matricielle.
La formule m'inscrit 1 pour le croisement entre le brevet cité 2 et le brevet citant 2, ce qui est correcte et 0 pour les autres ce qui est correct également.
Je dois ensuite étirer ma formule pour tester chaque couple de brevet entre mes 2 698 brevets cités et 8 803 brevets citants.

Encore merci !
 

Pièces jointes

  • exemple_formule.xlsm
    12 KB · Affichages: 23

Discussions similaires

Réponses
11
Affichages
303

Statistiques des forums

Discussions
313 309
Messages
2 097 030
Membres
106 811
dernier inscrit
MERAPYAAR