コンピュータ

エクセルで時間をランダムに表示させる計算式

とても面白い依頼がきました。「午前9時以前と午後5時以後で、それらしい時間を自動で生成する方法はないか」と。目的は、仕事の開始時間と終了時間を報告するために、レポートを作成する必要があるそうで、ずいぶんさかのぼって入力しなおさなければならないそうです。

ちゃんとコツコツ入力していればそんな苦労しなくてもいいのに、と思いながらも、一つ一つ、8:555:12とタイプするのも膨大な作業のようです。

こんな依頼を受けて、やり方を解説しても、他にどんな事例で有用なのかよくわかりませんが、Excelでできますのでやりかたを紹介します。

 

午前9時から30分の間でランダムに時間を表示させる方法

急いでいる方用に、計算式を先にお知らせします。8時30分から8時59分までの間で、ランダムに時間が生成されます。

=CONCATENATE(“8:”, RANDBETWEEN(30,59))

説明が不要な方は、次の項目へどうぞ。

=CONCATENATE(A,B)

で、

AB

というように、文字を二つつなげることができます。AやBの部分には、セル(例:D7)や関数、文字が入ります。文字の場合、””で囲む必要があります。

RANDBETWEEN(30,59)

は、「30」と「59」の間でランダムに数字を生成する関数です。

これらを組み合わせることで、「8:」の部分とランダムに生成された「30」から「59」の間の数字を連結させて、時間を表示します。

さて、これですべて解決したかのようですが、実は、午後5時の時には、この方法はそのままでは使えません。「0」から「30」の間でランダムに数字を生成させると、数字が一桁の時もあり、時間が「5:3」のようになってしまいます。

 

午後5時から30分の間でランダムに時間を表示させる方法

こちらも急いでいる方用に、計算式を先にお知らせします。5時00分から5時30分までの間で、ランダムに時間が生成されます。

=IF(RANDBETWEEN(0,30)<10,CONCATENATE(“5:0”, RANDBETWEEN(0,9)),CONCATENATE(“5:”, RANDBETWEEN(10,30)))

ここでは、

IF(A,B,C)

という関数を使います。「もしもAであるなら、B、そうでなければ、C」という意味です。

Aの部分は、これになります。

RANDBETWEEN(0,30)<10

「0」から「30」の間の数字で10より小さかった場合

という意味です。

「10」より小さいときは、

CONCATENATE(“5:0”, RANDBETWEEN(0,9))

が表示されます。

5:0

の部分までは、テキストとして記述し、残りの部分を「0」から「9」の間の乱数を連結させて時間を表示させます。

「10」より大きいときは、

CONCATENATE(“5:”, RANDBETWEEN(10,30))

が表示されます。

5:

までがテキストとして表示され、残りの部分が「10」から「30」までの間の乱数を連結させて時間を表示させます。

本当に面倒くさい!って方には、Excel 2019で作成したサンプルファイルをご用意いたしました。ウィルスなどはございませんのでご安心ください。

サンプルファイルのダウンロードはこちらから