EXCEL如何判断特定时间点是不是在一个时间区间内

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EXCEL如何判断特定时间点是不是在一个时间区间内相关的知识,希望对你有一定的参考价值。

EXCEL如何判断 上门时间 是否在 预约时间 区间内? 返回值 是或否

1、首先打开需要进行设置的excel文档,用鼠标拖动选中需要进行设置的特定区域。

2、之后将excel表格切换到功能区的开始选项卡。

3、然后点击样式组内的条件格式选项,会出现一个下拉菜单,选择菜单中的第一个选项“突出显示单元格规则”。

4、之后,会出现一个二级菜单,在其中选择第二个小于选项。

5、点击之后,会出现一个小于弹框。在左侧输入要设置excel内数据要小于的数值。

6、点击确定之后,excel表格就会变成如下的样子。

参考技术A C2公式:
=IFERROR(IF(AND(--LEFT(B2,10)=--LEFT(B2,10),--RIGHT(B2,8)>=--MID(A2,12,5),--RIGHT(B2,8)<=--RIGHT(A2,5)),"是","否"),"")
然后选中C2下拉。
AND内有三个条件:
--LEFT(B2,10)=--LEFT(B2,10)是判断是不是同一天,相等说明是同一天。
--RIGHT(B2,8)>=--MID(A2,12,5)是判断是不是大于等于预约起始时间。
--RIGHT(B2,8)<=--RIGHT(A2,5)是判断是不是小于等于预约截止时间。
三个条件均成立时,返回是,任意一个任意一个条件不成立时,返回否。
IFERROR函数是额外给你套上的一层判断,比如你多下拉了几行公式,A列B列还没填数据时,不加IFERROR的话C列会返回错误值,加上了以后会返回空白值。
---------------------
【更新一下】上面手误,公式写错了,把一个A2写成了B2。
下面是更新后的公式
=IFERROR(IF(AND(--LEFT(B2,10)=--LEFT(A2,10),--RIGHT(B2,8)>=--MID(A2,12,5),--RIGHT(B2,8)<=--RIGHT(A2,5)),"是","否"),"")追问

再请教一下:如果上门时间提前1小时也算有效,如果修改公式呢,谢谢  例:红色标注部份也算

本回答被提问者采纳
参考技术B 假定数据在AB两列,那么在C1写公式:
=IF(AND(B2>=LEFT(A2,16)+0,B2<=LEFT(A2,10)+RIGHT(A2,5)),"是","否")
下拉填充公式即可。
参考技术C 方法一:
第一步,获取现在时间,公式:=now()
第二步,判断时间段,公式:=IF(AND(HOUR(B8)>17,HOUR(B8)<21),"A","C")
方法二:
公式:=IF(AND(HOUR(NOW())>17,HOUR(NOW())<21),"A","C")
参考技术D 1、把预约时间分为两列,一列是起始一列是截止;
2、请查看如下公式,灵活修改套用就OK啦
=IF(MEDIAN(B3,D3,C3)=D3,"在","不在")&"指定时间段内"
B3=预约起始,C3=预约截止,D3=上门时间

c# 怎么判断一个时间区间在另一个时间区间?

如我现在list下添加了4个时间区间:8:00-12:00 13:00-16:00 17:30-20:00,20:00-2:00,2:00-3:00
现在我需要新增一个区间:9:00-12:30 但是这个时间区间在8:00-12:00中已经存在,则不允许添加。同样如果我想添加22:00-1:00,这个区间在20:00-2:00,同样也是不能添加,该怎么处理

list<string> time=new list<string>
time[0]=8:00-12:00
time[1]=13:00-16:00
time[2]=17:30-20:00
time[3]=20:00-2:00
分别得到每个时间段的开始时间和结束时间
string t0S= time[0].Split ('-')[0];//得到time[0]的开始时间
string t0E= time[0].Split ('-')[1];//得到time[0]的结束时间
以此类推
string t1S= time[1].Split ('-')[0];
string t1E= time[1].Split ('-')[1];
string t2S= time[2].Split ('-')[0];
string t2E= time[2].Split ('-')[1];
string t3S= time[3].Split ('-')[0];
string t3E= time[3].Split ('-')[1];
然后把字符串转为时间格式
TimeSpan St0 = DateTime.Parse(t0S).TimeOfDay;
TimeSpan St1 = DateTime.Parse(t1S).TimeOfDay;
TimeSpan St2 = DateTime.Parse(t2S).TimeOfDay;
TimeSpan St3 = DateTime.Parse(t3S).TimeOfDay;
TimeSpan Et0 = DateTime.Parse(t0E).TimeOfDay;
TimeSpan Et1 = DateTime.Parse(t1E).TimeOfDay;
TimeSpan Et2 = DateTime.Parse(t2E).TimeOfDay;
TimeSpan Et3 = DateTime.Parse(t3E).TimeOfDay;
新增时区的开始时间 NewS="9:00"
新增时区的结束时间 NewE="12:30"
TimeSpan NewSt = DateTime.Parse(NewS).TimeOfDay;
TimeSpan NewEt = DateTime.Parse(NewE).TimeOfDay;
然后判断 新增时区的开始时间 是不是比 每个list的开始时间大和 新增时区的结束时间 是不是比 每个list的结束时间小
if((NewSt>=St0||NewSt>=St1NewSt>=St2NewSt>=St3)&&(NewEt<=Et0||NewEt<=Et1||NewEt<=Et2||NewEt<=Et3))

MessageBox ("老时间段已包含新增时间段")

else

....................
参考技术A 判断新增的区间最大值不在已有区间内,且最小值也不在已有区间内就可以添加就行了啊追问

说是怎么说,我尝试过了,按照逻辑来写,不对啊,有具体代码么

参考技术B 修改最新添加的时间区间
把 8:00-12:00 改成8:00-12:30,则2个都包含了,剩下也是追问

这个本来就是智能判断是否在区间,上面时间只是举例,意思是不能在上面时间区间。。。你这还修改了。。。。

追答

那得看你list存的格式,然后if判断不就行了

以上是关于EXCEL如何判断特定时间点是不是在一个时间区间内的主要内容,如果未能解决你的问题,请参考以下文章

c# 怎么判断一个时间区间在另一个时间区间?

excel中如何判断日期在这个日期区间内并返回对应的数值?

java 判断一个数值是不是在一个数值区间内

JS 如何判断一个数字在某一个区间内

C语言应用(2)——判断当前时间是不是在一个时间段内(含跨天)

php判断时间范围