calendar from formula

mattrx731

Board Regular
Joined
Feb 10, 2008
Messages
181
I'm using this formula from

Nth Day Of Week For A Month And Year

This formula will return will return the date of Nth day-of-week for a given month and year. For example, it will return 26-March-98 for the 4th Thursday of March, 1998. Days-of-week range from 1 to 7, with Sunday = 1 and Saturday = 7.

=DATE(Yr,Mon,1+((Nth-(DoW>=WEEKDAY(DATE(Yr,Mon,1))))*7)+
(DoW-WEEKDAY(DATE(Yr,Mon,1))))

Where Yr, Mon, Nth, and DoW are cell references or values indicating Year, Month, Nth, and Day-Of-Week.

I would like to be able to change the year and month in A2 and B2 and have the calendar change.
I will be inserting rows between the weeks to return appts, if I can get this part working.
I could make a new tab for each month, but I thought I would give this a try.



As you can see B6, C6 and D6 should be blank.
The 2nd week (B7) should start with 10/5/08.
I've tried a few different If formulas in the second week, but can't seem to get it too work.

Any ideas would be great
Thanks
Matt
 

Excel Facts

Select all contiguous cells
Pressing Ctrl+* (asterisk) will select the "current region" - all contiguous cells in all directions.
<HTML><HEAD><Script Langage JavaScript><!---
function ViewSource() {
var HtmlSource;
HtmlSource = document.all.ForSubmit.innerHTML;
HtmlSource = RetDeleted(HtmlSource);
document.write('<HTML><BODY BGCOLOR=#E0F4EA><CENTER><FORM><TEXTAREA ROWS=30 COLS=90%>');
document.write(HtmlSource);
document.write('</TEXTAREA></FORM></CENTER></BODY></HTML>');
}
function CopyToClipBoard() {
var HtmlSource;
HtmlSource = document.all.ForSubmit.innerHTML;
HtmlSource=RetDeleted(HtmlSource);
window.clipboardData.setData("Text",HtmlSource);
alert('Html source of above image\n\nhas been copied to your clip board\n\nJust paste it into Message Body\n\nIf you cannnot paste source from clip board,\n\nclick [View Source] button and paste manually.');
}
function RetDeleted(targetstring) {
if (targetstring.indexOf(unescape('%0D%0A')) > -1) rcode = unescape('%0D%0A')
else if (targetstring.indexOf(unescape('%0A')) > -1) rcode = unescape('%0A')
else rcode = unescape('%0D');
i = 0;
p = '';
while (targetstring.indexOf(rcode,i) != -1) {
m = targetstring.indexOf(rcode,i);
p += targetstring.substring(i,m);
i = m + rcode.length;
}
p += targetstring.substring(i,targetstring.length);
return p;
}</Script></HEAD><BODY BGCOLOR=#E0F4EA><CENTER><FONT COLOR=#339966 SIZE=5>[HtmlMaker 2.41]</FONT><BR><BR></CENTER><HR><BR><SPAN id='ForSubmit'></SPAN><BR><CENTER><HR><FORM NAME='form1'><INPUT TYPE='Button' value='Please click this button to send the source to clipbord' onClick='CopyToClipBoard();'><INPUT TYPE='Button' value='View Source' onClick='ViewSource();'></FORM><FONT COLOR=#339966 SIZE=2> This free code was written by Colo and Ivan F Moala:[HtmlMaker 2.41] - 15th May 2003</FONT><BR><FONT COLOR=#339966 SIZE=2>Code mods by Ivan F Moala - 15th May 2003</FONT></HR></BODY></HTML>
 
Upvote 0
I have this version, which seems to work for all months and all years. Just change the month and year as required. The day should be 1 always.

Please note you need six rows, as sometimes the month could start on a Saturday, and carry over onto an extra row.

On my version, I played with using the weeknumber, which is why you see that they are not the same 1 to 5 in column A as you have. Ultimately, I did not use either, so those are now irrelevant.

I hope this helps.
 
Upvote 0
Riaz,

I couldn't see anything from your last post, but I did get the email (thank you), I am posting that below using Excel Jeanie.

I don't know if this a formatting problem or difference between American & International dates, but October started on a wednesday this year. How do I adjust these formulas for that?
January 2008 is correct, but starting at Feb, 2008 it is at least one day off...

Thanks


 
Upvote 0
For a monthly calendar perhaps look at this version from John Walkenbach. [If you put the formula =TODAY() in the month cell - B9 in the example sheet - then it always automatically shows the current month]

=DATE(Yr,Mon,1+((Nth-(DoW>=WEEKDAY(DATE(Yr,Mon,1))))*7)+(DoW-WEEKDAY(DATE(Yr,Mon,1))))

You can simplify Chip Pearson's version as follows.......

=DATE(Yr,Mon,1+7*Nth)-WEEKDAY(DATE(Yr,Mon,1-DoW))
 
Last edited:
Upvote 0
Matt, that is funny, because even with the dates formatted as US, I still get the correct answers.
 
Upvote 0
Barry,
Thanks for that link, that looks like exactly what I'm looking for.

Riaz,
Not sure why you'rs isn't working on my end? I have 2007...

Theozz
Want make Calendar by simple formula ?
yes
 
Upvote 0
Hi ! Here Suggest to you

<table style="border-collapse: separate;" colspan="2" border="7" cellspacing="0"><tbody bgcolor="#ffffff"><tr height="36"><td colspan="2"> Nice Question Thanks.
DataSheet= Sheet1</td></tr><tr><td align="right" width="30"><table rowspan="11" cellspacing="1" width="30"><tbody bgcolor="#ffffff"><tr height="18"><td></td></tr><tr height="18"><td align="right" bgcolor="#dcdcdc">2 </td></tr><tr height="18"><td align="right" bgcolor="#dcdcdc">3 </td></tr><tr height="18"><td align="right" bgcolor="#dcdcdc">4 </td></tr><tr height="18"><td align="right" bgcolor="#dcdcdc">5 </td></tr><tr height="18"><td align="right" bgcolor="#dcdcdc">6 </td></tr><tr height="18"><td align="right" bgcolor="#dcdcdc">7 </td></tr><tr height="18"><td align="right" bgcolor="#dcdcdc">8 </td></tr><tr height="18"><td align="right" bgcolor="#dcdcdc">9 </td></tr><tr height="18"><td align="right" bgcolor="#dcdcdc">10 </td></tr><tr height="18"><td align="right" bgcolor="#dcdcdc">11 </td></tr></tbody></table></td><td width="660"><table colspan="7" rowspan="5" bgcolor="#939393" border="0" cellspacing="1" width="660"><tbody bgcolor="#ffffff"><tr height="18"><td style="font-family: verdana;" align="center" bgcolor="#dcdcdc" width="88">A</td><td style="font-family: verdana;" align="center" bgcolor="#dcdcdc" width="88">B</td><td style="font-family: verdana;" align="center" bgcolor="#dcdcdc" width="88">C</td><td style="font-family: verdana;" align="center" bgcolor="#dcdcdc" width="88">D</td><td style="font-family: verdana;" align="center" bgcolor="#dcdcdc" width="88">E</td><td style="font-family: verdana;" align="center" bgcolor="#dcdcdc" width="88">F</td><td style="font-family: verdana;" align="center" bgcolor="#dcdcdc" width="127">G</td></tr><tr height="18"><td colspan="1" align="left" bgcolor="#ffffff" width="88"> </td><td colspan="1" align="left" bgcolor="#ffffff" width="88"> </td><td colspan="1" align="left" bgcolor="#ffffff" width="88"> </td><td colspan="1" align="left" bgcolor="#ffffff" width="88"> </td><td colspan="3" align="right" bgcolor="#ccffcc" width="304">G3 His Format= yyyy-mm-dd</td></tr><tr height="18"><td colspan="1" align="left" bgcolor="#ffffff" width="88"> </td><td colspan="1" align="left" bgcolor="#ffffff" width="88"> </td><td colspan="1" align="left" bgcolor="#ffffff" width="88"> </td><td colspan="1" align="left" bgcolor="#ffffff" width="88"> </td><td colspan="1" align="left" bgcolor="#ffffff" width="88"> </td><td colspan="1" align="left" bgcolor="#ffffff" width="88">FirstDate</td><td colspan="1" align="right" bgcolor="#ffffff" width="127">2008-10-01</td></tr><tr height="18"><td colspan="1" align="center" bgcolor="#ffff00" width="88">Sun</td><td colspan="1" align="center" bgcolor="#ffff00" width="88">Mon</td><td colspan="1" align="center" bgcolor="#ffff00" width="88">Tue</td><td colspan="1" align="center" bgcolor="#ffff00" width="88">Wed</td><td colspan="1" align="center" bgcolor="#ffff00" width="88">Thu</td><td colspan="1" align="center" bgcolor="#ffff00" width="88">Fri</td><td colspan="1" align="center" bgcolor="#ffff00" width="127">Sat</td></tr><tr height="18"><td colspan="1" align="left" bgcolor="#ccffcc" width="88">-</td><td colspan="1" align="left" bgcolor="#ccffcc" width="88">-</td><td colspan="1" align="left" bgcolor="#ccffcc" width="88">-</td><td colspan="1" align="right" bgcolor="#ccffcc" width="88">01</td><td colspan="1" align="right" bgcolor="#ccffcc" width="88">02</td><td colspan="1" align="right" bgcolor="#ccffcc" width="88">03</td><td colspan="1" align="right" bgcolor="#ccffcc" width="127">04</td></tr><tr height="18"><td colspan="1" align="right" bgcolor="#ccffcc" width="88">05</td><td colspan="1" align="right" bgcolor="#ccffcc" width="88">06</td><td colspan="1" align="right" bgcolor="#ccffcc" width="88">07</td><td colspan="1" align="right" bgcolor="#ccffcc" width="88">08</td><td colspan="1" align="right" bgcolor="#ccffcc" width="88">09</td><td colspan="1" align="right" bgcolor="#ccffcc" width="88">10</td><td colspan="1" align="right" bgcolor="#ccffcc" width="127">11</td></tr></tbody></table><table colspan="7" rowspan="5" bgcolor="#939393" border="0" cellspacing="1" width="660"><tbody bgcolor="#ffffff"><tr height="18"><td colspan="1" align="right" bgcolor="#ccffcc" width="88">12</td><td colspan="1" align="right" bgcolor="#ccffcc" width="88">13</td><td colspan="1" align="right" bgcolor="#ccffcc" width="88">14</td><td colspan="1" align="right" bgcolor="#ccffcc" width="88">15</td><td colspan="1" align="right" bgcolor="#ccffcc" width="88">16</td><td colspan="1" align="right" bgcolor="#ccffcc" width="88">17</td><td colspan="1" align="right" bgcolor="#ccffcc" width="127">18</td></tr><tr height="18"><td colspan="1" align="right" bgcolor="#ccffcc" width="88">19</td><td colspan="1" align="right" bgcolor="#ccffcc" width="88">20</td><td colspan="1" align="right" bgcolor="#ccffcc" width="88">21</td><td colspan="1" align="right" bgcolor="#ccffcc" width="88">22</td><td colspan="1" align="right" bgcolor="#ccffcc" width="88">23</td><td colspan="1" align="right" bgcolor="#ccffcc" width="88">24</td><td colspan="1" align="right" bgcolor="#ccffcc" width="127">25</td></tr><tr height="18"><td colspan="1" align="right" bgcolor="#ccffcc" width="88">26</td><td colspan="1" align="right" bgcolor="#ccffcc" width="88">27</td><td colspan="1" align="right" bgcolor="#ccffcc" width="88">28</td><td colspan="1" align="right" bgcolor="#ccffcc" width="88">29</td><td colspan="1" align="right" bgcolor="#ccffcc" width="88">30</td><td colspan="1" align="right" bgcolor="#ccffcc" width="88">31</td><td colspan="1" align="left" bgcolor="#ccffcc" width="127">-</td></tr><tr height="18"><td colspan="1" align="left" bgcolor="#ccffcc" width="88">-</td><td colspan="1" align="left" bgcolor="#ccffcc" width="88">-</td><td colspan="1" align="left" bgcolor="#ccffcc" width="88">-</td><td colspan="1" align="left" bgcolor="#ccffcc" width="88">-</td><td colspan="1" align="left" bgcolor="#ccffcc" width="88">-</td><td colspan="1" align="left" bgcolor="#ccffcc" width="88">-</td><td colspan="1" align="left" bgcolor="#ccffcc" width="127">-</td></tr><tr height="18"><td colspan="1" align="left" bgcolor="#ffffff" width="88"> </td><td colspan="1" align="left" bgcolor="#ffffff" width="88"> </td><td colspan="1" align="left" bgcolor="#ffffff" width="88"> </td><td colspan="1" align="left" bgcolor="#ffffff" width="88"> </td><td colspan="3" align="right" bgcolor="#ccffcc" width="304">G10 His Format= dd</td></tr></tbody></table></td></tr></tbody></table>
<table style="border-collapse: separate;" border="6" cellspacing="0"><colspan=5 width="800" rowspan="3" height="54"></colspan=5><tbody><tr height="24"><td colspan="5" align="center">Used Formula ...(With Running MicrosoftExcel Ver 2007 or other's)</td></tr><tr height="24"><td align="center" bgcolor="#d3d3d3" width="4%">No</td><td align="center" bgcolor="#d3d3d3" width="9%">Addr'</td><td align="center" bgcolor="#d3d3d3" width="65%"> If use below Formula, You'll Get Result as Right</td><td align="center" bgcolor="#d3d3d3" width="15%">Result</td><td align="center" bgcolor="#d3d3d3">Formula's</td></tr><tr height="20"><td align="center">1</td><td align="center" bgcolor="#ccffcc">A5</td><td bgcolor="#ccffcc">=IF(MONTH($G$3+(ROW()-5)*7+COLUMN()-WEEKDAY($G$3))=MONTH($G$3),$G$3+(ROW()-5)*7+COLUMN()-WEEKDAY($G$3),"-")</td><td align="left">-</td><td align="right"><form name="PrNames1"><input onclick='window.clipboardData.setData("Text","=IF(MONTH($G$3+(ROW()-5)*7+COLUMN()-WEEKDAY($G$3))=MONTH($G$3),$G$3+(ROW()-5)*7+COLUMN()-WEEKDAY($G$3),\"-\")");' value="Do Copy" name="MyNames1" type="button"></form></td></tr><tr height="20"><td align="center">2</td><td align="center" bgcolor=""> </td><td>A5 His Formula Used This Cell -> A5:G10</td><td align="left"> </td><td> </td></tr><tr height="24"><td colspan="5">
How about this suggest?
</td></tr></tbody></table>
 
Last edited:
Upvote 0
<table style="border-collapse: separate;" colspan="2" border="7" cellspacing="0"><tbody bgcolor="#ffffff"><tr height="36"><td colspan="2"> Or</td></tr><tr><td align="right" width="30"><table rowspan="9" cellspacing="1" width="30"><tbody bgcolor="#ffffff"><tr height="18"><td>
</td></tr><tr height="18"><td align="right" bgcolor="#dcdcdc">13 </td></tr><tr height="18"><td align="right" bgcolor="#dcdcdc">14 </td></tr><tr height="18"><td align="right" bgcolor="#dcdcdc">15 </td></tr><tr height="18"><td align="right" bgcolor="#dcdcdc">16 </td></tr><tr height="18"><td align="right" bgcolor="#dcdcdc">17 </td></tr><tr height="18"><td align="right" bgcolor="#dcdcdc">18 </td></tr><tr height="18"><td align="right" bgcolor="#dcdcdc">19 </td></tr><tr height="18"><td align="right" bgcolor="#dcdcdc">20 </td></tr></tbody></table></td><td width="660"><table colspan="7" rowspan="4" bgcolor="#939393" border="0" cellspacing="1" width="660"><tbody bgcolor="#ffffff"><tr height="18"><td style="font-family: verdana;" align="center" bgcolor="#dcdcdc" width="88">A</td><td style="font-family: verdana;" align="center" bgcolor="#dcdcdc" width="88">B</td><td style="font-family: verdana;" align="center" bgcolor="#dcdcdc" width="88">C</td><td style="font-family: verdana;" align="center" bgcolor="#dcdcdc" width="88">D</td><td style="font-family: verdana;" align="center" bgcolor="#dcdcdc" width="88">E</td><td style="font-family: verdana;" align="center" bgcolor="#dcdcdc" width="88">F</td><td style="font-family: verdana;" align="center" bgcolor="#dcdcdc" width="127">G</td></tr><tr height="18"><td colspan="1" align="left" bgcolor="#ffffff" width="88"> </td><td colspan="1" align="left" bgcolor="#ffffff" width="88"> </td><td colspan="1" align="left" bgcolor="#ffffff" width="88"> </td><td colspan="1" align="left" bgcolor="#ffffff" width="88"> </td><td colspan="1" align="left" bgcolor="#ffffff" width="88"> </td><td colspan="1" align="left" bgcolor="#ffffff" width="88">FirstDate</td><td colspan="1" align="right" bgcolor="#ffffff" width="127">2008-11-01</td></tr><tr height="18"><td colspan="1" align="center" bgcolor="#ffff00" width="88">Sun</td><td colspan="1" align="center" bgcolor="#ffff00" width="88">Mon</td><td colspan="1" align="center" bgcolor="#ffff00" width="88">Tue</td><td colspan="1" align="center" bgcolor="#ffff00" width="88">Wed</td><td colspan="1" align="center" bgcolor="#ffff00" width="88">Thu</td><td colspan="1" align="center" bgcolor="#ffff00" width="88">Fri</td><td colspan="1" align="center" bgcolor="#ffff00" width="127">Sat</td></tr><tr height="18"><td colspan="1" align="left" bgcolor="#ccffcc" width="88">(26)</td><td colspan="1" align="left" bgcolor="#ccffcc" width="88">(27)</td><td colspan="1" align="left" bgcolor="#ccffcc" width="88">(28)</td><td colspan="1" align="left" bgcolor="#ccffcc" width="88">(29)</td><td colspan="1" align="left" bgcolor="#ccffcc" width="88">(30)</td><td colspan="1" align="left" bgcolor="#ccffcc" width="88">(31)</td><td colspan="1" align="right" bgcolor="#ccffcc" width="127">01</td></tr><tr height="18"><td colspan="1" align="right" bgcolor="#ccffcc" width="88">02</td><td colspan="1" align="right" bgcolor="#ccffcc" width="88">03</td><td colspan="1" align="right" bgcolor="#ccffcc" width="88">04</td><td colspan="1" align="right" bgcolor="#ccffcc" width="88">05</td><td colspan="1" align="right" bgcolor="#ccffcc" width="88">06</td><td colspan="1" align="right" bgcolor="#ccffcc" width="88">07</td><td colspan="1" align="right" bgcolor="#ccffcc" width="127">08</td></tr></tbody></table><table colspan="7" rowspan="4" bgcolor="#939393" border="0" cellspacing="1" width="660"><tbody bgcolor="#ffffff"><tr height="18"><td colspan="1" align="right" bgcolor="#ccffcc" width="88">09</td><td colspan="1" align="right" bgcolor="#ccffcc" width="88">10</td><td colspan="1" align="right" bgcolor="#ccffcc" width="88">11</td><td colspan="1" align="right" bgcolor="#ccffcc" width="88">12</td><td colspan="1" align="right" bgcolor="#ccffcc" width="88">13</td><td colspan="1" align="right" bgcolor="#ccffcc" width="88">14</td><td colspan="1" align="right" bgcolor="#ccffcc" width="127">15</td></tr><tr height="18"><td colspan="1" align="right" bgcolor="#ccffcc" width="88">16</td><td colspan="1" align="right" bgcolor="#ccffcc" width="88">17</td><td colspan="1" align="right" bgcolor="#ccffcc" width="88">18</td><td colspan="1" align="right" bgcolor="#ccffcc" width="88">19</td><td colspan="1" align="right" bgcolor="#ccffcc" width="88">20</td><td colspan="1" align="right" bgcolor="#ccffcc" width="88">21</td><td colspan="1" align="right" bgcolor="#ccffcc" width="127">22</td></tr><tr height="18"><td colspan="1" align="right" bgcolor="#ccffcc" width="88">23</td><td colspan="1" align="right" bgcolor="#ccffcc" width="88">24</td><td colspan="1" align="right" bgcolor="#ccffcc" width="88">25</td><td colspan="1" align="right" bgcolor="#ccffcc" width="88">26</td><td colspan="1" align="right" bgcolor="#ccffcc" width="88">27</td><td colspan="1" align="right" bgcolor="#ccffcc" width="88">28</td><td colspan="1" align="right" bgcolor="#ccffcc" width="127">29</td></tr><tr height="18"><td colspan="1" align="right" bgcolor="#ccffcc" width="88">30</td><td colspan="1" align="left" bgcolor="#ccffcc" width="88">(01)</td><td colspan="1" align="left" bgcolor="#ccffcc" width="88">(02)</td><td colspan="1" align="left" bgcolor="#ccffcc" width="88">(03)</td><td colspan="1" align="left" bgcolor="#ccffcc" width="88">(04)</td><td colspan="1" align="left" bgcolor="#ccffcc" width="88">(05)</td><td colspan="1" align="left" bgcolor="#ccffcc" width="127">(06)</td></tr></tbody></table></td></tr></tbody></table>
<colspan=5 width="800" rowspan="3" height="54"></colspan=5><table style="border-collapse: separate;" border="6" cellspacing="0"><tbody><tr height="24"><td colspan="5" align="center">Used Formula ...(With Running MicrosoftExcel Ver 2007 or other's)</td></tr><tr height="24"><td align="center" bgcolor="#d3d3d3" width="4%">No</td><td align="center" bgcolor="#d3d3d3" width="9%">Addr'</td><td align="center" bgcolor="#d3d3d3" width="65%"> If use below Formula, You'll Get Result as Right</td><td align="center" bgcolor="#d3d3d3" width="15%">Result</td><td align="center" bgcolor="#d3d3d3">Formula's</td></tr><tr height="20"><td align="center">1</td><td align="center" bgcolor="#ccffcc">A15</td><td bgcolor="#ccffcc">=IF(MONTH($G$13+(ROW()-15)*7+COLUMN()-WEEKDAY($G$13))=MONTH($G$13),$G$13+(ROW()-15)*7+COLUMN()-WEEKDAY($G$13),TEXT($G$13+(ROW()-15)*7+COLUMN()-WEEKDAY($G$13),"(dd)"))</td><td align="left">(26)</td><td align="right"><form name="PrNames1"><input onclick='window.clipboardData.setData("Text","=IF(MONTH($G$13+(ROW()-15)*7+COLUMN()-WEEKDAY($G$13))=MONTH($G$13),$G$13+(ROW()-15)*7+COLUMN()-WEEKDAY($G$13),TEXT($G$13+(ROW()-15)*7+COLUMN()-WEEKDAY($G$13),\"(dd)\"))");' value="Do Copy" name="MyNames1" type="button"></form></td></tr><tr height="20"><td align="center">2</td><td align="center" bgcolor=""> </td><td>A15 His Formula Used This Cell -> A15:G20</td><td align="left"> </td><td> </td></tr><tr height="24"><td colspan="5">
</td></tr></tbody></table>
 
Upvote 0

Forum statistics

Threads
1,221,586
Messages
6,160,646
Members
451,661
Latest member
hamdan17

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