XL 2010 Récupérer la valeur la plus proche après une recherchev EXCEL 2007

grotsblues

XLDnaute Occasionnel
Bonsoir le forum

Je souhaiterai savoir si on peut récupérer une valeur la plus proche après une recherchev.

exemple feuille 1
19583 toto 165 29360.71 19583165
exemple feuille 2
19583 toto 165 29441.28 19583165
Je souhaiterai qu'elle récupère les 29441.28.

Je joint un fichier pour la compréhension
Merci pour votre retour
 

Pièces jointes

  • VALEUR PROCHE.xlsx
    11.3 KB · Affichages: 8

Chris401

XLDnaute Accro
Bonsoir
Quand tu dis "Récupérer la valeur la plus proche", ce n'est pas suffisant.
En effet, pour le deuxième TOTO, la valeur la plus proche de 51 620.64 est 29 441.28 et tu veux "Inconnu".
Donc plus proche de x en plus ou x en moins ?
Ou simplement supérieure ?
 
Dernière édition:

job75

XLDnaute Barbatruc
Bonsoir grotsblues, Chris401,

Voyez le fichier joint, en Feuil1!F2 la formule matricielle est impressionnante :
Code:
=SIERREUR(INDEX(Tableau1[MONTANT];EQUIV(PETITE.VALEUR(SI((Tableau1[CONCAT]=E2)*(ABS(Tableau1[MONTANT]-D2)<100);ABS(Tableau1[MONTANT]-D2));1);SI(Tableau1[CONCAT]=E2;ABS(Tableau1[MONTANT]-D2);0)));"INCONNU")
En Feuil2 le tableau source est structuré (menu Insertion => Tableau).

A+
 

Pièces jointes

  • VALEUR PROCHE(1).xlsx
    13.6 KB · Affichages: 13

grotsblues

XLDnaute Occasionnel
Bonsoir le forum et merci job 75
Je viens de tester la formule sur mon fichier de travail, j'ai redimensionner le tableau1 car j ai 10040 lignes sur la feuille1 et 86040 lignes sur la feuille2. Et descendu la formule, le souci est
-le résultat obtenu est un montant qui n'existe pas dans la feuille 2
-elle répète ce résultat plusieurs fois
-et la mise à jour est un peu longues
Est ce dû au nombre de lignes
J'espère être clair

Merci pour votre aide

1635276210288.png

1635276260041.png
 

job75

XLDnaute Barbatruc
Bonsoir grotsblues,

Oui il y avait une parenthèse fermante du dernier SI mal positionnée à la fin de la formule en F2.

C'et corrigé dans ce fichier (2).

Merci d'avoir testé, on fait facilement des erreurs avec des formules aussi longues.

Bonne nuit.
 

Pièces jointes

  • VALEUR PROCHE(2).xlsx
    13.7 KB · Affichages: 8

job75

XLDnaute Barbatruc
Bonjour grotsblues, le forum,

Le VBA ne sera pas plus rapide que la formule matricielle du post #12.

Voyez le fichier .xlsm joint et cette fonction VBA :
VB:
Function PlusProche(montant#, concat$, Pmontant As Range, Pconcat As Range)
Dim Tmontant, Tconcat, mini#, i&, dif#
Tmontant = Pmontant.Resize(, 2) 'matrice, plus rapide, au moins 2 éléments
Tconcat = Pconcat.Resize(, 2) 'matrice, plus rapide, au moins 2 éléments
mini = 1E+308
For i = 1 To UBound(Tmontant)
    If Tconcat(i, 1) = concat Then
        dif = Abs(Tmontant(i, 1) - montant)
        If dif < 100 Then If dif < mini Then mini = dif: PlusProche = Tmontant(i, 1)
     End If
Next
If mini = 1E+308 Then PlusProche = "Inconnu"
End Function
Le recalcul des 5 formules se fait chez moi en 1,8 millième de seconde ici comme au post #12.

Vérifiez sur votre fichier de 89000 lignes.

A+
 

Pièces jointes

  • VBA VALEUR PROCHE(1).xlsm
    21 KB · Affichages: 1
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 109
Messages
2 085 381
Membres
102 876
dernier inscrit
BouteilleMan