[Résolu] Recherchev avec matrice variable

Discussions à propos du tableur Calc.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur : Vilains modOOs

Règles du forum
Cette section est uniquement dédiée au tableur Calc. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
michel311bt
Membre OOrganisé
Membre OOrganisé
Messages : 88
Inscription : 20 nov. 2014 19:21

[Résolu] Recherchev avec matrice variable

Message par michel311bt »

Bonsoir,

J'ai besoin de vos lumières afin de résoudre un problème.

J'ai établi un planning de travail conditionné sous plusieurs variables, tel que le jour de la semain, la période de l'année, les jours fériés, ...
A chaque service correspond un horaire, horaire qui dépend donc de ces variables.
Pour faire court et rendre ma question compréhensible, j'ai créé un petit fichier qui résume parfaitement ce que je recherche.

Je vous remercie déjà pour l'aide que vous allez m'apporter.

Bonne soirée et... restez bien confiné !
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par michel311bt le 03 mai 2020 20:09, modifié 1 fois.
Open Office 4.1.7. sur Windows 10
Avatar de l’utilisateur
Jean-Louis Cadeillan
GourOOu
GourOOu
Messages : 5753
Inscription : 02 janv. 2009 23:56

Re: Recherchev avec matrice variable

Message par Jean-Louis Cadeillan »

Bonsoir,
Tu y étais presque, il fallait rendre ta concaténation F2&G2 lisible en tant que référence, donc utiliser INDIRECT(). N'oublie pas non plus le quatrième argument de RECHERCHEV (le 0) qui permet de faire une recherche exacte parmi des éléments non triés.
Donc la formule en I2 :

Code : Tout sélectionner

=RECHERCHEV(H2;INDIRECT(F2&G2);2;0)
Cordialement,
Jean-Louis
LibO 7.6.6.3 (x64 avec Java 1.8.0_411) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1
michel311bt
Membre OOrganisé
Membre OOrganisé
Messages : 88
Inscription : 20 nov. 2014 19:21

Re: Recherchev avec matrice variable

Message par michel311bt »

Merci pour cette rapide réponse.

Concernant le 4e argument, peut-être que dans cet exemple il est utile mais dans le tableur final, il ne l'est pas puisque toutes les occurences sont classées dans l'ordre numérique.

Par contre j'ai essayé ta formule, il est indiqué ERR 502.. Erreur de syntaxe de ma part ? Voici ce que j'ai tenté (en J2) :

=RECHERCHEV(H2;INDIRECT(CONCATENER(F2;G2));2;0)
=RECHERCHEV(H2;INDIRECT(F2&G2);2;0)
=RECHERCHEV(H2;INDIRECT(F2:G2);2;0) => avec message erreur #VALEUR!

Une petite explication serait la bienvenue.

Merci
Open Office 4.1.7. sur Windows 10
Avatar de l’utilisateur
Jean-Louis Cadeillan
GourOOu
GourOOu
Messages : 5753
Inscription : 02 janv. 2009 23:56

Re: Recherchev avec matrice variable

Message par Jean-Louis Cadeillan »

michel311bt a écrit :il est indiqué ERR 502.
Sûrement parce que tu n'as pas nommé la plage ESSAI1... contrairement à ce que tu affirmes... :wink:
A+
Jean-Louis
LibO 7.6.6.3 (x64 avec Java 1.8.0_411) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1
michel311bt
Membre OOrganisé
Membre OOrganisé
Messages : 88
Inscription : 20 nov. 2014 19:21

Re: Recherchev avec matrice variable

Message par michel311bt »

Oups, c'était une autre erreur !
Une plage que je n'avais pas nommée et qui était donnée en référence.

Merci pour ton aide.

Je note en résolu
Open Office 4.1.7. sur Windows 10
Avatar de l’utilisateur
Jean-Louis Cadeillan
GourOOu
GourOOu
Messages : 5753
Inscription : 02 janv. 2009 23:56

Re: [Résolu] Recherchev avec matrice variable

Message par Jean-Louis Cadeillan »

michel311bt a écrit :Concernant le 4e argument, peut-être que dans cet exemple il est utile mais dans le tableur final, il ne l'est pas puisque toutes les occurences sont classées dans l'ordre numérique.
Relis quand même les explications sur RECHERCHEV() : si tu omets le quatrième argument (c'est-à-dire le mode 1), même avec des n° classés en ordre ascendant, tu risques d'avoir des déconvenues : par exemple, si tu mets ESSAI1, et 11, normalement RECHERCHEV(), en mode 0, affiche #N/D, c'est-à-dire Non Disponible, ce qui est vrai, mais si tu omets le 0 (donc mode 1), RECHERCHEV() va quand même te retourner une valeur, la dernière disponible (JJ) --> tu ne te rendras même pas compte de l'erreur !
Donc si tu restes en mode 1 (4e argument omis), tu as intérêt à avoir une bonne gestion d'erreur (avec ESTERREUR(), SI()...).
A+
Jean-Louis
LibO 7.6.6.3 (x64 avec Java 1.8.0_411) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1