Excel中一年内随机生成独特的星期五date

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

我有一个或多或less的工作示例:随机唯一的date,周一至周五,在一年内你可以检查: http : //www.get-digital-help.com/2010/11/26/create-random在这个问题上:这不是星期五的date,它没有生成唯一的date,有重复的date。

该列表必须生成N个随机date,在特定单元格中通知N号码。 例如:A1:4(那么列表必须生成4个随机date)A1:8(那么列表必须生成8个随机date)A1:20(那么列表必须生成20个随机date)

如果我有select,我会要求不要使用vba ..有没有一种方法只是在Excel的公式?

谢谢!

好的,这里有一个方法可以做到这一点 – 这会给你一个指定年份的星期五的随机数…为了简化它,只能从前52个星期五挑选,如果每年有53个星期五,它将不会select第53个人……虽然公式可以改变这样做。

在A1中,把年份,如2013,在A2中input生成的数字,例如4,在C1中放一些如“date”的文本 – 现在在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来生成新列表

这是一个例子的链接 – A2是一个随机数 – 按F9重新生成“testing”列只显示了每个date有多less个实例 – 因为不应该有重复

…或者这里是另一个带有一些辅助单元的版本来简化公式 – 在B1中指定年份,在B2中显示date数量,在B3中显示date:

C2中的公式是

= IF(ROWS(d $ 2:D2)> 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))))

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

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

下面是它的工作原理。

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

接下来,我知道一个星期是7天,所以我产生了一个从-100到100 randbetween(-100,100)的随机数randbetween(-100,100)和这个数字乘以7.这将给你在2012年的4年内,无论哪个方向。

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