XL 2019 Recherche en ligne dans matrice et ramener cellule de la même ligne

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

FranckyNC

XLDnaute Nouveau
Bonjour tout le monde,

Comment faire, via formule, pour effectuer une recherche comme suit :
1. Tableau 1 contient 50 en dans cellule I2
2. Matrice est fait comme ça en ligne
Sem1 (col F)Sem2 (col G)Sem3 (col H)Sem4 (col I)Sem5 (col J)Mois (col K)
50​
51​
52​
01​
01
02​
03​
04​
05​
06​
02
07​
08​
09​
10​
03
11​
12​
13​
14​
04
L'objectif est de ramener le contenu de $K2 dans la cellule du tableau 1 dans laquelle j'ai tapé la formule.
Ici, je cherche la valeur 50 sur la plage F2:J2 si trouvé alors valeur de K2 (soit 01)

Si la cellule du tableau 1 en colonne I contient 08 alors le résultat attendu serait 03 (soit le contenu de la colonne K et de la ligne 3)

Est-ce possible via une formule? Ou faut-il le faire via VBA?

Merci d'avance des réponses apportées.
Franck
 
Bonjour,
Boule-de-cristal.jpg

Peut-être =SOMMEPROD((F2:J5=A1)*(K2:K5)) ou =SI(NB.SI(F2:J2;A1);K2;"") ??? 🤔
 
Dernière édition:
Bonjour Franck, le fil,

bienvenue sur le site XLD ! 🙂

ton fichier en retour ; formule en B2 :

=GetMois([@[N° Semaine]])



1ème feuille "DATA" :

Image 1.jpg


noter que tous les nombres en A2:B5 sont sur 2 chiffres ; de plus, ma formule personnalisée GetMois() retourne « ? » si le n° de la semaine NumSem n'est pas trouvé. 🙂 c'est pour ça que le type du retour est Variant au lieu de Byte ; remarque : un Byte (plage de valeurs entre 0 et 255) aurait amplement suffit pour un n° de mois de 1 à 12. (janvier à décembre)



2ème feuille "Matrice" :

Image 2.jpg


là aussi, tous les nombres sont sur 2 chiffres.



code VBA de Module1 :

VB:
Option Explicit

Function GetMois(NumSem As Byte) As Variant
  Dim cel As Range
  Set cel = Range("Tableau1[[Sem1]:[Sem5]]").Find(NumSem, , -4163, 1, 1)
  If cel Is Nothing Then GetMois = "?" _
    Else GetMois = Worksheets("Matrice").Cells(cel.Row, 11)
End Function

soan
 

Pièces jointes

Dernière édition:
Bonjour,

Une solution avec index et agregat :
=SIERREUR(INDEX(Tableau1[Mois
(num)];AGREGAT(15;6;LIGNE(Tableau1)-LIGNE(Tableau1[#En-têtes])/(Tableau1[[Sem1]:[Sem5]]=[@[Numéro de semaine]]);1));"non trouvé")
N'a pas besoin de validation matricielle.

Remarques :
Il y a un saut de ligne dans le nom de la colonne Mois (num)
le numéros de mois sont des textes.

Cordialement
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
20
Affichages
696
Retour