La devinette du jour

JeanMarie

XLDnaute Barbatruc
Bonjour tout le monde

Comme les blagues, les devinettes ont du succès sur le salon, en voici une.
Elle porte évidement sur l'utilisation d'Excel.

Attention, même si elle est très sérieuse, je souhaite quelle reste sur le salon.
Connaissant la réponse à cette devinette, je signale tout de suite que ce n'est pas un défit, et demande à notre Modo de la conserver ici.

La voici : Excel fait-il une différence dans le calcul d'une formule placée dans une cellule ou dans le champ "fait référence à :" d'un nom. Comment le démontrer avec la fonction ALEA() ?

@+Jean-Marie
 

Tibo

XLDnaute Barbatruc
Re : La devinette du jour

Bonjour Jean-Marie,

Toutes les devinettes ne rencontrent pas le même succès.

Cela dit, je n'ai pas de réponse à te proposer.

Ce que je sais, sans avoir pu (ni su) le tester, c'est qu'une formule nommée serait plus rapide en temps d'exécution qu'une formule figurant dans une cellule. Intéressant dans le cas de matricielles agissant sur des plages étendues.

Je suis donc impatient de lire ta réponse

@+
 

JeanMarie

XLDnaute Barbatruc
Re : La devinette du jour

Bonsoir

Désolé pour la lenteur de la réponse.

* En validant dans une cellule (A1) la formule =ALEA(), un valeur quelconque est retournée, la formule ayant comme effet de lancer un événement "Calculate". Ce qui est normal, une formule ayant été validée.
A noter : chaque entrée d'une donnée dans une autre cellule, changera la valeur en A1.

* Passons à la déclaration un "nom" (exemple : XLD) avec "fait référence à :" la formule =ALEA(), la validation de la boîte va aussi réactualiser la valeur en A1

* Pour visualiser le contenu du nom définit, on écrit dans une cellule B1 la formule =XLD. Les formules A1 et B1 seront recalculées.

Rien de révolutionnaire jusque là, et cela n'explique pas la différence, c'était pour placer les bases de ce qui va suivre.

La différence se trouve dans l'appel du résultat de la valeur retournée.

* Si en A2, on écrit la formule =A1. A2 sera égale à la nouvelle valeur de la cellule A1. Ce qui voudrait dire que la formule A1 n'est calculée qu'une seule fois par événement "Calculate".

* Procédons de la même manière pour le "nom" XLD, pour cela en B2 on écrit la formule =XLD. Après validation on aura dans la colonne B, deux valeurs distinctes.
Ce qui sous entend que le "nom" XLD est recalculé à chaque appel de son contenu.

* Un autre test, en B3, on écrit la formule = B2, B3 sera identique à B2.

Voilà pour la différence,

Ce qui voudrait dire, (au désarroi de beaucoup de monde), qu'il est donc préférable d'écrire le maximum de formules dans les cellules, et de décomposer au maximum les formules.

Quel intérêt ?
Par exemple une multitude de formule de RECHERCHE est à remplacer par une cellule (C1) contenant le résultat de la fonction EQUIV(...;...:...;0), puis les valeurs sont retournées par la fonction INDEX(...:...;C1;1), il n'y aura donc plus qu'une seule recherche de valeur.

On peut aussi supposer qu'Excel remplace dans son tableau virtuel des formules à calculer, le "nom" par la formule écrite en référence, ce qui l'obligerait à la recalculer comme une formule normale.

Sincèrement j'aurai préféré avoir un échange d'idée, mais cela n'a pas été le cas.:mad:

@+Jean-Marie
 

jmd2

XLDnaute Accro
Re : La devinette du jour

pfouuuuu !

à un tel niveau de subtilité, normal que peu d'Excelliens puissent te suivre.

tu en es à optimiser les calculs, alors que d'autres (moi ;) ) rament à faire seulement des calculs qui marchent, sans trop s'occuper d'optimisation !

amicalement

*****
 

MJ13

XLDnaute Barbatruc
Re : La devinette du jour

bonjour à tous

Jean Marie.
Ce qui voudrait dire, (au désarroi de beaucoup de monde), qu'il est donc préférable d'écrire le maximum de formules dans les cellules, et de décomposer au maximum les formules.

Avec Excel, le mieux est de se servir de tout ce qu'Excel nous offre, c'est à dire les formules, les macros, les TCDs, les filtres élaborés et d'autres subtilités comme les recherche de type ODBC avec SQL.
Celui qui maîtrise Excel est celui qui associe l'ensemble de ces concepts. Mais souvent c'est réservé à des programmateurs avertis et la pluspart des Excelliens ont appris sur le tas (ou sur le tard).

Il est donc normal que tu es eu peu de réponses puisque dans ta devinette tu t'adressais plus à des férus de programmation (et encore pour ceux qui auront compris).

En plus
Excel fait-il une différence dans le calcul d'une formule placée dans une cellule ou dans le champ "fait référence à :" d'un nom. Comment le démontrer avec la fonction ALEA() ?

Et déjà la, c'était pas très clair au départ (j'avais fait un fichier en mettant deux sommes avec des aléas avec une zone nommée et une qui ne l'était pas et je ne voyais pas le rapport avec la devinette).

Par contre il aurait été bien de mettre un fichier pour démontrer ta théorie.
En plus tu ne nous dit pas si le but est d'aller plus vite pour les calculs ce qui me paraît implicite.
 

Statistiques des forums

Discussions
312 330
Messages
2 087 340
Membres
103 524
dernier inscrit
Smile1813