Autre problème avec une formule Index(;Equiv(;Decaler

Bonsoir,

me revoilà pour un petit problème similaire à mon dernier post, sauf que là je n'arrive pas à contourner le problème et je penche dessus depuis bientôt 5 heures lol, donc je me résigne finalement à demander votre aide.

Vous verrez dans le fichier, je cherche à obtenir en Feuil1 une valeur de Feuil 3, en fonction d'une date et d'une heure. La formule fonctionne en partie en seulement... En bleu ce sont des colonnes que j'ai ajoutées pour indiquer le résultat que l'on devrait obtenir.

Merci beaucoup

Marusanmarukyû ( ○三○九 )

Bonsoir,

Formule pour E3 :

[b]=DECALER(Feuil3!$A$1;EQUIV(ARRONDI($C3+E$1;5);ARRONDI(Feuil3!$A:$A;5);0)-1;3)

[/b]

à valider par Ctrl+Maj+Entrée

Elle se recopie partout dans ton tableau.

Cette formule, un peu plus compacte que ta formule initiale, utilise la colonne A de Feuil3, qui contient la valeur Date+Heure.

On recherche donc la valeur additionnée des dates et heures de ton tableau (à partir des en-têtes lignes et colonnes qui le cadrent).

Cependant l'heure étant une valeur décimale peut être écrêtée à la nième décimale et le passage de décimal à binaire (pour lequel ce ne sont pas les mêmes nombres qui peuvent se trouver écrêtés) puis à nouveau décimal peut produire un écart lors de la comparaison qui renvoie alors FAUX, d'où l'ARRONDI, à la 5e décimale, suffisant pour garantir la validité de la comparaison (1 minute = 0,00069..., 1 seconde = 0,00001...).

Mais arrondissant le résultat de l'addition il fallait aussi arrondir pareillement la base de Feuil3. Mais comme il s'agit de la matrice de recherche, cela conduit à faire de la formule une formule matricielle. Si on la valide normalement elle renvoie une erreur N/A! (ce qui en plus créerait de la confusion (donc ne pas omettre surtout de la valider en matricielle).

Cordialement,

Ferrand

Merci beaucoup pour votre réponse rapide !

Alors effectivement cela semble bien fonctionner, hormis quelques endroits qui me donnent une erreur #REF! sans trop savoir pourquoi puisque la formule devrait trouver une valeur.

En revanche, je me demandais si l'on est obligé d'utiliser une formule matricielle dans tous les cas ? Ou alors est-ce que si j'arrondis dès le départ tous les horaires présents dans chaque feuille à la 5ème décimale, on peut s'y prendre autrement ?

Car dans ma formule finale je dois réutiliser cette formule DECALER 40 fois pour rechercher un maximum ou un minimum parmi 10 feuilles (en rajoutant une forumle si(estna(;0;) à chaque fois ), et par conséquent c'est un peu laborieux pour les processeurs ^^

Merci encore

Marusanmarukyû ( ○三○九 )

Bonjour,

L'erreur REF! survient quand une référence a disparu : quand on a supprimé des lignes ou des colonnes par exemple, ou quand on touche aux bornes d'une plage nommée...

Il n'y en avait pas dans le tableau sur lequel j'ai travaillé.

Si tu veux simplifier la formule (simplication apparente toutefois) :

- Sur Feuil3, en B2 tu tapes la formule : [size=85]=ARRONDI(A2;5)

[/size]tu la tires sur la colonne, tu ne verras rien de changé à cause du format de cellule mais la valeur sera celle de A arrondie (et on se réfèrera donc à B au lieu de A.

Sur Feuil1, tu te positionnes en E3 : tu fais Définir un nom (onglet Formules), tu tapes un nom par exempl : DH, et dans la zone référence tu tapes la formules : [size=85]=ARRONDI(Feuil1!$C19+Feuil1!S$1;5)

[/size](tu fais faire l'arrondi en coulisse, en quelque sorte)

La formule en E3 devient : [b]=DECALER(Feuil3!$B$1;EQUIV(DH;Feuil3!$B:$B;0)-1;2)

[/b](plus besoin de validation matricielle)

Tu l'étends à tout le tableau (même résultat que précédemment.

Si tu veux faire disparaître les N/A! : ]=SIERREUR(laformule;"")

Cordialement

Ferrand

Bonjour MFerrand,

Oui, et pourtant je n'avais pas fait de modification particulière et toutes les autres lignes fonctionnaient, sauf 2, l'une en dessous de l'autre perdue entre toutes les autres, allez savoir... Peut-être une erreur de format ou autre due à une tentative passée avec les cellules relatives à ces deux cellules...

Mais du coup, je n'avais pas lu votre réponse encore et venais sur le site pour éditer mon post:

Plutôt que d'attendre simplement votre réponse je me suis dit que je serai bête de ne pas essayer par moi-même ce que cela donnerait si j'arrondissais manuellement tou(te)s les dates/horaires à la 5ème décimale, et appliquais votre formule sans la valider matriciellement, et finalement (du moins selon les premiers résultats ) cela fonctionne bien, et je n'ai plus le souci de lenteur de la formule matricielle.

Je vais voir maintenant si je n'ai pas intérêt à appliquer votre seconde solution en définissant un nom, ce qui évitera des erreurs si j'oublie par la suite d'arrondir un horaire après l'avoir entré manuellement.

Merci beaucoup une nouvelle fois, et je vous souhaite une excellente fin de journée

Marusanmarukyû ( ○三○九 )

Rechercher des sujets similaires à "probleme formule index equiv decaler"