Un type de formule avec Sommeprod & recherche de valeur la plus proche

Bonjour à tous,

C'est un peu plus dur que mes post précédents, et je bloque dessus depuis un petit bout de temps pour avoir la formule!

Voici ce que je cherche :

Condition à respecter : en A2: « 2500 ». J’ai une date en G2 « 15/05/2020 », et en O2 « put ».

Puis en colonne H (de H2 :H3000) j’ai une multitude de date (par exemple 225 fois la date « 15/05/2020 » ; 300 fois la date 01/12/2021 ; etc…) ; en colonne K (de K2 :K3000) il y a soit « put » ou « call » ; et en colonne J (de J2 :J3000) il y a des chiffres (aléatoire) de 1 à 5000 ; et enfin un intitulé en colonne N (de N2:N3000).

Comment faire pour avoir une formule qui me permet de rechercher dans la colonne J la valeur qui soit la plus proche de la valeur en A2 (2500), tout est respectant que la valeur sélectionnée (dans la colonne J) ait i/sur la même ligne en colonne H « 15/05/2020 » (égal à G2) et ii/« put » sur la même ligne en colonne K (égal à O2) ; pour infine avoir son intitulé présent en colonne N.

J'ai tenté une formule avec Sommeprod du type :

Code formule : Sélectionner tout -Visualiser dans une fenêtre à part

=SOMMEPROD(A2=J2:J3000)*(G2=H2:H3000)*(O2=K2:K3500)*(N2 :N3500)

Mais...ça ne correspond pas à ce que je souhaite car il est possible qu'en colonne J il n'y ai pas de "2500" d'où la nécessité de chercher absolument la valeur la plus proche tout en respectant les 2 autres conditions.

Merci beaucoup pour votre aide

Fabien

Bonjour Fabien,

Si tu veux avoir des réponses, merci de joindre un fichier anonymisé STP

Bonjour Bruno,

Oui bien sûr désolé.

Le fichier est ci-joint et ce que je souhaite réaliser est en J2 dans l'onglet calcul RIC... en espérant que ce soit plus clair.

Merci d'avance

Fabien

Fait avec une macro

c'est très rapide avec ce nombre de lignes

Salut Fabien, Toukoul,

Perso, je préfère une fonction personnalisée simple

En partant du principe que tu auras toujours une feuille nommée "3rdfriday"

La fonction utilise les paramètres

=TrouveRIC(DateExp;Type;Strike)

Tu mets en J2 :

=trouveric(G2;H2;I2)

+ Recopie vers le vas

Si la valeur n'est pas trouvée, cela te l'indique

A+

Bonjour Toukoul, Bonjour Bruno,

Merci à tous les 2 pour vos réponses.

Bruno votre formule est vraiment top elle me sera très utile pour la suite !

Fabien

Ma réponse était plus correcte dans le sens ou j'avais la valeur la plus PROCHE et non pas la valeur au dessus.

Ah oui en effet bien vu Toukoul, je n'avais pas fait attention...

Je voulais modifier votre code en élargissant les ranges (dans l’onglet calculRIC) par exemple (I2:I10) (étant donné que j'ai plusieurs "RIC" à trouver) mais je n'arrive pas à la faire fonctionner.

Je vais manger, mais si Bruno ne réagis pas en début d'après midi je reprendrais son code car le sien est plus génial

A tout

Voila une bonne coopération

la façon de travailler de Bruno était meilleure, j'ai adapté son code

Il aurait fait sans problème

Super... ça fonctionne parfaitement, parfaite la coopération Toukoul-Bruno !

Bonne soirée et bon week-end

Bonjour à tous les deux,

Je bloque encore sur 2 choses...1/ Sur une formule dans la feuille « All-Données » un C/L automatisé ; Puis 2/un code pour la feuille « DonnéesOptions » qui doit ressembler à un sommeprod.

Toukoul m’avait déjà répondu pour le C/L(« Copier/Coller automatisé sous condition » du 05 mai) mais vu que ce ne sont pas des nombres mais des dates que je dois C/L je n’arrive pas à la faire fonctionner.

Merci pour votre aide

Fabien

J'ai considéré que le pas de "17" était toujours conservé

Cdt

Wow, c'est parfait... Merci Toukoul !

Un petite question sur le nombre de ligne calculé dans la feuille "DonnéesOptions", je n'arrive pas à comprendre pourquoi il doit être de -8 à +7, est-ce que ça suffira si j'ai un nombre de dates assez important ?

Je n'ai rien trouvé qui varie de -8 à 7!

Petite explication sur le LIGNE()-8*17+17 :

Si elle située est sur la ligne 7 alors LIGNE() vaut 7 donc on a (7-8)*17+17=0

Si elle située est sur la ligne 8 alors LIGNE() vaut 8 donc on a (8-8)*17+17=17

Si elle située est sur la ligne 9 alors LIGNE() vaut 9 donc on a (9-8)*17+17=34

etc

si l'on a : LIGNE()-8*17+18

Si elle située est sur la ligne 7 alors LIGNE() vaut 7 donc on a (7-8)*17+18=1

Si elle située est sur la ligne 8 alors LIGNE() vaut 8 donc on a (8-8)*17+18=18

Si elle située est sur la ligne 9 alors LIGNE() vaut 9 donc on a (9-8)*17+18=35

etc

Cela permet de balayer ainsi les 17 lignes pour chaque date

Ingénieux! Merci

Bonjour Toukoul,

Il m'aura fallu 1 jour pour comprendre la formule...

Cependant j'ai remarqué lorsque les tickers changent de place (ce qui arrivera) la performance recherchée n'est plus la bonne, est-ce qu'il est possible d'insérer un recherche SI dans la formule par exemple pour que cela fonctionne ?

J'ai inséré le fichier ci-joint avec l'exemple sur le Ticker 1 qui change de place.

Rechercher des sujets similaires à "type formule sommeprod recherche valeur proche"