The tutorial explains the nuts and bolts of Excel MONTH and EOMONTH functions. You will find an array of formula examples demonstrating how to extract month from date in Excel, get the first and last day of the month, convert month name to number and more.
In the previous article, we explored a variety of formulas to calculate weekdays. Today, we are going to operate on a bigger time unit and learn the functions that Microsoft Excel provides for months.
In this tutorial, you will learn:
Excel MONTH function - syntax and uses
Microsoft Excel provides a special MONTH function to extract a month from date, which returns the month number ranging from 1 (January) to 12 (December).
The MONTH function can be used in all versions of Excel 2016 - 2000 and its syntax is as simple as it can possibly be:
Where serial_number
is any valid date of the month you are trying to find.
For the correct work of Excel MONTH formulas, a date should be entered by using the DATE(year, month, day) function. For example, the formula =MONTH(DATE(2015,3,1))
returns 3 since DATE represents the 1st day of March, 2015.
Formulas like =MONTH("1-Mar-2015")
also work fine, though problems may occur in more complex scenarios if dates are entered as text.
In practice, instead of specifying a date within the MONTH function, it's more convenient to refer to a cell with a date or supply a date returned by some other function. For example:
=MONTH(A1)
- returns the month of a date in cell A1.
=MONTH(TODAY())
- returns the number of the current month.
At first sight, the Excel MONTH function may look plain. But look through the below examples and you will be amazed to know how many useful things it can actually do.
How to get month number from date in Excel
There are several ways to get month from date in Excel. Which one to choose depends on exactly what result you are trying to achieve.
MONTH function in Excel - get month number from date
This is the most obvious and easiest way to convert date to month in Excel. For example:
=MONTH(A2)
- returns the month of a date in cell A2.=MONTH(DATE(2015,4,15))
- returns 4 corresponding to April.=MONTH("15-Apr-2015")
- obviously, returns number 4 too.
TEXT function in Excel - extract month as a text string
An alternative way to get a month number from an Excel date is using the TEXT function:
=TEXT(A2, "m")
- returns a month number without a leading zero, as 1 - 12.=TEXT(A2,"mm")
- returns a month number with a leading zero, as 01 - 12.
Please be very careful when using TEXT formulas, because they always return month numbers as text strings. So, if you plan to perform some further calculations or use the returned numbers in other formulas, you'd better stick with the Excel MONTH function.
The following screenshot demonstrates the results returned by all of the above formulas. Please notice the right alignment of numbers returned by the MONTH function (cells C2 and C3) as opposed to left-aligned text values returned by the TEXT functions (cells C4 and C5).
How to extract month name from date in Excel
In case you want to get a month name rather than a number, you use the TEXT function again, but with a different date code:
=TEXT(A2, "mmm")
- returns an abbreviated month name, as Jan - Dec.=TEXT(A2,"mmmm")
- returns a full month name, as January - December.
If you don't actually want to convert date to month in your Excel worksheet, you are just wish to display a month name only instead of the full date, then you don't want any formulas.
Select a cell(s) with dates, press Ctrl+1 to opent the Format Cells dialog. On the Number tab, select Custom and type either "mmm" or "mmmm" in the Type box to display abbreviated or full month names, respectively. In this case, your entries will remain fully functional Excel dates that you can use in calculations and other formulas. For more details about changing the date format, please see Creating a custom date format in Excel.
How to convert month number to month name in Excel
Suppose, you have a list of numbers (1 through 12) in your Excel worksheet that you want to convert to month names. To do this, you can use any of the following formulas:
To return an abbreviated month name (Jan - Dec):
=TEXT(A2*28, "mmm")
=TEXT(DATE(2015, A2, 1), "mmm")
To return a full month name (January - December):
=TEXT(A2*28, "mmmm")
=TEXT(DATE(2015, A2, 1), "mmmm")
In all of the above formulas, A2 is a cell with a month number. And the only real difference between the formulas is the month codes:
- "mmm" - 3-letter abbreviation of the month, such as Jan - Dec
- "mmmm" - month spelled out completely
- "mmmmm" - the first letter of the month name
How these formulas work
When used together with month format codes such as "mmm" and "mmmm", Excel considers the number 1 as Day 1 in January 1900. Multiplying 1, 2, 3 etc. by 28, you are getting Days 28, 56, 84, etc. of the year 1900, which are in January, February, March, etc. The format code "mmm" or "mmmm" displays only the month name.
How to convert month name to number in Excel
There are two Excel functions that can help you convert month names to numbers - DATEVALUE and MONTH. Excel's DATEVALUE function converts a date stored as text to a serial number that Microsoft Excel recognizes as a date. And then, the MONTH function extracts a month number from that date.
The complete formula is as follows:
=MONTH(DATEVALUE(A2 & "1"))
Where A2 in a cell containing the month name you want to turn into a number (&"1" is added for the DATEVALUE function to understand it's a date).
How to get the last day of month in Excel (EOMONTH function)
The EOMONTH function in Excel is used to return the last day of the month based on the specified start date. It has the following arguments, both of which are required:
- Start_date - the starting date or a reference to a cell with the start date.
- Months - the number of months before or after the start date. Use a positive value for future dates and negative value for past dates.
Here are a few EOMONTH formula examples:
=EOMONTH(A2, 1)
- returns the last day of the month, one month after the date in cell A2.
=EOMONTH(A2, -1)
- returns the last day of the month, one month before the date in cell A2.
Instead of a cell reference, you can hardcode a date in your EOMONTH formula. For example, both of the below formulas return the last day in April.
=EOMONTH("15-Apr-2015", 0)
=EOMONTH(DATE(2015,4,15), 0)
To return the last day of the current month, you use the TODAY() function in the first argument of your EOMONTH formula so that today's date is taken as the start date. And, you put 0 in the months
argument because you don't want to change the month either way.
=EOMONTH(TODAY(), 0)
Note. Since the Excel EOMONTH function returns the serial number representing the date, you have to apply the date format to a cell(s) with your formulas. Please see How to change date format in Excel for the detailed steps.
And here are the results returned by the Excel EOMONTH formulas discussed above:
If you want to calculate how many days are left till the end of the current month, you simply subtract the date returned by TODAY() from the date returned by EOMONTH and apply the General format to a cell:
=EOMONTH(TODAY(), 0)-TODAY()
How to find the first day of month in Excel
As you already know, Microsoft Excel provides just one function to return the last day of the month (EOMONTH). When it comes to the first day of the month, there is more than one way to get it.
Example 1. Get the 1st day of month by the month number
If you have the month number, then use a simple DATE formula like this:
For example, =DATE(2015, 4, 1) will return 1-Apr-15.
If your numbers are located in a certain column, say in column A, you can add a cell reference directly in the formula:
=DATE(2015, B2, 1)
Example 2. Get the 1st day of month from a date
If you want to calculate the first day of the month based on a date, you can use the Excel DATE function again, but this time you will also need the MONTH function to extract the month number:
For example, the following formula will return the first day of the month based on the date in cell A2:
=DATE(2015,MONTH(A2),1)
Example 3. Find the first day of month based on the current date
When your calculations are based on today's date, use a liaison of the Excel EOMONTH and TODAY functions:
=EOMONTH(TODAY(),0) +1
- returns the 1st day of the following month.
As you remember, we already used a similar EOMONTH formula to get the last day of the current month. And now, you simply add 1 to that formula to get the first day of the next month.
In a similar manner, you can get the first day of the previous and current month:
=EOMONTH(TODAY(),-2) +1
- returns the 1st day of the previous month.
=EOMONTH(TODAY(),-1) +1
- returns the 1st day of the current month.
You could also use the Excel DATE function to handle this task, though the formulas would be a bit longer. For example, guess what the following formula does?
=DATE(YEAR(TODAY()), MONTH(TODAY()), 1)
Yep, it returns the first day of the current month.
And how do you force it to return the first day of the following or previous month? Hands down :) Just add or subtract 1 to/from the current month:
To return the first day of the following month:
=DATE(YEAR(TODAY()), MONTH(TODAY())+1, 1)
To return the first day of the previous month:
=DATE(YEAR(TODAY()), MONTH(TODAY())-1, 1)
How to calculate the number of days in a month
In Microsoft Excel, there exist a variety of functions to work with dates and times. However, it lacks a function for calculating the number of days in a given month. So, we'll need to make up for that omission with our own formulas.
Example 1. To get the number of days based on the month number
If you know the month number, the following DAY / DATE formula will return the number of days in that month:
In the above formula, the DATE function returns the first day of the following month, from which you subtract 1 to get the last day of the month you want. And then, the DAY function converts the date to a day number.
For example, the following formula returns the number of days in April (the 4th month in the year).
=DAY(DATE(2015, 4 +1, 1) -1)
Example 2. To get the number of days in a month based on date
If you don't know a month number but have any date within that month, you can use the YEAR and MONTH functions to extract the year and month number from the date. Just embed them in the DAY / DATE formula discussed in the above example, and it will tell you how many days a given month contains:
=DAY(DATE(YEAR(A2), MONTH(A2) +1, 1) -1)
Where A2 is cell with a date.
Alternatively, you can use a much simpler DAY / EOMONTH formula. As you remember, the Excel EOMONTH function returns the last day of the month, so you don't need any additional calculations:
=DAY(EOMONTH(A1, 0))
The following screenshot demonstrates the results returned by all of the formulas, and as you see they are identical:
How to sum data by month in Excel
In a large table with lots of data, you may often need to get a sum of values for a given month. And this might be a problem if the data was not entered in chronological order.
The easiest solution is to add a helper column with a simple Excel MONTH formula that will convert dates to month numbers. Say, if your dates are in column A, you use =MONTH(A2).
And now, write down a list of numbers (from 1 to 12, or only those month numbers that are of interest to you) in an empty column, and sum values for each month using a SUMIF formula similar to this:
=SUMIF(C2:C15, E2, B2:B15)
Where E2 is the month number.
The following screenshot shows the result of the calculations:
If you'd rather not add a helper column to your Excel sheet, no problem, you can do without it. A bit more trickier SUMPRODUCT function will work a treat:
=SUMPRODUCT((MONTH($A$2:$A$15)=$E2) * ($B$2:$B$15))
Where column A contains dates, column B contains the values to sum and E2 is the month number.
Note. Please keep in mind that both of the above solutions add up all values for a given month regardless of the year. So, if your Excel worksheet contains data for several years, all of it will be summed.
How to conditionally format dates based on month
Now that you know how to use the Excel MONTH and EOMONTH functions to perform various calculations in your worksheets, you may take a step further and improve the visual presentation. For this, we are going to use the capabilities of Excel conditional formatting for dates.
In addition to the examples provided in the above mentioned article, now I will show you how you can quickly highlight all cells or entire rows related to a certain month.
Example 1. Highlight dates within the current month
In the table from the previous example, suppose you want to highlight all rows with the current month dates.
First off, you extract the month numbers from dates in column A using the simplest =MONTH($A2) formula. And then, you compare those numbers with the current month returned by =MONTH(TODAY()). As a result, you have the following formula which returns TRUE if the months' numbers match, FALSE otherwise:
=MONTH($A2)=MONTH(TODAY())
Create an Excel conditional formatting rule based on this formula, and your result may resemble the screenshot below (the article was written in April, so all April dates are highlighted).
Example 2. Highlighting dates by month and day
And here's another challenge. Suppose you want to highlight the major holidays in your worksheet regardless of the year. Let's say Christmas and New Year days. How would you approach this task?
Simply use the Excel DAY function to extract the day of the month (1 - 31) and the MONTH function to get the month number, and then check if the DAY is equal to either 25 or 31, and if the MONTH is equal to 12:
=AND(OR(DAY($A2)=25, DAY($A2)=31), MONTH(A2)=12)
This is how the MONTH function in Excel works. It appears to be far more versatile than it looks, huh?
In a couple of the next posts, we are going to calculate weeks and years and hopefully you will learn a few more useful tricks. If you are interested in smaller time units, please check out the previous parts of our Excel Dates series (you will find the links below). I thank you for reading and hope to see you next week!
470 comments
hi
i have 2 questions please
#1
my worksheet has a column in which there are months of multiple years ( 2010-2020)
i want to select a rows of data associated with 1 particular month of a particular year
so all data from , for example, February 2020, but not any other months or years.
#2
link, export,connect this to a new worksheet in the same workbook.
and how to do this from 30 separate worksheets?
is is best to create a macro to use a search and retrieve function?
or there a simpler method?
big thanks
Hello!
To select data for one month of the year in a worksheet, you can use Advanced Filter.
To select data from a large number of worksheets, I recommend first combining the data into one sheet. To do this, you can use the Copy Sheets tool from the Ultimate Suite for Excel. Then apply the filter you want to that data.
You can install Ultimate Suite for Excel in a trial mode and check how it works for free.
I have a data set that is pulling from multiple sheets in which more data is being added/updated to month columns in those sheets. I have a column in my data table that shows how many months of the year have been worked thus far. As of right now we have to manually change that column every month. Is there a formula that can be written that would allow that column to update automatically based on data being entered into the "month" columns in the other sheets?
Hello!
The information you provided is not enough to understand your case and give you any advice. You haven't written what data you enter into your spreadsheet. It may be necessary to use the MONTH function to extract the month number.
I need a formal to use the COUNTIFS formula by reading / looking the month which is in date format.
Suppose i have column having dates (from Jan to Dec), requirement is to count the data of another column for particular entire months.
Hello!
You can find the examples and detailed instructions here: Sum if between two dates in Excel.
This should solve your task.
I am trying to get a formula to calculate a monthly revenue. The job may run more than a few months but when I report I want to see the historical revenue - I think I maybe have to create several formulas an then join them up.
Example of job and monthly report
Job No. Job start Job End Value Per day value
25 05/01/21 30/03/21 10,000 119.05
Jan Report
Job No Revenue
25 3095.24 (26 days * 119.05)
Feb Report
Job No Revenue
25 3333.33 (28 days * 119.05)
Mar Report
Job No Revenue
25 3571.43 (30 days* 119.05)
Would much appreciate your input - thanks
In essence, I guess what I need is a way to calculate how many days are in each month between 2 dates in order to multiply that by the daily rate.
Hi!
To count the number of days in a month (for example, 1 month), use the formula for the difference between the maximum and minimum date in this month
=MAX(D1:D100*(MONTH(D1:D100)=1))-MIN((IF(MONTH(D1:D100)=1,D1:D100,"")))
Hello!
Please check out the following article on our blog, it’ll be sure to help you with your task: Sum if between two dates in Excel: SUMIFS with date range as criteria
Hi!
I'm trying to pull data from cells only if the cell is in a certain month and is within a certain state and I've hit a wall (feeling incompetent asking, haha).
Column A - Item X identifier (not needed)
Column B - cost for X for 1 month (not needed)
Column C - additional cost for X for 1 month (not needed)
Column D - Date (example 1/21/18)
Column E - Length of time (days) with item
Column G - Price per day per item
Column K - Is it in X state (true or false
Column H - Total amount of $ for entire period with item (formula =E2*G2)
I want to be able to say if date in D is within Jan ( or feb, march, April, etc) and is within X state (or not in X state) then multiply totals of E2*G2 and provide total amount for entire month in one cell.
Hope that makes sense. You're amazing for just having this space to ask. Thanks.
I want create a formula for a date range and show the month and year.
For example:
Date reported 21 May to 20 June = June 2021
Date reported 21 June to 20 August = Aug 2021
Date reported 21 August to 21 September = Sep 2021 and so
Thank you
Hello!
Please try the following formula:
=TEXT(D1+(DAY(D1) > = 21)*15,"mmm yyyy")
I hope it’ll be helpful.
Thank you, this worked perfectly
Cell 1 Contains 04/21,05/21
In cell 2 I want Starting date of the first and ending date of 2nd month
EX: 01/04/21 to 31/05/21
and if Cell 1 Contains 04/21,05/21,06/21
Ex: 01/04/21 to 30/06/21
Please
Hi!
You can use this formula:
=DATE("20"&MID(A2,4,2),LEFT(A2,2),1)
=EOMONTH(DATE("20"&RIGHT(A2,2),LEFT(RIGHT(A2,5),2),1),0)
You can learn more about DATE function in Excel in this article on our blog.
Date Sheet Nos
01-Apr-21 4511
02-Apr-21 4512
03-Apr-21 4513
04-Apr-21 19501
05-Apr-21 19502
sir, i want 4511 to 4513 from 01/04/21 to 03/04/21 and 19501 to 19502 from 04/04/21 to 05/04/21 if sheet Nos changed automatically return accordingly in a particular cell accordingly based on formula please help.
Hi!
I am not sure I fully understand what you mean. Please describe your problem in more detail.
Hi sir,
1).There is a 50 pages book with page numbers like 4501 to 4550, per page refers per day i.e.,01/04/2021 to 20/05/2021 and new book continuous with page numbers from 19501 to 19550 and date from 21/05/2021 to 09/07/2021.
2). In a particular date period like 01/04/2021 to 31/05/2021, i want like this "The trips entered in trip sheets from 4501 to 4550 (01-Apr-21 to 20-May-21) & 19501 to 19511 (21-May-21 to 31-May-21)". I used index, match, date and EOmonth functions in that cell by the result it comes like this "The trips entered in trip sheets from 4501 to 19511 (01-Apr-21 to 31-May-21)".
3). In a sheet, I have a table with columns like Date column and Page Numbers column. I want it automatically comes with the formula. Please help me sir, I tried so many ways but I failed. I think my problem is in detail. Thanking you sir.
in Sheet1, A38 & A39 Cells contains data like this
A38) 1.Number of Kilometers run during the month of May-21
A39) 2.Number of days used from 01-May-21 to 31-May-21
In A40 cell i get the result as
11. Certified that the trips entered in trip sheets from 4541 to 19521 (01-May-21 to 31-May-21). by using the below formula
Formula I used ="11. Certified that the trips entered in trip sheets from "&IFERROR(INDEX(Tours!F:F,MATCH(DATE(YEAR(MID(A39,30,9)),MONTH(MID(A39,30,9)),1),Tours!B:B,0)),"")&" to "&IFERROR(INDEX(Tours!F:F,MATCH(EOMONTH(RIGHT(A38,6),0),Tours!B:B,0)),"")&" ("&RIGHT(A39,22)&")."
In Tours Sheet Column B contains dates, Column F contains Page numbers
by the result what I want is 11. Certified that the trips entered in trip sheets from 4541 to 4550 (01-May-21 to 10-May-21) & 19501 to 19521 (11-May-21 to 31-May-21).
Hi!
Your explanations are not very clear. Formulas contain links to your data, which I do not have. Therefore, I cannot verify their work.
30/06/2021, 1:37 pm
i want this to be converted in month year
ex;- Jul/21
=TEXT(value,"mmmm/yyyy")
applying this formula I am not getting
Hello!
Your date is written as text. We have a tool that can solve your task in a couple of clicks — Text to Date. It is available as a part of our Ultimate Suite for Excel that you can install in a trial mode and check how it works for free: https://www.ablebits.com/files/get.php?addin=xl-suite&f=free-trial
1.Column A is names,
2.Column B is due date,
3.Column C is END OF TERM and
4.Column D is Restructured until month(text)
EX:
A. Excel
B. 06/01/2021
C. 09/01/2021
D. JULY
I want to conditionally format these by NAMES highlighted when their DUE DATE is a month away from COLUMN C or D.
=IF(B2=(C2-30), AND/OR
=IF(B2=(D2-1),
I dunno how to proceed please help thanks
Hello!
If I understand your task correctly, the following formula should work for you:
=DATEDIF(B1,C1,"m")>=1
Use this formula in conditional cell formatting as described in this article.
I hope my advice will help you solve your task.
Noted on all and thank you!! :)
Hi there,
I've very quickly browsed through your table of contents so I apologise if I've missed what I'm looking for.
I'm looking to return a numerical value from on the last day of each month.
Each day has a numerical value
The date range is a daily range which spans more than 1 year.
I wish to summarise the returned data by year and month.
How do I build a formula to achieve this?
Hello!
To return a list of values for the last day of each month, use the FILTER function:
=FILTER(A2:B6,A2:A6=DATE(YEAR(A2:A6),MONTH(A2:A6)+1,0))
I didn't understand what exactly you want to summarize.
Hi Alexander, you help me with if i have the number of years and months how can get the first date,month and year for that range.
Ex. if i want the calculate what the date was from 04 months from today, it should be 01-01-2021
how can i apply that into excel ? if i add year and moth on 2 different cells and it has to return the date. considering excel date as today
Hello!
I recommend reading this guide: Subtract dates in Excel; add days, weeks, months or years to date.
I want next month target to be automatically generated no matter what time of year we look at it. (target getting from table)
I need to a formula for convert different date's of Month name with year
Hello!
Please check out this article to learn how to extract month name from date.
I recommend reading this guide: Excel YEAR function - convert date to year
I hope my advice will help you solve your task.
I have expiration date and I need to find out expiration range like 0 to 3 Month or 3 to 6 Months in excel
Hi,
I recommend reading this guide:
Excel DATEDIF - calculating date difference in days, weeks, months.
If this is not what you wanted, please describe the problem in more detail.
This is the date format ( 20201101 ) which I have right now. Tell me how to get my month name in Text Eg, "Jan"
Hello!
If I got you right, the formula below will help you with your task:
=TEXT((--RIGHT(A2,2))*28, "mmm")
HI There,
I'm not incredibly advanced on excel and am having some trouble, not sure I can adequately explain my requirements.
I have a large table of information that requires 3 sets of conditional formats that will highlight the entire line if affected by certain date ranges. And I can't figure it out.
The cell I am working with is 'Shipment Period' which is based on the whole month.
I need all line data, that:
1. Falls before (past date) the current month e.g. 2021-02; to be highlighted pink/red
2. Falls during the current month; to be highlighted green
3. Falls after (future dated) the current month; to be highlighted orange
Any assistance would be appreciated.
Hello!
Please check out the following article on our blog, it’ll be sure to help you with your task: Excel conditional formatting for dates & time
I hope my advice will help you solve your task.
I need to a formula
that s will be start month from 16th and end of the next month 15th days
For example 2/16 to 3/15.
Hi,
The information you provided is not enough to understand your case and give you any advice. What source data is used for this task? The expected result is two dates or text? Please describe your problem in more detail.
How to calculate month + 3 days in excel
Hello!
If I understand your task correctly, check out this article to learn how to add days to date in Excel.
If this is not what you wanted, please describe your problem in more detail.
i want to see if cell a2 show 23.11.2020
than i want to see cell b2 show 23.12.2020 how to write formula
Dear Mam,
When we calculate no. of months for by DATEDIF function, result obtained is incorrect.
Please advise & suggest necessary formulas.
Start date-1-July-21 (A1)
End date-31-Dec-21 (A2)
Formula =DATEDIF(A1,A2,"M")
Result from function=5
Correct result=6
Thanks