重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

お世話になります。
エクセル2003/XP 使用です。

RANK関数またはそれに似た利用方法でご教授願いします。

下記ページを参考に、"重複しない乱数”を作成しました。

http://www.relief.jp/itnote/archives/001798.php
(ページ中程、▼操作手順:重複しない乱数を作成する 以下の部分)

乱数の最初の数字が1から始まる分には問題なくできるのですが、
乱数の数字を、「任意の数字から始めて」、
「任意の数字で終わる」ようにすることは可能でしょうか?

例えば、下記の例でいうと、
6から始まり10で終わる乱数です。

       A列     B列
1行目 / =RAND() / 1-5の範囲でランダムな重複しない乱数
2行目 / =RAND() / 同上
3行目 / =RAND() / 同上
4行目 / =RAND() / 同上
5行目 / =RAND() / 同上
------------------------------------------------------------
6行目 / =RAND() / 6-10の範囲でランダムな重複しない乱数
7行目 / =RAND() / 同上
8行目 / =RAND() / 同上
9行目 / =RAND() / 同上
10行目 / =RAND() /同上

(11以下、繰り返し 略)

よろしくお願いします。

A 回答 (5件)

回答2です。


6から始まり10で終わる数値でしたね。
その場合にはB1セルには次の式を入力して下方にドラッグコピーします。

=IF(A1="","",RANK(A1,INDEX(A:A,ROUNDUP(ROW(A1)/5,0)*5-4):INDEX(A:A,ROUNDUP(ROW(A1)/5,0)*5,0))+5)

先ほどの式に+5をしただけです。
    • good
    • 0
この回答へのお礼

KURUMITOさま、早速のご回答ありがとうございました。

index + match 関数はやっと少しなれきたところなので、
よい経験になりました。

#1さんの回答にもあるように 5を足すですね。
違う数字をいじってました。助かりました。

今後ともよろしくお願いします。

お礼日時:2013/05/14 19:10

A1: =RAND()


D1: =SMALL(OFFSET(A$1,INT((ROW(A1)-1)/5)*5,,5,),IF(MOD(ROW(A1),5),MOD(ROW(A1),5),5))
B1: =MATCH(D1,A:A,0)
「エクセル 任意の数字から始まる重複しない」の回答画像5
    • good
    • 0
この回答へのお礼

mike_gさま、画像付きでありがとうございました(^^♪

D列の関数パターン勉強させていただきます

今後ともよろしくお願いします^^

お礼日時:2013/05/14 19:16

B1に


=RANK(A1,OFFSET($A$1:$A$5,FLOOR(ROW()-1,5),0))+FLOOR(ROW()-1,5)
以下ずらっとコピー。
    • good
    • 0
この回答へのお礼

keithinさん、いつもありがとうございます。^^

FLOOR関数は初めてでした。

勉強させていただきます。

今後ともよろしくお願いします(^^♪

お礼日時:2013/05/14 19:13

A1セルに=RAND()を入力して下方にドラッグコピーします。


B1セルには次の式を入力して下方にドラッグコピーします。

=IF(A1="","",RANK(A1,INDEX(A:A,ROUNDUP(ROW(A1)/5,0)*5-4):INDEX(A:A,ROUNDUP(ROW(A1)/5,0)*5,0)))

5行の範囲ごとに重複しない1から5までの数値が表示されます。
    • good
    • 0

「1-5の範囲でランダムな重複しない乱数」を計算したのと同じ方法で出てきた数に5を足せば「6-10の範囲でランダムな重複しない乱数

」ができる気がしませんか?
    • good
    • 0
この回答へのお礼

f272さま、早速のご回答ありがとうございました。

できる気がします(^^♪

できました(汗

ありがとうございました^^

お礼日時:2013/05/14 19:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!