2015-02-05 78 views
4

我怎樣寫一個Excel公式,隨機挑選,而每星期2個日期在2年的時間,其中:隨機生成每週2日期滿2年

  1. 每週2個日期是不是彼此相同

因此,這是不應該發生:

05/02/2015 
05/02/2015 
  • 在任何給定周的第一個日期始終的第二日期前同一周:
  • 所以這不應該發生:

    06/02/2015 
    05/02/2015 
    
  • 其中星期日是一週的開始和星期六是一週的末尾:
  • 這裏是什麼我的例子後:

    week day  date 
    1  1  01/01/2015 
    1  2  03/01/2015 
    2  1  05/01/2015 
    2  2  08/01/2015 
    

    等等,一直到2016的末尾。

    這是我到目前爲止,但這只是隨機給了我一個星期的一天,不履行任何的我上面所描述的標準:

    =CHOOSE(WEEKDAY(ROUND((RAND()*(7-1)+1),0)),"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday") 
    
    +0

    我懷疑你可以用電子表格公式實現這種「均勻分佈的隨機性」。我的第一個(天真的)方法是將期望的期間(2年)分成幾周(數組數組),然後每週迭代和隨機化。 – Filburt 2015-02-05 13:19:58

    +0

    爲什麼[google-spreadsheet]標籤? – pnuts 2015-02-05 13:30:06

    +0

    我在下面發佈了一個解決方案.....但只是對CHOOSE公式發表評論。使用'RAND'這個'RAND'在這裏給你一個「偏斜」的分佈 - 週六和週日不太可能出現比其他日子更好 - 使用INT來獲得1到7之間的隨機數,如'= INT(RAND() * 7 + 1)'....或使用'= RANDBETWEEN(1,7)' – 2015-02-05 14:06:28

    回答

    3

    21不同一週2天的組合 - 爲了確保均勻分佈,您可以使用助手欄,所以假設您的星期開始於A2,並且日期爲B2(每週總是顯示1天然後是2天),那麼請使用此公式在D2

    =IF(B2=1,RANDBETWEEN(1,21),"")

    ,並在此公式中C2

    =IF(B2=1,E$1+MATCH(D2,{1,7,12,16,19,21})-8+A2*7,C1+D1-LOOKUP(D1,{1,7,12,16,19,21})+1)

    其中E1包含一週的開始日期(星期日)1

    填補這兩個公式向下列

    您可以隱藏列d如果需要

    查看示例here

    +0

    美麗! .............(+ 1) – 2015-02-05 14:42:38