我有两列名为
第1列日历日期:
16/02/2015
第二列前一天:
Yes
我目前正在使用的公式:
if([calendar Date])=today-1,"YES","NO").
第二列根据第一列返回值。
然而,我得到的问题是当我在星期一运行数据时,我们有日历日期(星期五的一天)。所以它显示了" NO"因为公式只返回前一天的数据。
所以我想要这样的东西 只有当我在星期一跑时,它应该给我if([calendar Date])= today-3," YES"," NO")。以及所有其他工作日if([calendar Date] ])=今天-1,"是"" NO&#34)
你可以帮我解决这个问题。
答案 0 :(得分:0)
如果您的单元格 A2 具有日历日期,请尝试使用以下公式。
=IF(WEEKDAY(A2)=6,(IF(A2=TODAY()-3,"YES","NO")),(IF(A2=TODAY()-1,"YES","NO")))
答案 1 :(得分:0)
=IF(WEEKDAY(TODAY())=2,IF(TODAY()-3 = A12, "YES", "NO"), IF(TODAY()-1 = A12, "YES", "NO"))
首先,确定今天的日期是星期一还是一周中的其他日子。
IF(WEEKDAY(TODAY())=2
如果今天是星期一,那么你可以创造前一天必须是星期五[今天() - 3]的条件。
IF(TODAY()-3 = A12, "YES", "NO")
如果今天不是星期一,那么创造前一天是昨天[今天() - 1]的条件。
IF(TODAY()-1 = A12, "YES", "NO")
答案 2 :(得分:0)
要忽略周末和假日,您需要NETWORKDAYS或。{
NETWORKDAYS.INTL¹功能。您不仅可以跳过传统的周六/周日周末,还可以添加一个假期列表的参考,也可以打折。较新的NETWORKDAYS.INTL有很多内置的非标准“周末”格式,您也可以编写自己的格式。例如"0000011"
是标准周六/周日周末,"0101000"
是星期二和星期四'周末'。
NETWORKDAYS和NETWORKDAYS.INTL都会计算包含天数,因此您需要查找 2 的值,而不是1。
对于以下示例,我将计算机的系统日期重置为2016年1月19日(2016年马丁·路德·金纪念日之后的第二天)。
=IF(NETWORKDAYS.INTL([@[calendar Date]], TODAY(), "0000011", Z$2:Z$11)=2, "Yes", "No")
如果您想更详细一点,只需使用自定义数字格式为[=2]\Y\e\s;\No;\No
的NETWORKDAYS.INTL函数即可。这允许您在显示“是”或“否”时保留NETWORKDAYS.INTL公式的实际基础值。
上图中的结果清楚地表明,周末和假日都被放弃了考虑,2016年1月15日至周五被视为前一天。
¹ Excel 2013引入了NETWORKDAYS.INTL功能。早期版本不提供此功能。