List upcoming Birthdays (Sheet 1) from Client Database (Sheet 2)

Blomberg

New Member
Joined
Feb 25, 2015
Messages
3
Hello dear Excel Guru's!

I want to create a listing of upcoming birthdays (within 30 days or the 5 soonest) on my sheet "Client Overview" (Cells: S24 to S30) - from my sheet "Client List", where the date of birth is listed in Cells G2 to G11 (and growing).

Ideally, I would like to list on my "Client Overview"-sheet, in Cells S24 to S30, the Firstname + Lastname and Date of Birth, which resides on sheet "Client List" in cells B2:B11, F2:F11 and G2:G11 respectively.

Either with formulas or VBA.

So far, I have conditional formatting set up on the actual table on "Client List".
However the actual listing I have not managed to get working. I am suspecting an array formula, or some INDEX & MATCH-combination?

Does anybody have an idea of how this would be possible?

Thank you kindly in advance!
 

Excel Facts

Why does 9 mean SUM in SUBTOTAL?
It is because Sum is the 9th alphabetically in Average, Count, CountA, Max, Min, Product, StDev.S, StDev.P, Sum, VAR.S, VAR.P.
Update:

I managed to extract the name from the table using an INDEX function and list the matches with an array formula.
However - I don't know how to work around the blank cells that are being filled in when there is no match.

Right now I get a result looking like so:

Upcoming Birthdays (within 100 days)
FirstName1
""
""
FirstName2
""
FirstName3
""
""
""
""
FirstName4


I used the following formula:

Code:
=IF((DATEDIF(TODAY();DATE(YEAR(_tblClientList[Date of Birth])+DATEDIF(_tblClientList[Date of Birth];TODAY();"y")+1;MONTH(_tblClientList[Date of Birth]);DAY(_tblClientList[Date of Birth]));"d"))<100;INDEX(_tblClientList;(ROW(_tblClientList[Date of Birth])-1);2);"")

The first part:
Code:
DATEDIF(TODAY();DATE(YEAR(_tblClientList[Date of Birth])+DATEDIF(_tblClientList[Date of Birth];TODAY();"y")+1;MONTH(_tblClientList[Date of Birth]);DAY(_tblClientList[Date of Birth]));"d"))<100
- is simply calculating the remaining days until a persons birthday, and checking within the IF if the number is days is less than 100.

The second part:
Code:
INDEX(ROW(_tblClientList[Date of Birth])-1);2)
- returns the value of the first name (same row, but a few columns to the left), using the INDEX-function, grabbing the first name located in column 2.

_tblClientList is the name if the table.
[Date of Birth] is the column name within the table.
I used the above as an array formula.

The issue persists that it lists each person from the table in the cell range, simply filling in a blank ("") where there is no match.

Any ideas?
 
Last edited:
Upvote 0

Forum statistics

Threads
1,215,020
Messages
6,122,709
Members
449,093
Latest member
Mnur

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top