Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 retourner la valeur d'un donnée évoluant dans le temps à une date donnée

  • Initiateur de la discussion Initiateur de la discussion OA29
  • Date de début Date de début

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 !

Solution
Bonsoir @OA29 🙂,
  • En colonne J, une formule pour Office 365.
  • En colonne K, une formule pour les autres versions. Formule matricielle à valider par la combinaison des trois touches Ctrl+Maj+Entrée au lieu de la seule touche entrée.
nota : on a supposé qu'une même personne ne pouvait pas emménager dans deux villes différentes le même jour !

Remarque : votre profil indique Excel 2016 mais vous utilisez dans votre classeur la fonction UNIQUE(). Il y a incohérence!

Évitez d'écrire le texte de votre demande tout en police "gras", svp.


Bonsoir @OA29 🙂,
  • En colonne J, une formule pour Office 365.
  • En colonne K, une formule pour les autres versions. Formule matricielle à valider par la combinaison des trois touches Ctrl+Maj+Entrée au lieu de la seule touche entrée.
nota : on a supposé qu'une même personne ne pouvait pas emménager dans deux villes différentes le même jour !

Remarque : votre profil indique Excel 2016 mais vous utilisez dans votre classeur la fonction UNIQUE(). Il y a incohérence!

Évitez d'écrire le texte de votre demande tout en police "gras", svp.


 

Pièces jointes

Dernière édition:
Bonsoir mapomme ,

merci pour vos propositions qui fonctionnent parfaitement.

j'utilise 365 sur Mac à la maison, et 2016 sous Windows au travail ; les fichiers que je réalise doivent tourner sous 2016.
concernant la fonction "unique", c'est ma prochaine étape : trouver une parade pour obtenir le même résultat sous 2016...

je découvre la puissance des formules matricielles ; je vais approfondir la question.

cordialement
 
Bonsoir OA29, mapomme, bhbh,

Je n'ai pas Microsoft 365 alors j'utilise ces formules matricielles en I11 et J11 :
Code:
=INDEX(Tableau1[nom];PETITE.VALEUR(SI(NON(NB.SI(I$10:I10;Tableau1[nom]));LIGNE(INDIRECT("1:"&LIGNES(Tableau1))));1))
Code:
=SIERREUR(INDEX(Tableau1[ville];EQUIV(I11&RECHERCHE(J$7;PETITE.VALEUR(SI(Tableau1[nom]=I11;Tableau1[date emménagement]);LIGNE(INDIRECT("1:"&LIGNES(Tableau1)))));Tableau1[nom]&Tableau1[date emménagement];0));"")
A+
 

Pièces jointes

Bonjour le forum,

Pour terminer voyez le fichier joint et cette macro dans le code de la feuille :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim datref As Date, tablo, d As Object, dd As Object, i&, nom$, dat, n&
datref = [DateRef] 'cellule nommée
tablo = [Tableau1].Resize(, 3) 'tableau structurée
Set d = CreateObject("Scripting.Dictionary")
Set dd = CreateObject("Scripting.Dictionary")
For i = 1 To UBound(tablo)
    nom = tablo(i, 1)
    dat = tablo(i, 3)
    If nom <> "" Then
        If Not d.exists(nom) Then d(nom) = "": dd(nom) = 0
        If IsDate(dat) Then
            dat = CDate(dat)
            If dat <= datref Then If dat > dd(nom) Then d(nom) = tablo(i, 2): dd(nom) = dat
        End If
    End If
Next
'---restitution---
Application.EnableEvents = False 'désactive les évènements
On Error Resume Next
n = d.Count
With [Tableau2] 'tableau structuré
    .Columns(1).Resize(n) = Application.Transpose(d.keys) 'Transpose est limitée à 65536 lignes
    .Columns(2).Resize(n) = Application.Transpose(d.items)
    .Offset(n).Resize(.Rows.Count - n).Delete xlUp 'RAZ en dessous
End With
Application.EnableEvents = True 'réactive les évènements
End Sub
Elle se déclenche quand on modifie ou valide une cellule quelconque.

A+
 

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
5
Affichages
520
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…