Recherche multi occurence et intervalle de date

ZiM

XLDnaute Nouveau
Bonjour le fil !

Tout d'abord merci pour vos contributions et votre investissement pour aider les débutants.

Je viens vers vous car je développe une petite calculette sous Excel.

J'intègre une base de données (B.Données) et sur une page non livrée je détermine un code en fonction d'infos diverses. Ce code est fonction du "Sex" et du "Type". Pas de soucis jusque la.

Mon souci arrive quand je dois pomper dans la table PR pour rechercher ce code (qui est présent X fois en fonction de dates ET d'âges en moi).

J'ai indiqué sur la feuille "Calc" ligne 3 un exemple.

Pour un type 66 de sexe F mon code PR est de 212 (c'est géré sur une page non livré dans la PJ).

La recherche à effectuer doit répondre dans l'ordre :
- Code = 212
- Date d'intervention (feuille Calc) comprise entre G & H (feuille PR).
- Age le plus proche de la ligne (108 mois)
- Renvoyer la colonne F --> PR

Dans mon exemple ligne 3, c'est donc la valeur 1 213 que je cherche (soit feuille PR G:1929).

La formule doit pouvoir s'appliquer manuellement ou en VB (le VB de ce niveau n'est pas pour moi… ni les formules à ce qu'il paraît...)

J'ai testé les Index / Equiv / Recherche sans succès.

Je vous remercie grandement pour votre contribution !
 

Fichiers joints

Jocelyn

XLDnaute Barbatruc
Bonjour le Forum,
Bonjour ZIM,

Je ne sais pas si je pourrais t'aider mais j'ai quand même une ou 2 questions

tu dis que tu veux comme résultat (soit feuille PR G:1929). je suppose que c'est (soit feuille PR H:1929)

ensuite 108 est egal a un nombre de mois mais les valeur age de la feuille PR vu la valeur me parraissent être des années ce qui voudrait dire que la valeur a renvoyer serait (soit feuille PR G:1908) ou l'age est de 9 car 9*12 = 108

Voila regardes et dis nous

Cordialement
 

ZiM

XLDnaute Nouveau
Bonjour Jocelyn,

Merci de prendre du temps pour m'aider.

L'âge est bien en mois mais il est nettement supérieur au plafond de 30 inclus dans le tableau (c'est donc la valeur la plus proche !)

La cellule doit retourner F1929 soit 1213 en effet j'ai fait une erreur de lecture… Mais ce n'est pas H !
L'objectif est de retourner une valeur (€) pour un Type, un sex, et une intervalle de date.
 

Jocelyn

XLDnaute Barbatruc
re

ok alors je voulais être sur ar une grosse différence entre 30 et 108 d'autant que sur aucune ligne on ne trouve plus de 30

Donc voila une formule mais attention elle risque de mettre un peu de temps niveau calcul du VBA serait beaucoup mieux mais je suis une bille a ce jeu la alors je ne pourrais pas t'aider en VBA

Cordialement
 

Fichiers joints

ZiM

XLDnaute Nouveau
Merci pour ta formule. Elle fonctionne mais j'ai une petite question car je ne pratique pas le matriciel.

Le calcul doit être lancé à chaque ligne pour que cela fonctionne ? Quand est-il nécessaire de lancer la combinaison de touches ?

Merci
 

Jocelyn

XLDnaute Barbatruc
re,

Tu installes la formule en G3 tu la valide matriciellement et tu l'étires vers le bas autant que nécessaire

Cordialement
 

ZiM

XLDnaute Nouveau
Bonsoir, j'ai intégré ta formule qui fonctionne parfaitement tant que la date reste saisie.
Je souhaitais donc modifier la formule pour intégrer un si mais cela la fait complètement planter.
Impossible de la relancer avec Ctrl+Shift+Enter…

Une alternative / correction possible svp ?
 

JHA

XLDnaute Barbatruc
Bonjour à tous,
Bonjour Jocelyn:)

Avec sierreur(), pas de soucis, en "G3"

Code:
=SIERREUR(INDEX(PR!$F$2:$F$8492;PETITE.VALEUR(SI((PR!$B$2:$B$8492*1=F3)*(PR!$G$2:$G$8492*1<=E3)*(PR!$H$2:$H$8492*1>=E3)*(ABS(PR!$D$2:$D$8492-D3)=MIN(SI((PR!$B$2:$B$8492*1=F3)*(PR!$G$2:$G$8492*1<=E3)*(PR!$H$2:$H$8492*1>=E3);ABS(PR!$D$2:$D$8492-D3))));LIGNE(PR!$B$2:$B$8492)-1);1));"")
Formule matricielle à valider par les 3 touches Ctrl+Maj+Entrée

JHA
 

ZiM

XLDnaute Nouveau
Merci pour votre aide. Je test d'ici à mercredi vos solutions.

Pour info aux noob's comme moi.
Pour valider une "plage de cellules matricielles" il faut :
- Copier votre formule vers le haut/bas/gauche/droite
- Aller cliquer dans la barre de formules (ou F2) et ENFIN faire CTRL SHIFT ENTER

Si je me tromper merci de me corriger mais chez moi j'ai réussi comme cela.
Bon go formation perso sur ce potentiel énorme de calcul !

Edit 1 :

Bon rapidement j'ai testé la formule de JHA et après validation le code reste bloqué sur les valeurs de D3/E3/F3.

La formule matricielle ne présente que le résultat de la ligne 3 peu importe son emplacement sur la page.
Je cherche un plan B sur cette base !
 
Dernière édition:

Jocelyn

XLDnaute Barbatruc
re,
Bonjour JHA:)

Alors le formule de l'ami JHA fonctionne très bien (voir le fichier joint)

Pour ne pas être ennuyé avec la formule la mettre en G3 (suivant l'exemple) puis la validée matriciellement seulement ensuite avec la poignée l'étirer vers le bas. Suivant l'exemple sélectionner G6 et avec la poignée étirer vers le bas



Cordialement
 

Fichiers joints

Discussions similaires


Haut Bas