EXCEL中如何判断一个时间区间是不是在另一个时间区间内?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EXCEL中如何判断一个时间区间是不是在另一个时间区间内?相关的知识,希望对你有一定的参考价值。
如图所示需要判断C列的时间区间(8:00-17:05)是否在F-G列(15:17-15:40)的范围内,有多长时间在15:17-15:40的范围内。还需要考虑一点就是D列的11:00-12:00这段时间要抛出。大家有没有简单的方法或者公式啊?
公式一大堆,你参考一下,I2单元格公式:
=IF(AND(TIME(HOUR(LEFT(C2,FIND("-",C2,1)-1)),MINUTE(LEFT(C2,FIND("-",C2,1)-1)),SECOND(LEFT(C2,FIND("-",C2,1)-1)))>F2,TIME(HOUR(MID(C2,FIND("-",C2,1)+1,1000)),MINUTE(MID(C2,FIND("-",C2,1)+1,1000)),SECOND(MID(C2,FIND("-",C2,1)+1,1000)))<G2),"包含","不包含")
参考技术A 用if语句多层套用一下做判断。先判断开始于结束时间是否与时间段有交集,
如果没有交集,结果显然为0;
如果有交集,判断开始时间是否在11:00-12:00
如果在计算出来交集,保存赋值;结果就是下午的交集部门减去上午的交集部分。
如果不在计算下午的交集部分,结果就是交集。
如何判断一个字符串是不是包含在另一个字符串中
【中文标题】如何判断一个字符串是不是包含在另一个字符串中【英文标题】:how to find whether a string is contained in another string如何判断一个字符串是否包含在另一个字符串中 【发布时间】:2011-02-05 03:19:33 【问题描述】:a='1234;5'
print a.index('s')
错误是:
> "D:\Python25\pythonw.exe" "D:\zjm_code\kml\a.py"
Traceback (most recent call last):
File "D:\zjm_code\kml\a.py", line 4, in <module>
print a.index('s')
ValueError: substring not found
谢谢
【问题讨论】:
这是另一个问题的重复:***.com/questions/3437059/… 另一个字符串中的一个字符串?你说的。这是蟒蛇 @Anderson:同意,它应该作为重复关闭。 【参考方案1】:尝试改用find()
- 这会告诉你它在字符串中的位置:
a = '1234;5'
index = a.find('s')
if index == -1:
print "Not found."
else:
print "Found at index", index
如果你只是想知道是否字符串在里面,你可以使用in
:
>>> print 's' in a
False
>>> print 's' not in a
True
【讨论】:
【参考方案2】:print ('s' in a) # False
print ('1234' in a) # True
如果您也需要索引,但不希望引发异常,请使用 find
。
print a.find('s') # -1
print a.find('1234') # 0
【讨论】:
【参考方案3】:如果您只想检查子字符串是否在字符串中,可以使用in
运算符。
if "s" in mystring:
print "do something"
否则,您可以使用 find()
并检查 -1(未找到)或使用 index()
【讨论】:
【参考方案4】:str.find()
和 str.index()
几乎相同。最大的区别是,当找不到字符串时,str.index()
会抛出一个错误,就像你得到的那样,而str.find()
返回 -1,就像其他人发布的那样。
有 2 个姊妹方法,称为 str.rfind()
和 str.rindex()
,它们从字符串的末尾开始搜索并朝着开头工作。
此外,正如其他人已经表明的那样,in
运算符(以及 not in
)也完全有效。
最后,如果你想在字符串中寻找模式,你可以考虑正则表达式,尽管我认为太多人在使用它们时过度使用它们。换句话说,“now you have two problems。”
就我目前掌握的所有信息而言,就是这样。但是,如果您正在学习 Python 和/或学习编程,我给我的学生的一个非常有用的练习是尝试自己在 Python 代码中构建 *find()
和 *index()
,甚至是 in
和 not in
(虽然是函数)。您将获得遍历字符串的良好实践,并且您将更好地了解现有字符串方法的工作原理。
祝你好运!
【讨论】:
正则表达式有点矫枉过正?!为什么?对于大多数字符串匹配算法,可能没有更高效、更清晰的编程方法了。 对于可以使用 find() 和 index() 等工具完成的简单搜索,正则表达式不是一个好的选择,因为如果不仔细检查它们往往难以阅读。能够略过正则表达式并捕捉到它试图做的所有细节是很少见的。它们对于复杂的模式非常有效,但可维护性可能是一个问题。【参考方案5】:def substr(s1, s2): # s1='abc' , s2 = 'abcd'
i = 0
cnt = 0
s = ''
while i < len(s2):
if cnt < len(s1):
if s1[cnt] == s2[i]:
cnt += 1
s += s2[i]
else:
cnt = 0
s = ''
i += 1
if s == s1:
print(f's1 is substring of s2')
else:
print(f's1 is not a substring of s2')
【讨论】:
问题是什么? 如果一个字符串包含另一个字符串作为子字符串。就是这个问题。【参考方案6】:这是检查字符串中是否存在子字符串的正确方法。
定义海(str,str1):
if(str1[0:] in str):
return "yes"
else:
return "no"
print(sea("sahil","ah"))
【讨论】:
【参考方案7】:让我们按照下面提到的来试试这个。
方法一:
if string.find("substring") == -1:
print("found")
else:
print("not found")
方法二:
if "substring" in "string":
print("found")
else:
print("not found")
【讨论】:
以上是关于EXCEL中如何判断一个时间区间是不是在另一个时间区间内?的主要内容,如果未能解决你的问题,请参考以下文章