0

特定の年の中で一意のランダムな金曜日の日付を生成する必要があります。

私は多かれ少なかれ実用的な例を持っています:あなたがチェックできる年内の月から金までのランダムな一意の日付:http://www.get-digital-help.com/2010/11/26/create-random -dates-mon-to-fri-within-a-in-a-in-excel/ この例の問題: 金曜日の日付ではなく、一意の日付が生成されず、重複する日付があります。

リストは、特定のセルで通知された N 個のランダムな日付を生成する必要があります。例: A1: 4 (リストは 4 つのランダムな日付を生成する必要があります) A1: 8 (リストは 8 つのランダムな日付を生成する必要があります) A1: 20 (リストは 20 のランダムな日付を生成する必要があります)

オプションがあれば、vbaを使用しないようにお願いします..Excel式だけで行う方法はありますか?

ありがとう!

4

2 に答える 2

2

OK、これを行う 1 つの方法があります。これにより、指定された年のランダムな数の金曜日が得られます...簡単にするために、最初の 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))))

CTRLSHIFT+ + で確認しENTER、C53 までコピーします。A2 数が少ない場合、後のセルは空白のままになります。必要に応じて A1 と A2 を変更するだけで、新しいリストを生成できます

例へのリンクを次に示します。A2 は乱数です。F9 キーを押して「テスト」列を再生成します。各日付のインスタンスの数が表示されます。常に 1 つである必要がある繰り返しがあってはならないためです。

...または、数式を簡略化するためのヘルパー セルを使用した別のバージョンを次に示します。B1 で年を指定し、B2 で表示する日付の数を指定し、B3 で日を指定します。

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))))

于 2013-04-02T17:41:47.843 に答える
0

これは、A1 に貼り付けて下にドラッグできる非常に単純な方程式です。

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

これがどのように機能するかです。

まず、2012 年から始まる日付を生成します。
=date(2012,1,1)たまたま土曜日です。したがって、最終日から 1 日を差し引く必要があることはわかっています。

次に、1 週間は 7 日間であることがわかっているので、-100 から 100 までの乱数を生成し、randbetween(-100,100)この数を 7 倍します。これにより、2012 年から 4 年以内の日付がどちらの方向にも返されます。

現在、すべての日付は土曜日になります。これは、7 日の倍数であるためです。ということで、1引く。

于 2013-04-02T18:01:56.437 に答える