Monsieur Excel
Pour tout savoir faire sur Excel !

28 mars 2011

La bonne syntaxe des recherches…

Nous avons déjà, à de multiples reprises, souligné la mauvaise qualité de l’aide d’Excel. Aujourd’hui, nous nous intéressons aux syntaxes proposées par Excel quand on tape le nom d’une fonction suivi d’une parenthèse ouvrante. Nous le ferons par rapport aux trois fonctions de recherche étudiées depuis le 21 février.

Une remarque générale

Les crochets encadrent des arguments facultatifs. Là, Microsoft a toujours faux en écrivant « ; [argument] » là où la bonne syntaxe est « [;argument] » : en effet, si l’argument n’est pas utilisé, cela n’a aucun sens de mettre le « ; ». D’ailleurs, dans certains cas, ce « ; » isolé provoquera une erreur !

La notion erronée de « valeur proche »

La référence à « valeur_proche » en B5 est totalement erronée : quand cet argument est VRAI, ce ne sont pas les valeurs proches (en dessous ou au-dessus, de façon symétrique) qui sont acceptées, mais seulement les valeurs inférieures ou égales à la valeur cherchée !

Les trois syntaxes de la fonction index()

Excel propose deux syntaxes pour la fonction index(). Certes, on pourrait dire que la troisième (cf. B18) se trouve en prenant la syntaxe de B13 sans l’argument facultatif. Mais on pourra alors rétorquer que, dans ce cas, la syntaxe à droite de B10 représente une réponse unique et absolue.

Donc, en toute logique, il fallait proposer trois syntaxes sans élément facultatif – comme je le fais en B11, B15 et B18 – soit une seule, comme à la droite de B10. Mais en proposer précisément deux, comme le fait Microsoft, n’a aucun sens…

Vecteur, matrice, zone, tableau, référence ???

Sur le plan de la précision en matière de vecteurs, matrices..., Microsoft nous offre un grand n’importe quoi en utilisant ces cinq termes à peu près au hasard et – de toute façon – sans la moindre cohérence apparente.

Ainsi, en B9, apparaît « no_zone » qui signifie réellement « no_matrice ». On ne parle de « zone » nulle part ailleurs dans l’aide…

En B5, on parle de « table_matrice » qui pourtant ne diffère en rien de la
« matrice » référencée en B13.

En B20, on parle de « tableau_recherche ». L’utilisateur pourrait de bonne foi croire qu’une matrice peut être utilisée à cet endroit : s’il le fait, il obtient une erreur, car la fonction equiv() ne fonctionne qu’avec un vecteur et aucune autre forme de matrice, ou zone, ou tableau, ou référence…

En guise de conclusion…

Cela fait plus de 20 ans que j’ai indiqué ces problèmes à Microsoft.

Peut-être ces erreurs seront-elles enfin corrigées après ma mort ?

2 Commentaire(s):

  • Pour cette partie d'Excel, comme pour bien d'autres (filtre "élaboré", ...), immobilisée depuis longtemps, on peut peut-être supposer que le sous-traitant a disparu ?
    ;))))))

    By Anonymous cduigou, sur 11:11 PM  

  • Bonjour,
    J'ai également signalé à Microsoft le problème affreux de performances de RECHERCHEV (ou les autres recherches que je n'utilise jamais) quand on l'utilise en mode recherche exacte (dernier argument à FAUX).
    Je rappelerais que sur des milliers de lignes, cet argument à FAUX donne certes une correspondance exacte (ce que je souhaite dans 99,99% des cas) mais a des performances désastreuses, c'est 10 à 100 fois plus long ! Pour que la RECHERCHEV fonctionne avec l'argument VRAI, il faut :
    1/ trier les données sur la clé de recherche
    2/ écrire (exemple) : =SI(RECHERCHEV(B2;clients!$A$1:$C$10001;1;VRAI)<>B2;NA();RECHERCHEV(B2;clients!$A$1:$C$10001;3;VRAI)).
    Cdlt.

    By Blogger Stéphane Sarrazain, sur 9:41 AM  

Enregistrer un commentaire

<< Accueil