Excel vraagje

17-04-2017 12:15 7 berichten
Ik ben best handig met excel, maar hier kom ik echt niet uit.



Ik heb een lijst gemaakt met verjaardagen, met een aantal kolommen.



Nu wil ik ook een tekst weergeven met de naam van de eerstvolgende jarige, maar excel leest in plaats van de eerstvolgende jarige uit de tabel, de persoon die het dichtst bij de huidige datum jarig is (dus ook wel eens iemand die net jarig is geweest).



Ik heb onderstaande formule om de naam die getoond moet worden te achterhalen, kolom A is de lijst met namen, kolom C is de kolom met wanneer die verjaardag dit jaar valt en eventueel is er nog een kolom met wanneer de eerstvolgende verjaardag is (D). Met kolom D ipv C is het resultaat een foutmelding, en het criteriumtype naar -1 veranderen werkt ook niet.



=INDEX(A2:A6;VERGELIJKEN(VANDAAG()+1;C2:C6;1))



Weet iemand raad?
Kan je een vergelijking invoegen die de huidige datum vergelijkt met die datum, als een soort som, en als die dan negatief is, dat hij naar de volgende kijkt?



Ik ben niet zo ervaren met excel als jij, maar wel enigszins met SPSS en daar zou zo'n constructie denk ik wel mogelijk zijn.
Het criteriumtype zou het probleem al moeten aanpakken (als de waarden van kolom C of D in oplopende volgorde zijn geplaatst zou -1 ervoor zorgen dat de eerste waarde die groter is dan vandaag wordt getoond). Maar als ik dat probeer komt er alsnog een foutmelding.



Ik kan kijken of jouw manier ook mogelijk is, maar het wordt sowieso een veel langere formule. Bedankt voor het meedenken iig!
Alle reacties Link kopieren
Schrijf de data op de Amerikaanse manier (mm/dd/yyyy) en dan sorteren van klein naar groot
Silence is golden. Duct tape is silver.
Alle reacties Link kopieren
Als extra eis stellen dat de datum na de huidige datum ligt ?
Niet geschoten is altijd mis
Een extra kolom maken, kolom E bijvoorbeeld, met =als.fout(datumverschil(Vandaag();B1;"d");"jarig geweest"). Die geeft dan het aantal dagen tot iemand jarig is. Kolom B is dan de kolom met de data erin. Die naar beneden slepen tot iedereen de formule heeft.



vervolgens in de kolom waar je de naam wilt weergeven, =INDEX(A1:A6;VERGELIJKEN(MIN(E1:E6);E1:E6;0))
Alle reacties Link kopieren
quote:Nyx- schreef op 17 april 2017 @ 12:29:

Het criteriumtype zou het probleem al moeten aanpakken (als de waarden van kolom C of D in oplopende volgorde zijn geplaatst zou -1 ervoor zorgen dat de eerste waarde die groter is dan vandaag wordt getoond). Maar als ik dat probeer komt er alsnog een foutmelding.





Bij criteriumtype -1 moeten de waarden in aflopende volgorde geplaatst worden. Op die manier kun je het doen.



Als je toch de data in oplopende volgorde wilt laten staan, dan werkt dit "ongeveer" :

=INDEX(A2:A6;VERGELIJKEN(VANDAAG()-1;C2:C6;1)+1)



(Je zoekt de meest recente verjaardag tot gisteren (VANDAAG() -1), en pakt dan de volgende verjaardag (je telt 1 op bij de uitkomst van 'VERGELIJKEN')



"Ongeveer", omdat het niet werkt de eerste verjaardag niet al geweest is; en het werkt ook niet na de laatste verjaardag. Dat kun je ook wel weer oplossen door extra waarden boven- en onderaan de lijst verjaardagen toe te voegen, maar heel elegant is het niet.

Dit is een oud topic. Het topic is daarom gesloten.
Maak een nieuw topic aan om verder praten over dit onderwerp.

Terug naar boven