Appliquer deux formules sur 500K lignes

Bonjour à tous,

Après de multiples tentatives d'optimisation en tout genre (qui ont échoué), je m'en remets à votre expertise ...

Je dispose d'un fichier d'environ 500 000 lignes sur laquelle je souhaite appliquer deux formules (remplissage jaune dans le fichier joint). Donc un glisser de la formule sur l'ensemble des lignes qui équivaut à un plantage du fichier

Je suis passé sous Excel 2019 et j'ai changé la version pour du 64 bits

Mon PC est un milieu de gamme (AMD octo core, 16gb de ram)

Le PC se bloque au bout de 4h et l'opération n'abouti jamais

Que me conseillez-vous de faire ?

L'utilisation de VBA permet-elle de parer à cette difficulté ?

Ou s'agit il des performances du PC qui ne sont pas suffisante ?

Merci vivement pour votre aide

Dans la pièce jointe, je n'ai laissé que les 50 premières lignes

15classeur-dt.xlsx (15.04 Ko)

Bonjour,

Alors crois-moi ... ce n'est pas ton PC ...qui est une véritable bombe atomique

Ce sont tes deux formules ... qui gagneraient à être codées ... et donc ... devenir des macros ...

Bonjour Liver_et_Las, Bonjour James

En effet, ton PC n' est pour rien ... et je ne suis pas sûr qu'il faille passer tout de suite au VBA. J'aimerais comprendre le but de ces formules et rechercher d'abord s'il est possible de simplifier. Je ne doute pas de l'exactitude de leur logique, mais il est peut-être possible de ne pas enchaîner des formules sur d'aussi grandes plages de données.

Merci pour ton retour James,

Coder des formules revient à créer des fonctions personnalisées ?

Comment dois-je m'y prendre en VBA ? Avec l'enregistreur de macro ?

Steelson, le but de ces formules est d'appliquer une variante d'un classement à l'image des echecs. Donc pour l'indice 1 d'une ligne avec l'ID, on récupère le précédent indice 2 de ce même ID dans les lignes précédentes

Re

Salut Steelson

Effectivement des fonctions personnalisées ou une macro ... peu importe ... le gain sera plus que conséquent ...

Tu n'auras plus des tonnes de RechercheV qui balayent toute ta feuille en permanence ...

Mais, dans tous les cas de figures, il faut avant tout en passer par la logique de chacune de tes deux formules ...

Hello,

J'ai suivi vos conseils !

J'ai donc écrites les formules en VBA et miracle puisque le fichier ne plante plus

Cependant, il faut à peu près 23h pour calculer le fichier qui comporte 460 000 lignes

J'ai lu un article VBA sur l'usage multithreading mais hélas son application n'est pas un succès

Avez-vous une idée quant à l’accélération du temps de traitement ?

Merci encore pour vos lumières !

Pour moi, la solution consisterait à simplifier le problème ... c'est facile à dire, moins facile à faire sans doute, et il faudrait que je comprenne ce que tu veux dire par ceci, concrètement :

Steelson, le but de ces formules est d'appliquer une variante d'un classement à l'image des echecs. Donc pour l'indice 1 d'une ligne avec l'ID, on récupère le précédent indice 2 de ce même ID dans les lignes précédentes

Comme disait Steve Jobs : "le plus difficile est de faire simple"

bonjour à tous

quand on a un problème, c'est, dans 99% des cas, qu'on a mal démarré son projet

que calcule la formule ?

d'où viennent les 500 000 lignes ? d'un progiciel ? du web ? d'un système d'acquisition automatique de données ?

pour moi, Excel n'est pas le bon choix ici (j'en connais qui vont hurler sur ce forum d'amoureux d'Excel. J'en suis un ! mais je reste raisonnable)

demande à ton progiciel de créer un txt ou csv et non un xls

ensuite passe sur Power BI Desktop gratuit. Il saura digérer facilement toutes tes données

et tu pourras faire des formules et des surtout des graphiques afin d'analyser tes données

les liens qu'on crée dans Excel entre tables sont des RECHERCHEV (formules pas trop rapides). Dans PBI ce sont de vrais liens, dont le temps de réponse est... non mesurable.

Pour Excel, c'est du Big Data, car on atteint ses limites raisonnables

sur Power BI, on en rigole.

amitiés

Rechercher des sujets similaires à "appliquer deux formules 500k lignes"