ExcelReady
CourseMock testsFunction guidesBlog
Start freeStart learning for free
ExcelReady

Be Excel-ready before day one. Hands-on practice in your browser, with instant feedback.

Learn

  • Course
  • Mock tests
  • Function guides
  • Blog

Test prep

  • Excel level test
  • Excel test practice
  • Free screening quiz
  • Certificate

Company

  • About
  • Editorial policy
  • Contact
  • Terms
  • Privacy

© 2026 ExcelReady. All rights reserved.

  1. Blog
  2. Dates
  3. Semimonthly Pay Schedule in Excel: 15th and Month-End Paydays

Semimonthly Pay Schedule in Excel: 15th and Month-End Paydays

By ExcelReady Team·Updated November 3, 2026·6 min read

The short answer

A semimonthly pay schedule has 24 paydays a year, usually on the 15th and the last day of each month. In Excel, the 15th is =DATE(year,month,15) and the last day is =EOMONTH(date,0). When a payday falls on a weekend or holiday, =WORKDAY(payday+1,-1,holidays) moves it to the working day before.

Key takeaways

  • Semimonthly means twice a month on fixed dates: 24 paydays a year, unlike biweekly pay every 14 days.
  • EOMONTH(date,0) returns the last day of any month, so February and 30-day months are handled for you.
  • =WORKDAY(payday+1,-1,holidays) keeps a working-day payday and moves a weekend or holiday payday back.
  • The two pay periods are usually the 1st to the 15th and the 16th to the last day of the month.
  • A semimonthly salary payment is the annual salary divided by 24.
On this page+
  1. Semimonthly vs biweekly pay
  2. Step 1: List the 15th and month-end paydays
  3. Step 2: Move weekend and holiday paydays with WORKDAY
  4. Step 3: Add the pay period dates
  5. Step 4: Calculate the pay for each period
  6. Common mistakes in a semimonthly schedule
  7. Practise it

A semimonthly pay schedule pays people twice a month on fixed dates, usually the 15th and the last day of the month. In Excel you can build the whole year's schedule from a few date formulas: DATE or EDATE for the 15th, EOMONTH for the month-end, and WORKDAY to move a payday that lands on a weekend or holiday. This guide is for payroll and HR staff, small business owners and anyone checking their own paydays.

Semimonthly vs biweekly pay#

Semimonthly pay is tied to the calendar; biweekly pay is tied to the weekday. That one difference changes the number of paydays and the formulas you need:

SemimonthlyBiweekly
How oftenTwice a month, on set datesEvery 14 days
Paydays a yearAlways 2426, sometimes 27
Payday weekdayChanges each timeAlways the same
Key Excel functionEOMONTH and WORKDAYAdding 14 to a date

If your company pays every other Friday instead, follow the biweekly pay schedule guide. Monthly paydays on a set weekday are covered in how to find the last Friday of the month.

Step 1: List the 15th and month-end paydays#

Put one month per row, with the 15th in one column and the last day in the next. The example uses 2027:

  1. In A2, type =DATE(2027,1,15). That is the first mid-month payday.
  2. In A3, type =EDATE(A2,1) and fill it down to A13 (Windows: Ctrl+D; Mac: ⌘D). EDATE adds one month and keeps the day, so every row is the 15th.
  3. In B2, type =EOMONTH(A2,0) and fill down. EOMONTH returns the last day of the month of A2.

Here is the first half of the year (the weekday is shown to help you check):

Month15th paydayMonth-end paydayMoved to
Jan 2027Fri 15 JanSun 31 JanFri 29 Jan
Feb 2027Mon 15 FebSun 28 FebFri 26 Feb
Mar 2027Mon 15 MarWed 31 Mar(no change)
Apr 2027Thu 15 AprFri 30 Apr(no change)
May 2027Sat 15 MayMon 31 MayFri 14 May and Fri 28 May
Jun 2027Tue 15 JunWed 30 Jun(no change)

EOMONTH handles 28-, 29-, 30- and 31-day months for you, including leap years. The EOMONTH function guide shows the syntax, and first and last day of the month in Excel has more month-boundary formulas.

In Excel 2021 or Microsoft 365, you can make each column in one step. =DATE(2027,SEQUENCE(12),15) spills the twelve 15ths, and =EOMONTH(DATE(2027,SEQUENCE(12),1),0) spills the twelve month-ends.

If your company pays on the 15th and the 30th instead of the last day, February needs care. =MIN(DATE(2027,2,30),EOMONTH(DATE(2027,2,1),0)) returns 28 February: DATE rolls 30 February over to 2 March, and MIN picks the earlier month-end.

Step 2: Move weekend and holiday paydays with WORKDAY#

When a payday falls on a weekend or a holiday, most employers pay on the working day before. WORKDAY does this in one step. List your company holidays in H2:H4, for example 1 January, 31 May and 5 July 2027. Then in C2:

Excel formula
=WORKDAY(A2+1,-1,$H$2:$H$4)

WORKDAY counts working days from a start date, skipping weekends and the holiday list. Starting from the day after the payday and going back one working day gives:

  • the payday itself, if it is a working day (Friday 15 January stays Friday 15 January);
  • the working day before, if it isn't (Saturday 15 May becomes Friday 14 May).

Use the same formula on the month-end column. Monday 31 May 2027 is on the holiday list, so it moves to Friday 28 May. The $ signs keep the holiday list fixed as you fill down. If your policy is to pay on the next working day instead, use =WORKDAY(A2-1,1,$H$2:$H$4).

The WORKDAY function guide lists the arguments, and NETWORKDAYS and WORKDAY explained covers custom weekends with WORKDAY.INTL.

Step 3: Add the pay period dates#

Each payday covers half a month. The usual split is the 1st to the 15th, paid on the 15th, and the 16th to the last day, paid at month-end. For a 15th payday in A2:

PeriodStartEnd
First half=EOMONTH(A2,-1)+1=A2
Second half=A2+1=EOMONTH(A2,0)

EOMONTH(A2,-1)+1 is the last day of the previous month plus one, which is the 1st of this month. A2+1 is the 16th. Some employers pay a few days after the period ends, to give payroll time to process hours. In that case, keep the period dates and add the delay to the payday, then run it through WORKDAY.

Step 4: Calculate the pay for each period#

For salaried staff, each semimonthly payment is the annual salary divided by 24. A salary of 54,000 gives 2,250 per payday. (On a biweekly schedule the same salary would be 54,000 ÷ 26, about 2,076.92, paid more often.)

For a partial period, such as a new hire, prorate by working days. Say someone starts on Wednesday 6 January 2027. The first period runs from 1 to 15 January, and 1 January is a holiday:

Excel formula
=2250*NETWORKDAYS(DATE(2027,1,6),DATE(2027,1,15),$H$2:$H$4)/NETWORKDAYS(DATE(2027,1,1),DATE(2027,1,15),$H$2:$H$4)

NETWORKDAYS counts 8 working days worked out of 10 in the period, so the first payment is 1,800. Both halves of January 2027 happen to have 10 working days, but that varies from period to period. Hourly staff are simpler: hours worked in the period times the rate. The payroll calculator guide adds overtime, tax and net pay.

Common mistakes in a semimonthly schedule#

These are the slips to check for:

  1. Typing 30 or 31 for the month-end. February breaks, and so do 30-day months. Use EOMONTH.
  2. Using WORKDAY(payday,-1). That always moves back a day, even when the payday is a normal working day. Start from payday + 1.
  3. Forgetting the holiday list, or not locking it with $, so it slides down as you fill.
  4. Seeing numbers like 46416 instead of dates. That is the date's serial number. Format the cells as dates (Windows: Ctrl+1; Mac: ⌘1).
  5. Mixing up 24 and 26. A semimonthly salary is divided by 24; a biweekly one by 26.

For the month-shifting functions behind all of this, see EDATE and EOMONTH in Excel.

Practise it#

Pay schedules are built from a handful of date functions, and each one is quick to learn by doing. Practise EDATE, EOMONTH and WEEKDAY in a live spreadsheet: you type the formula and it checks it instantly. Then practise NETWORKDAYS and WORKDAY to count working days and move dates around weekends and holidays.

Try it yourself

This is a live spreadsheet. Type the formula in the green cell and press Enter.

B1 holds the first day of October 2027. The month-end payday is 31 October, a Sunday. In B3, use WORKDAY and EOMONTH to return the last working day on or before the month-end, then press Enter.

fx
ABCD
1
Month
46661
2
3
Month-end payday
4
5
6

Tip: =WORKDAY(EOMONTH(B1,0)+1,-1). EOMONTH gives 31 October; adding 1 and stepping back one working day lands on Friday 29 October 2027 (serial number 46689).

Practise this in a lesson

LessonRenewals and month-ends: EDATE, EOMONTH, WEEKDAYShift dates by whole months with EDATE, jump to month-end with EOMONTH, and find the day of the week with WEEKDAY.LessonWorkdays: NETWORKDAYS and WORKDAYCount working days between two dates with NETWORKDAYS and find a deadline a number of working days away with WORKDAY, skipping weekends and a holiday list.Function guideEOMONTHFind the last day of any month with Excel's EOMONTH for due dates, month totals and days in a month. Examples, pitfalls and a live exercise.Function guideWORKDAYFind a delivery or due date a number of working days away with Excel's WORKDAY, skipping weekends and holidays. Examples and live practice.

Frequently asked questions

What is a semimonthly pay schedule?

+

A semimonthly pay schedule pays employees twice a month on set dates, most often the 15th and the last day of the month. That makes 24 paydays a year. Each payday covers half a month.

What is the difference between semimonthly and biweekly pay?

+

Semimonthly pay comes on two fixed dates each month, 24 times a year, on different weekdays. Biweekly pay comes every 14 days, 26 or 27 times a year, always on the same weekday.

How do I find the last day of the month for payday in Excel?

+

Use =EOMONTH(date,0). For any date in February 2027, it returns 28 February 2027. Format the cell as a date if you see a number.

What happens if a semimonthly payday falls on a weekend?

+

Many employers pay on the last working day before it. In Excel, =WORKDAY(payday+1,-1,holidays) returns that day. Some pay on the next working day instead, which is =WORKDAY(payday-1,1,holidays). Follow your company's policy.

How do I calculate semimonthly pay from an annual salary?

+

Divide the annual salary by 24. A 54,000 salary gives 2,250 per payday. For a part period, multiply by the working days worked and divide by the working days in the period.

Sources

  • EOMONTH function - Microsoft Support
  • WORKDAY function - Microsoft Support
  • NETWORKDAYS function - Microsoft Support

Written and checked by the ExcelReady Team. First published November 3, 2026. The practice exercise runs in the same formula engine as our lessons. Found a mistake? Read our editorial policy or email hello@excelready.app.

On this page

  1. Semimonthly vs biweekly pay
  2. Step 1: List the 15th and month-end paydays
  3. Step 2: Move weekend and holiday paydays with WORKDAY
  4. Step 3: Add the pay period dates
  5. Step 4: Calculate the pay for each period
  6. Common mistakes in a semimonthly schedule
  7. Practise it

Keep reading

Dates· 7 min read

First and Last Day of the Month in Excel

For the first day of the month in Excel, use =EOMONTH(A2,-1)+1: the last day of the previous month plus one day. You can also write =DATE(YEAR(A2),MONTH(A2),1). For the last day of the month, use =EOMONTH(A2,0). Change the month number in EOMONTH to move to next month (1) or last month (-1).

Dates· 6 min read

EDATE and EOMONTH: Add Months and Find Month-End

EDATE moves a date by whole months: =EDATE(start_date, months) keeps the day where it can, so Mar 15 plus 12 months is Mar 15 next year. EOMONTH moves by months and then jumps to the month's last day: =EOMONTH(B2,0) is the end of B2's month. Negative months go backwards.

Dates· 6 min read

Count Working Days With NETWORKDAYS and WORKDAY

NETWORKDAYS counts the working days (Monday to Friday) between two dates, including both dates: =NETWORKDAYS(start_date, end_date, [holidays]). WORKDAY does the reverse and returns the date a number of working days away: =WORKDAY(start_date, days, [holidays]). Both skip weekends, and both skip any dates you list as holidays.

More on dates

  • Calculate the Difference Between Two Times in Excel
  • TODAY Function in Excel: Always-Current Dates
  • Convert a Unix Timestamp to a Date in Excel
  • Find Upcoming Birthdays in Excel With a Formula
  • How to Calculate the Week Ending Date in Excel
  • How to Get the Week Number From a Date in Excel
All dates articles →

Don't just read about Excel. Do it.

Practise real formulas in a live spreadsheet with instant feedback, right in your browser. Nothing to download.

Start learning for free