使用Excel,一年内随机独特的星期五日期

时间:2013-04-02 17:22:24

标签: excel random unique excel-formula

我需要在特定年份内生成独特的随机星期五。

我有一个或多或少的工作示例:随机唯一日期,周一至周五,一年内 在哪里可以查看:http://www.get-digital-help.com/2010/11/26/create-random-dates-mon-to-fri-within-a-year-in-excel/ 这个问题的问题是:它不是星期五的日期,它没有产生独特的日期,有重复的日期。

该列表必须生成N个随机日期,在特定的Cell中通知N号。例: A1:4(然后列表必须生成4个随机日期) A1:8(然后列表必须生成8个随机日期) A1:20(然后列表必须生成20个随机日期)

如果我有选择,我会要求不要使用vba ..有没有办法只用excel-formula?

谢谢你!

2 个答案:

答案 0 :(得分:2)

好的,这是一种方法 - 这将在指定的年份给你一个随机数的星期五...简化它只从前52个星期五选择,如果它赢得了一年中的53个星期五'选择第53个......尽管可以改变公式来做到这一点。

在A1中放置年份,例如2013年,在A2中将数字生成,例如4并在C1中放入一些文字,如“日期” - 现在在C2中复制这个公式:

=IF(ROWS(C$2:C2)>A$2,"",SMALL(IF(COUNTIF(C$1:C1,DATE(A$1,1,1+7*ROW(INDIRECT("1:52")))-WEEKDAY(DATE(A$1,1,2)))=0,DATE(A$1,1,1+7*ROW(INDIRECT("1:52")))-WEEKDAY(DATE(A$1,1,2))),RANDBETWEEN(1,53-ROWS(C$2:C2))))

CTRL SHIFT + ENTER +确认并复制到C53。如果A2编号较低,则后置单元格将保持空白。现在您可以根据需要更改A1和A2以生成新列表

以下是link示例 - A2是随机数 - 按F9重新生成 “测试”列只显示每个日期有多少个实例 - 因为不应该有一个应该总是一个的重复

...或者这里的another version带有一些帮助单元格以简化公式 - 指定B1中的年份,B2中显示的日期数和B3中的日期:

C2中的公式是

= IF(ROWS(d $ 2:D2)&GT; B $ 2, “”,SMALL(IF(COUNTIF(d $ 1:D1,B $ 4 + ROW(INDIRECT( “1:” 和B $ 5))* 7-7)= 0,B $ 4 + ROW(INDIRECT( “1:” 和B $ 5))* 7-7),RANDBETWEEN(1,B $ 5 + 1-ROWS(d $ 2:D2))))< / p>

答案 1 :(得分:0)

这是一个非常简单的公式,您可以在A1中粘贴并向下拖动。

=DATE(2012,1,(RANDBETWEEN(-100,100)*7)-1)

以下是它的工作原理。

我首先从2012年开始生成日期 =date(2012,1,1)恰好是星期六。所以,我知道我需要在最后一天减去1天。

接下来,我知道一周是7天,所以我生成了一个从-100到100 randbetween(-100,100)的随机数,并将此数字乘以7.这将为您提供2012年4年内的日期,无论哪个方向。

目前每个日期都是星期六,因为它是7天的倍数。所以,减去1。