Excel:计算一系列日期之间的平均天数


0

对于我将要使用Excel的方案,我想要一点帮助。任何一点帮助将受到高度赞赏。

我将对特定项目的日期范围不断增加,我需要制作一个Excel表格来确定每个项目之间的平均天数。基本上,这是我计划如何制表数据的简化示例:

Item Code  | Date
A.ITEM     | January 15, 2017
B.ITEM     | January 16, 2017
A.ITEM     | January 22, 2017
C.ITEM     | January 25, 2017
A.ITEM     | January 31, 2017
C.ITEM     | February 2, 2017
B.ITEM     | February 12, 2017
B.ITEM     | February 24, 2017
C.ITEM     | March 7, 2017

然后我将创建另一个表格,显示每个项目的日期之间的平均持续时间。我想它会是这样的:

Item Code  | Average Life Span
A.ITEM     | 9 days
B.ITEM     | 20.5 days
C.ITEM     | 21.5 days

我需要什么公式才能使第二个表成为可能?我现在已经绞尽脑汁了一段时间,因为我对Excel中的日期功能不太熟悉,我仍然不知道如何。它甚至可能吗?

谢谢!


当你说“每个项目的日期之间”时,我不明白你的意思。每件商品只有一个日期。Item01如何获得9天?
阿德莱德爵士

要使用上面的示例表来解释,使用ITEM01,我们有三个日期 - 01/15 / 17,19 / 22/17和01/31/17。前两个日期相隔8天。而第二个和最后一个日期相隔10天。然后我需要这些持续时间之间的平均值 - 在这种情况下,9天。
DeVilFisCh 2017年

换句话说,我首先需要计算每个项目的每个日期之间的天数 - 日期1-2,2-3,3-4等 - 然后平均值。
DeVilFisCh 2017年

好的,对不起,没有看到第一张表中重复的项目名称
阿德莱德爵士

没关系。我只是意识到桌子不是很清楚,我应该为每个项目使用不同的名称,以使它们更加明显。我刚刚编辑了表格以便更清晰。
DeVilFisCh 2017年

Answers:


2

请注意,差异的平均值只是(最大 - 最小)/计数:(d1-d2)+(d2-d3)+(d3-d4)+ ... = d1-dn

有了它,你可以使用像这样的公式
(MAX(d1:dn)-MIN(d1:dn))/COUNT(d1:dn)

这将使所有的日期在一个锅里,虽然如此,您还需要通过你的代码过滤器-而不是简单地MAX(d1:dn)使用MAX(IF(a1:an=code,d1:dn,0)作为一个矩阵公式。为MIN和COUNT添加类似的ifs(或使用COUNTIF); 请注意,对于MIN,else-value不能为0,但需要非常大。


1
刚刚添加了最终公式如何工作的示例:=(MAX(IF($ A $ 2:$ A $ 1001 = F2,$ B $ 2:$ B $ 1001,0)) - MIN(IF($ A $ 2:$ A $ 1001) = F2,$ B $ 2:$ B $ 1001,100000)))/(COUNTIF($ A $ 2:$ A $ 1001,F2)-1)
阿德莱德爵士

阿德莱德爵士的回答更接近我的想法,所以我将其标记为答案。我感谢你的帮助,并会记住我以后可能需要它。谢谢!:)
DeVilFisCh 2017年

1
现在我已经更好地了解了这个答案,我决定切换到它,因为它不需要分层排序。我昨天无法正常工作,但我今天意识到我应该使用SHIFT + CTRL + ENTER进行矩阵公式。我的错。哈哈!
DeVilFisCh 2017年

在我的情况下,我将其修改为下面的矩阵公式,以匹配我在我的问题中给出的第二个示例表:{=(MAX(IF(表1 [项目代码] = F2,表1 [日期],0)) - MIN(IF (表1 [商品代码] = F2,表1 [日期],10000000)))/(COUNTIF(表1 [商品代码],F2)-1)+1}
DeVilFisCh 2017年

0

在此示例中,项目代码位于列A中,日期位于列B中,然后我添加新数据。第1行是标题。

首先,每次添加新行时都需要对数据进行排序,并采用两层排序:

  • 首先按项目代码
  • 按日期排名第二

然后,在Date右侧的列中添加Time Between计算和拖放/填充:

=IF(A2=A1,B2-B1,"")

然后平均时间。在其他地方列出项目代码A,B,C - 我在测试中将它们放在F列中。在A旁边,输入并拖动/填充:

=AVERAGEIF($A$2:$A$6491,F2,$C$2:$C$6491)

我有:

  • 答:8
  • B:19.5
  • C:20.5

(A:1月22日 - 1月15日是7天,1月31日 - 1月22日是9天,平均是8天)


这不是我想象的,但这对我有用!我只是通过在持续时间计算中加1来修改它,以匹配我所做的示例。我只需添加一些条件公式,它应该完美地工作。将此标记为答案。谢谢!
DeVilFisCh 2017年

我切换到另一个答案,因为它不需要分层排序。尽管如此,这仍然很有用。
DeVilFisCh 2017年

不用担心,我认为另一个答案也更好
阿德莱德爵士
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.