Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 根据标准计算天数_Excel_Date_If Statement - Fatal编程技术网

Excel 根据标准计算天数

Excel 根据标准计算天数,excel,date,if-statement,Excel,Date,If Statement,我需要计算迁徙动物种群的占用时间。入住率是指在给定的一年中,从第一次见到一个人到最后一次见到一个人之间的时间段,以天为单位。我在Excel中处理的瞄准数据类型的一个小示例: 我需要能够计算一年内两次目击之间的天数,而不是第一次和最后一次目击之间或每次目击之间的天数。我想知道是否有一种方法可以用DATEDIF和if语句实现这一点 编辑:我正在重新审视这个分析,作为一个具体问题,如图所示。为了使我的数据正确,如果在给定的一年中只见过一次动物,则公式需要返回“1”,如果根本没有见过,则返回“0”。目

我需要计算迁徙动物种群的占用时间。入住率是指在给定的一年中,从第一次见到一个人到最后一次见到一个人之间的时间段,以天为单位。我在Excel中处理的瞄准数据类型的一个小示例:

我需要能够计算一年内两次目击之间的天数,而不是第一次和最后一次目击之间或每次目击之间的天数。我想知道是否有一种方法可以用DATEDIF和if语句实现这一点


编辑:我正在重新审视这个分析,作为一个具体问题,如图所示。为了使我的数据正确,如果在给定的一年中只见过一次动物,则公式需要返回“1”,如果根本没有见过,则返回“0”。目前,如果只看到一次或根本没有看到,则公式返回“0”

有一种方法可以通过公式实现,但我真的不推荐

使用“
max”(如果(
)和“
min”(如果(
)(一种很难使用的公式形式-键入时必须按[ctrl][shift][enter]),如下所示:

在单元格K2中,使用以下公式:

=DATE(YEAR(MIN($B$2:$J$2)),1,1)
=IF(N(K2)=0,"",IF(MAX($B$2:$J$2)>DATE(YEAR(K2)+1,1,1),DATE(YEAR(K2)+1,1,1),""))
这将为你的目击设定最早的年份

在单元格L2中,编辑单元格,粘贴以下行,然后按[ctrl][shift][enter]:

=IF(N(K2)=0,"",MAX(MAX(IF($B$2:$J$2<DATE(YEAR(K2)+1,1,1)-1,$B$2:$J$2))-MIN(IF($B$2:$J$2>=K2,$B$2:$J$2)),0))
将K2和M2格式化为自定义“yyyy”以显示年份

现在复制L2:M2范围,并粘贴到N2、P2、R2和右侧的每秒钟一个单元格


最后,您的数据集中应该有一对单元格,显示从最早的一年到最后一年的年份以及第一次和最后一次目击之间的天数。

请进一步解释:
我需要能够计算一年内目击之间的天数,而不是第一次目击之间的天数第nd次最后一次目击或每次目击之间。
请展示正确输出的样本。我希望能够确定给定年份动物在该区域停留的平均天数。查看我包含的样本数据示例:2005年,11个人在目击之间的间隔时间为0天(因为只见过一次)2007年第一次和最后一次目击之间有6天,2010年为0。37人在2000年和2001年的目击之间有12天。这有助于澄清吗?是的。没错。哦。我道歉。我错把那个人的7月理解为6月。正确的数字是40天。谢谢康纳。但你为什么不推荐这种方法呢?很难看!这些“数组公式”在标准Excel文档中没有突出显示,很少使用。对于大多数Excel用户来说,IF(..)构造很奇怪。它们令人困惑!