Première valeur non nulle dans matrice avec coordonnées

Bonjour,

J'ai un petit casse tête à résoudre et je n'y arrive pas.

Je dispose d'une base de données contenant des prix de fournitures.

Les colonnes = Plusieurs types de pièces alu

Les lignes = Les différents diamètres existants pour ces pièces

Bien évidemment, certaines pièces n'existent pas en tous les diamètres.

Ce qui me donne une base de prix avec des blancs

Je recherche le moyen d'afficher le prix d'une pièce en indiquant dans une case le type de pièce (colonne) et dans l'autre le diamètre de cette dernière (ligne)... Et là où je n'y arrive pas : Si la case indiquée ne contiens pas de prix (car la pièce n'existe pas) je veux que la formule m'aille rechercher le prix de la première pièce (de diamètre supérieur) disponible en recherchant en dessous.

Cela reviens à rechercher la première valeur non nulle (ou non vide) dans une colonne dont le départ serait la cellule indiquée par les coordonnées saisies dans les cellules de données, et la fin le bas du tableau.

Deuxième condition (ou 2e complication) :

Si il n'y a pas du tout de prix en dessous du diamètre indiqué, alors m'indiquer le premier prix non nul immédiatement au dessus en remontant dans les diamètres plus petits.

Je vous joint le fichier avec les exemples illustrés.

15casse-tete.xlsx (13.80 Ko)

Bonjour,

une proposition par formule :

=SI(RECHERCHEV(B5;D4:J20;EQUIV(B3;D3:J3;0);0)&""="";DECALER(D3;EQUIV(9^9;DECALER(D4:D20;;EQUIV(B3;E3:J3)));EQUIV(B3;E3:J3;0));RECHERCHEV(B5;D4:J20;EQUIV(B3;D3:J3;0);0))

Cordialement

C'est pas encore le résultat escompté mais c'est déjà impressionnant.

Avec ta formule, quand il ne trouve pas de résultat dans la cellule il va chercher directement le dernier prix de la colonne.

Or, je voudrais qu'il aille chercher non pas le dernier tout en bas, mais plutôt le premier non nul en dessous .... Et si il n'y en a plus aucun jusqu'en bas du tableau, qu'il aille chercher le premier non nul au dessus.

Merci déjà pour ta proposition, malgré tout je suis impressionné par tes connaissances.

Cordialement,

Pour la seconde partie des conditions parcontre ça marche bien...

Si il ne trouve rien il prends bien le dernier au dessus.

Ça c'est nikel

Essaye sur les ALU5 et ALU6 où il y a beaucoup de trous dans les prix et tu verra.

bonjour

un essai vicieux

11blublu.xlsx (15.22 Ko)

cordialement

Non ça ne marche pas...

(En plus j'essaye de comprendre ta formule et je suis dépassé lol, tu es grave calé).

Si je reprend le tableau que tu me joins, quand je fais varier les cases ALU et DIAMETRE je ne trouve pas le résultat que je recherche, selon les essais.

Par exemple :

ALU5 en 90 devrais m'indiquer 21.00€ au lieux de 59,48€

ALU6 en 110 devrais m'indiquer 24.24€ au lieux de 33.13€

C'est à priori la seule erreur (quand la valeur à rechercher vers le bas est la première non nulle mais qu'il y en a plusieurs).

Cordialement,

Re,

C'est pas encore le résultat escompté mais c'est déjà impressionnant.

Avec ta formule, quand il ne trouve pas de résultat dans la cellule il va chercher directement le dernier prix de la colonne.

Or, je voudrais qu'il aille chercher non pas le dernier tout en bas, mais plutôt le premier non nul en dessous .... Et si il n'y en a plus aucun jusqu'en bas du tableau, qu'il aille chercher le premier non nul au dessus.

Merci déjà pour ta proposition, malgré tout je suis impressionné par tes connaissances.

Cordialement,

essaie avec avec cette formule,

=SI(RECHERCHEV(B5;D4:J20;EQUIV(B3;D3:J3;0);0)&""="";INDEX(DECALER(D4:D20;;EQUIV(B3;E3:J3;0));EQUIV(9^9;DECALER(D4:D20;;EQUIV(B3;E3:J3;0);EQUIV(B5;D4:D20)))))

Voir PJ

8casse-tete-v2.xlsx (14.28 Ko)

Cordialement

Non... Quand je fais varier les case B3 et B5 je n'ai pas les résultats attendus.

Désolé... Parcontre j'ai une autre piste que j'ai commencé à explorer.

Je pense que la formule DECALER est complexe a caler dans ce cas.

N'y-a-t-il pas une solution plus simple avec la formule PETITE.VALEUR ou GRANDE.VALEUR ?

En fait il faudrait arriver à paramétrer la formule pour que, si il trouve 0 ou RIEN dans la cellule sondée, il recherche la plus petite valeur (excépté ZERO) dans la plage dont les coordonnées sont (LaCelluleSondée : LeBasDuTableau).

C'est une idée...

Mais en tout cas je cherche aussi de mon côté et je me sent un peu dépassé par ce problème (et par vos compétences )

bonjour

rebelote

7blublu-2.xlsx (15.26 Ko)

cordialement

Re,

ok

=SI(RECHERCHEV(B5;D4:J20;EQUIV(B3;D3:J3;0);0)=0;PETITE.VALEUR(DECALER(D4:D20;;EQUIV(B3;E3:J3;0));NB.SI(DECALER(D4:D20;;EQUIV(B3;E3:J3;0));"<=0")+1);RECHERCHEV(B5;D4:J20;EQUIV(B3;D3:J3;0);0))
7casse-tete-v3.xlsx (14.27 Ko)

Cordialement

Non toujours le même problème.

Quand je modifie les coordonnées B3 et B5, si le résultat est une case vide, il ne me prend pas la première valeur juste en dessous, il va directement me prendre la plus élevée de la colonne.

Fais des test ade ton côté en mettant en B3 "ALU06" et en B5 "110", par exemple, tu verra ce que ça donne.

(C'est plus compliqué qu'il n'y parais mon casse-tête hein ???)

Ah non, petite variante lol

Cette fois il me prend directement celle du dessus si la case est vide

Mais c'est toujours pas ça

(Compliqué)

Re,

on a des pseudos, merci de les utiliser pour bien nous préciser à qui tu adresses la parole.

@ te relire

re

un essai

tout ce passe dans la colonne rouge

5blublu3.xlsx (14.98 Ko)

cordialement

Ça ne fonctionne pas dans tous les cas...

Fais des test dans les colonnes ALU05 et ALU06 tu verra selon le cas ça ne fonctionne pas.

Cordialement,

bonjour

bon ,eh bien ,tu complètes les cases vides avec les valeurs qui te conviennent (car il n'y en pas 20000 ) , ainsi un simple recherche v avec le N° de colonne mobile fera la balle , je suppose que les tarifs n'évoluent pas tout les 10 minutes

cordialement

Dommage.

C'est une opération que j'aurai voulu arriver à faire pour la comprendre également.

J'ai un catalogue de 50 tarifs au moins qui évoluent tous les 4 à 6 mois; donc cette formule m'est plutôt indispensable.

Merci quand même de ton aide et de tes essais, je trouve que tu es déjà très calé.

Rechercher des sujets similaires à "premiere valeur nulle matrice coordonnees"