Trouver une date antérieure sur une liste de la plus proche à une date spécifiée
Je voudrais avoir le code VBA ou formule qui va prendre une variable date de valeur et la trouver sur une plage de liste de dates. Si il ne peut pas trouver la date, je veux qu'elle pour trouver le plus proche de la précédente date valeur. VLOOKUP
fonctionne très bien pour trouver une correspondance exacte, mais j'ai du mal avec le code pour trouver le plus proche de la date précédente.
Ma seule pensée est de créer une boucle où si elle ne correspond pas, il continue à soustraire un jour à compter de la date variable jusqu'à ce qu'il peut localiser un match sur la liste. Qui ne semble pas être la meilleure ou la plus efficace et j'espère que quelqu'un peut recommander une solution plus simple.
Exemple:
Variable Date = 01/26/2014
Date List
02/04/2014
01/27/2014
01/24/2014
01/13/2014
12/29/2013
Desired Result = 01/24/2014
Toute aide serait appréciée.
match_type
paramètre égal à 1: If match_type is 1, MATCH finds the largest value that is less than or equal to lookup_value. Lookup_array must be placed in ascending order
Si il est ordonné à ses plus facile à utiliser de recherche
OriginalL'auteur John W | 2014-02-13
Vous devez vous connecter pour publier un commentaire.
Supposons que votre liste de dates a été dans les cellules
A1:A5
et votre date de vérification a été dans la celluleC1
, vous pouvez accéder à cette fonction à ENTRÉE COMME UNE FORMULE de MATRICE:Rememeber, de le saisir comme une formule de tableau, appuyez sur
Ctrl
+Shift
+Enter
lors de la saisie de la formule.Espère que cela fait l'affaire!!
En VBA, je venais de faire un rapide
for
boucle et continuer à écrire sur le plus grand<=
variable jusqu'à ce que vous exécutez à travers l'ensemble de la matrice... je pense que ce serait le moyen le plus efficace... Si vous voulez, poster une autre question et je voudrais vous donner le code si vous ne pouvez pas sortir de ma description....OriginalL'auteur John Bustos
Je suis allé à propos de cela un peu différemment, pas de tableaux nécessaires
Trouver combien de nombres sont plus gros que celui que vous cherchez avec
CountIf()
Ensuite, j'ai utilisé
=Large
cela permettra de trouver le n-ième de dates dans une liste que nous avons la nième nous recherchons pour lecountIF()
OriginalL'auteur Excel Ireland
Recherchev pouvez le faire en fait, si vous définissez l'argument final de
true
, qui cherche une correspondance approximative. Vous avez besoin de vos dates triées de la plus ancienne à la plus récente et il sera de retour la première date qui n'est pas après votre terme de recherche.OriginalL'auteur Anthony Bird