[Calc] RechecheV et concatenation

Bonjour,
Je souhaiterai vérifier auprès de vous si j'utilise la bonne méthode et si
il est possible d'ajouter une fonction supplémentaire (en vérité c'est
plutôt 2 complémentaires)

Dans une feuille (destinataires) je dispose de 3 colonnes pour des
enregistrements de nom et prénom
- colonne 1 : numéro d'enregistrement
- colonne 2 : prénom
- colonne 3 : nom

dans une autre feuille (verif), je dois récupérer les nom et prénom des
enregistrements si le numéro "sort"
- colonne 1 : numéro
- colonne 2 : récupération infos nom et prénom de la feuille "destinataire"
en fonction du numéro

pour pouvoir récupérer le nom et le prénom en mm temps, j'ai ajouté une 4
eme colonne dans la feuille "destinataire" ou je concatène colonne 2 &
collone 3, et c'est l'info de cette cette cellule de l’enregistrement que je
récupère.
- Peut on se passer de cette 4 eme colonne et concaténer directement dans
le fonction de "RechecheV"

- peut on ajouter une une verif d'erreur pour supprimer le #N/D et remplacer
par un message ?
j'ai essayer avec =SI (EST ERREUR.....) mais je n'y arrive pas ....
http://ycinotti.free.fr/index_htm_files/OOClasseur_F4.pdf

merci de votre aide

fichier en rattachement : destinataire.ods
<http://nabble.documentfoundation.org/file/n4130888/destinataire.ods>

Bonjour,

Voici ce que je ferais

=SI(ESTERREUR(RECHERCHEV(A1;$destinataires.$A$1:$D$10;2;0));"non trouvé";RECHERCHEV(A1;$destinataires.$A$1:$D$10;2;0)&" "&RECHERCHEV(A1;$destinataires.$A$1:$D$10;3;0))

Bonne journée

Claude

Déjà !!
Grand merci ....

Oui, bien entendu ça fonctionne. L'ennui -- si tant est qu'on puisse
parler d'ennui -- c'est que RECHERCHEV() est appelée *quatre* fois, ce
qui, à mon goût, en fait trois de trop.
Il faut savoir que la fonction RECHERCHEV() est gourmande en ressources.
Si le fichier (où elle est présente) est volumineux, cela peut induire
de forts ralentissements de l'interface à l'ouverture du fichier. Ceci a
été bien amélioré depuis plusieurs versions (4.2 si ma mémoire est
bonne). Il n'en reste pas moins que j'essaie toujours d'optimiser de ce
côté-là et d'éviter les redondances.

Pour revenir au cas soumis par Catof, je créerais dans la feuille cible
une colonne avec la seule fonction RECHERCHEV(), dans laquelle bien sûr
on trouverait soit des valeurs trouvées soit des erreurs. Pas grave, on
peut masquer cette colonne. Dans une seconde colonne, je ferais
l'analyse d'erreur :
[note : la colonne où se trouve RECHERCHEV() est B]
En C1, on aurait
=SI(ESTERREUR(B1);"mon message d'erreur";B1)

Propre, simple, de bon goût :wink:

Accessoirement, je préférerais concaténer dans la feuille source. Mais
c'est un autre débat.

Bonjour,

Il existe une fonction très pratique qui permet de traiter l'erreur sans
avoir à la détecter d'abord, donc sans avoir à écrire deux fois la fonction:

=SIERREUR(la fonction voulu; l'alternative si son résultat est une erreur)

Bon dimanche,

Michel

Bonjour

Dans le même ordre d'idées que ce qui a déjà été évoqué, une autre
proposition : utilisation du couple de fonctions EQUIV (pour chercher
le numéro) et INDEX (pour rapatrier le nom).

Ces deux fonctions ne travaillent que sur "leur" plage (et non toute la
plage cf. RECHERCHEV).

Pour faciliter la lecture (et l'écriture) j'ai défini des "noms" sur les
deux
plages concernées. Cela donne (avec la gestion d'erreur) :

=SIERREUR(INDEX(Noms;EQUIV(A1;Numeros;0);1);"Inconnu")

destinataire.ods
<http://nabble.documentfoundation.org/file/n4130938/destinataire.ods>

Cordialement
Pierre-Yves

Extra
Toutes vos propositions me font progresser
un grand merci à tous ...