Here is an interesting scenario.

Let’s say you are looking at a time, like 9:42 AM and want to know which 15 minute slot it fits into. The answer is 9:30 – 9:45. But how would you get this answer thru Excel formulas?

### Excel formula to find slot from time:

Assuming A1 contains the input time, here is one formula that tells you the time slot.

=TEXT(TIME(HOUR(A1),INT(MINUTE(A1)/15)*15,0),”hh:mm”)&” – “&TEXT(TIME(HOUR(A1),(INT(MINUTE(A1)/15)+1)*15,0),”hh:mm”)

Whoa!, that’s long. Let’s examine the inner workings of this beast.

**Logic:Â **We need to figure out both lower & upper boundaries ofÂ fifteen minute slot for time in A1. The lower boundary is quotient of A1/15 minutes multiplied by 15. For example, 09:42’s lower boundary is 09:30. The upper boundary is lower boundary + 15 minutes.

**Implementation:**

**INT(MINUTE(A1)/15) * 15 portion:Â **this part of the formula tells us the minutes. We extract the minute part of A1 (using MINUTE(A1)) and divide it with 15. We then take only the integer portion of this division and multiply that with 15 again. This gives us theÂ *minute portionÂ *of lower boundary of our time slot.

**TIME(HOUR(A1), INT(..)*15, 0) portion:Â **We then create a time value using the TIME formula by using the same hour as A1, minutes from lower boundary calculation using the INT(…)* 15 Â and 0 as seconds.

**TEXT(TIME(…), “hh:mm”) portion:Â **This will convert the time value to text formatted as hh:mm.

So far we haveÂ constructed the lower boundary of time slot. TheÂ *upper boundaryÂ *part of the formula is similar with one minor change. Go figure it out.

### How to find 1 hour time slot?

Let’s say you want to find the time slot on hourly basis, then what?

Below formula does the job.

=HOUR(A1)&”:00 – ” & (HOUR(A1)+1) & “:00”

### What if your time slots are not uniformly spaced?

The above approaches work fine as long as your time slots are uniformly spaced (*ieÂ *15 minutes, 1 hour, 4 hours or 8 hour apart). What if you have aÂ *uniqueÂ *set up? Something like this:

In that case you can use theÂ **range lookup** method.

Related: read about pricing tier lookup too.

So there you go. For more information about working with date & time values in Excel, check out below material.

- Convert fractional time to proper time in Excel
- Find last day of any month with this simple trick
**42 tips for Excel time travelersÂ**– Must read!!!- Check if two dates are in same month
- More formulas & tutorials on Excel date & time

### A challenge for you:

How would you write the 15 minute time slot formula? Can you figure outÂ *otherÂ *ways to calculate it? Please share your formulas in the comments section.Â *Your time starts now!*

## 15 Responses to “Figure out slot from given time [quick tip]”

How about using Floor and Ceiling?

=TEXT(FLOOR(A1,TIME(,15,)),"HH:MM")& " - " & TEXT(CEILING(A1+(MOD(MINUTE(A1),15)=0)*(TIME(,1,)),TIME(,15,)),"HH:MM")

continuing from MF:

=TEXT(FLOOR(A1,1/96),"HH:MM")& " - " & TEXT(FLOOR(A1,1/96)+1/96,"HH:MM")

(72 chars) although I would prefer to use a named range (one cell) called slot that contains the time per slot, in out case, 1/96

=TEXT(FLOOR(A1,slot),"HH:MM")& " - " & TEXT(FLOOR(A1,slot)+slot,"HH:MM")

This too, weighs in at 72 chars

[…] http://chandoo.org/wp/2016/04/19/excel-time-slot-formula/?utm_source=feedburner&utm_medium=email… […]

Hi

=ROUND(A1*96,0)/96

as a basis for more creativity ðŸ˜‰

Regards

Stef@n

The mround function works fairly well for this problem...

=TEXT(MROUND(A1,"0:15")-((MROUND(A1,"0:15")>A1)*("0:15")),"h:mm AM/PM")&" - "&TEXT(MROUND(A1,"0:15")+((MROUND(A1,"0:15")<A1)*("0:15")),"h:mm AM/PM")

=TEXT(MROUND(A1,"0:15"),"hh:mm")&" - "&TEXT(MROUND(A1,"0:15")+TIME(,15,),"hh:mm")

My solution to question 2 would be using VLOOKUP.

=TEXT(VLOOKUP(D1,A1:B9,1,TRUE),"hh:mm")&"-"&TEXT(VLOOKUP(D1,A1:B9,2,TRUE),"hh:mm")

My solution to Question 1 would be =TEXT(FLOOR(A1,"0:15"),"hh:mm")&"-"&TEXT(CEILING(A1,"0:15"),"hh:mm")

Nice.

=TEXT(FLOOR(A1,0.25/24),"hh:mm")&" - "&TEXT(CEILING(A1,0.25/24),"hh:mm")

=TEXT(FLOOR(A1,1/24/4),"h:mm")&"-"&TEXT(FLOOR(A1,1/24/4)+1/24/4,"h:mm")

Upper Bound: MROUND("Input Date","Increment")

Lower Bound: MROUND("Input Date",2*"Increment")

Increment in the format: "0:05" for 5 minutes

Sorry ... swap lower & upper bound with each other

WHAT IF YOUR UNIFORM RANGE CROSSES MIDNIGHT? HOW WOULD YOU FIGURE THAT OUT?

0200 - 0600

0600 - 1000

1000 - 1400

1400 - 1800

1800 - 2200

2200 - 0200

thanks

=A1-MOD(A1,A2)

A1 is the current time.

in B1 I wrote 00:15, or 01:00...