「夫を成功」へ導く妻の秘訣 座談会

例えばA1に「いぬ」 A2に「ねこ」 A3に「ぞう」 A4に「たぬき」 A5に「きつね」と入力します
次に
B1~B10に 「いぬ」「ねこ」「ぞう」「たぬき」「きつね」のいずれかを自動にランダムに表示する方法を教えてください
こんな便利な機能があれば良いと思うのですが・・・

このQ&Aに関連する最新のQ&A

A 回答 (4件)

=INDIRECT("A"&INT(RAND()/0.2)+1)



INT(RAND()/0.2)+1 で1~5までの整数が得られます。
INT(RAND()/0.1)+1 で1~10までの整数が得られます。
INT(RAND()/0.02)+1 で1~50までの整数が得られます。
INT(RAND()/0.01)+1 で1~100までの整数が得られます。

それでA1からA5、A1からA10、A1~A50、A1~A100のセルの内容を取得しています。A2からなら+2にしてください。
F9キーを押すたびに再計算されて、表示も変わります。
    • good
    • 12

選択肢がもっと多いい場合ですが。

。。
例えば、A1~A20に選択肢が入力されているとして、
randbetween関数とindirect関数を使用すれば可能です。
B1に
 =INDIRECT("A"&RANDBETWEEN(1,20))
と入力してみてください。
randbetween(1,20)は、1から20までの整数で乱数を発生させます。
発生した乱数が10だったとすると、indirect("A"&10)=indirect(A10)となり、
A10のセルを参照します。
randbetween関数はデフォルトではインストールされてないので、
ツール→アドイン→分析ツールを洗濯してください。

A1~A100に選択肢が入力されていれば、randbetween(1,100)とすればOKです。
    • good
    • 13

乱数(rand関数)を使用したらどうでしょうか?


次のようにB1~B10に入力すれば、可能です。
=IF(RAND()<0.2,$A$1,IF(RAND()<0.4,$A$2,IF(RAND()<0.6,$A$3,IF(RAND()<0.8,$A$4,$A$5))))
    • good
    • 3
この回答へのお礼

ありがとうございます。まさに知りたかったやり方です。
RAND関数は知っていたのですが、IFと組合わせるんですね、
実践したいのは
「いぬ」「ねこ」「ぞう」「たぬき」「きつね」をもっと増やしたしのでもう少し短く単純な式だと助かるのですが、もっと簡単なやり方はないですよね・・・。

お礼日時:2007/03/31 21:46

エクセルじゃないとダメですか?


エクセルじゃなくてもいいならランダムで表示できますよ。

エクセルじゃなくてもいいなら抽選王で調べて使ってみてください。
ランダムに出たものをコピーもできるのでそのあとエクセルに貼り付けすることならできます。
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセル指定した範囲からランダムで一つ抽出

エクセルの関数についての質問なのですが、

B1~B5に値がならんでいたとして、B1~B5の中からランダムに一つ抽出したものをA3に表示する関数はありますか?

Aベストアンサー

A3に次の式を入力すればよいでしょう。

=INDEX(B1:B5,RANDBETWEEN(1,5))

Qエクセル関数を使って、ランダム抽出をしたいです

エクセル関数を使って、ランダム抽出をしたいのですが
どの関数を使用すればいいのかわからないのです。

現在、1つのシートにいろいろなデータが入っているのですが、
D列のデータを使い、そのデータをランダムに25件抽出したいのです。

よろしくお願い致します。

Aベストアンサー

Sheet1にデータが入っているとして、そのD列のデータをSheet2のA列に取り出して操作をすることにします。
関数で取り出すのでしたらSheet2のA1セルに次の式を入力し下方にオートフィルドラッグします。
=Sheet1!D1
B1セルには次の式を入力し下方にオートフィルドラッグします。
=IF(A1="","",RAND())
C1セルには次の式を入力し下方にオートフィルドラッグします。
=IF(A1="","",RANK(B1,B:B))
D1セルには次の式を入力し下方にオートフィルドラッグします。
=IF(OR(COUNTIF(C:C,ROW(A1))=0,ROW(A1)>25),"",INDIRECT("A"&MATCH(ROW(A1),C:C,0)))
これでSheet2のD列にはランダムに抽出されたデータが並ぶことになります。
なお、F9のキーを押すことで抽出操作を繰り返すことができます。

Qエクセルで複数のセルをランダムに並べ替えるには?

方法があるのかないのか分かりません
 
エクセルで、数字ではない文字の入った複数のセルをランダムに並び替える方法を知りませんか?
「昇順」、「降順」キーを使えばその通りに並べ替えできるのですが、同様に「ランダム」キーがあって、それを押すとランダムに並べ替えが出来るみたいに簡単に出来る方法はないでしょうか、乱数を発生させる関数を使えば出来るようですが、ちょっと分かりずらく難しいです、
誰か、教えてください

Aベストアンサー

関数だけでは難しいと思います。
いわゆるシャッフルですよね。
例えば次のように行います。
A1~A9まで、田中、鈴木、木村・・・、と名前を入れます。
B1~B9まで、=RAND() と入れます。
すると、B1~B9には、0.987、0.643、0.2122・・・と、乱数が表示されます。
そこで、B1をキーにして、並べ替えを行います。
とすれば、実質A列をシャッフルできます。

参考URL:http://homepage2.nifty.com/mako-chan/excel/excel9.htm

Q表(リスト)からランダムに抽出するには?

Excelで次のような表を作りました。(例として書きます)

1. みかん
2. バナナ
3. もも
4. なし
5. 栗   ・・・(以下同様) と続いていきます。

今回、その表から、ランダムにデータを抽出し、別のセルに書き出したいのですがどうやっていいのかわかりません。(理想図を下に書きます。)


2. バナナ
5. 栗
1. みかん  ・・・・・(以下同様)

このようにして、今ある表から、ランダムに並び替えた、 『新たな表』 を作りたいのです。

どのように関数(RAND関数?)を設定したらいいのかよくわかりません。 教えてください。お願いします。

ちなみにOffice2000です。

Aベストアンサー

こんにちは。maruru01です。

作業列を1列だけ使用した、絶対に重複しない数式での方法です。
元データがA1:B5で、C列を作業列に使用して、D:E列に表示するとします。
まず、C1に、

=INT(RAND()*5+1)

と入力します。次に、C2に、

=LARGE(INDEX(NOT(COUNTIF($C$1:C1,ROW($A$1:$A$5)))*ROW($A$1:$A$5),),INT(RAND()*(5-ROW(C1))+1))

と入力して、C5までコピーします。
そうしたら、D1に、

=INDEX(A:A,$C1)

と入力して、E1にコピー。
さらに、D1:E1を5行目までコピー。

やはり、[F9]を押すたびごとに並べ替えられます。

Qエクセルで複数のセルにあらかじめ用意した単語を重複せずにランダム表示させる方法

当方エクセルの操作について困っております。
会社内で利用したいと思っているのですがうまくいかず途方にくれております。

例としてあらかじめセルA1~A30に人名「鈴木」「田中」「佐藤」等の30個の単語を用意し、
それらをC1~C30に人名が重複しないように表示させる方法をご存知の方がいらっしゃいましたらご教授願いたくよろしくお願いいたします。
当方エクセル操作は社内で簡単な見積書などの書類を作る程度で初心者です。

Aベストアンサー

くじのようにランダムに並べ替えて表示・印刷したいということでしょうか。
用意した単語は重複していないものとして、こんな方法が考えられます(手元の Excel2003 で確認)。

途中計算用にセルを30個用意し(例えば Z1~Z30 など印刷範囲の外に)、
それぞれに "=RAND()" という式を入力する。
次に、C1に "=INDEX($A$1:$A$30,RANK($Z1,$Z$1:$Z$30))" という式を入力し、
このセルをコピーして C2~C30 に貼り付ける。

・RAND() は、 0.0 以上 1.0 未満の乱数を発生させる関数です。
 Z1~Z30 には、異なる30個の数値が入ることになります(重複する可能性は非常に低いはず)
・RANK(数値,セル範囲) は、その[数値]が、[セル範囲]中の各セルの内容の中で何番目に大きいか、を返します。
 C1~C30のそれぞれの中で計算される RANK は、(Z1~Z30 に重複がないとして、)1~30までの重複しない数値になります。
・INDEX(セル範囲、数値) は、[セル範囲]中の[数値]番目のセルの内容を返します。

くじのようにランダムに並べ替えて表示・印刷したいということでしょうか。
用意した単語は重複していないものとして、こんな方法が考えられます(手元の Excel2003 で確認)。

途中計算用にセルを30個用意し(例えば Z1~Z30 など印刷範囲の外に)、
それぞれに "=RAND()" という式を入力する。
次に、C1に "=INDEX($A$1:$A$30,RANK($Z1,$Z$1:$Z$30))" という式を入力し、
このセルをコピーして C2~C30 に貼り付ける。

・RAND() は、 0.0 以上 1.0 未満の乱数を発生させる関数です。
 Z1~Z30 には...続きを読む

QExcel 列データのランダムな並び替え(シャッフル)ってできますか?

こんにちわ。
Excelのデータで、以下のように列データの並び替えを行いたいのですが、Excelの機能でできますでしょうか?
Excelでできなければ、フリーソフトでも結構です。

ご存知の方がいらっしゃいましたら、教えていただけないでしょうか?
よろしくお願い致します。

<元の列データ>       <並び替え後>
良い                 普通
良い                 悪い
良い                 良い
良い                 普通
普通                 良い
普通        →        悪い
悪い                 悪い
悪い                 良い
悪い                 良い
…                  …
  

Aベストアンサー

RAND()関数を使うそうです。
これが参考になるかと。

参考URL:http://d.hatena.ne.jp/fyts/20080222/excel

Qエクセルで1から10の数字をランダムに並び替えたいのですが、わかりません。

 エクセルで乱数表をつくる方法があると聞き、やってみましたが、さっぱりわかりません。宿題で使うので困っています。どなたか、教えて下さい。お願いします。

Aベストアンサー

関数を使います
セルに下の式をコピーして
他のセルにコピー→貼り付けしてみてください
元の関数は、0~1の乱数発生です
それを10倍して、切り上げました。
(切り上げでも丸めでも何でも良いとは思いますが)

=ROUNDUP(RAND()*10,0)

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

QExcelで文字列のランダム表示

当方、Excelは簡単な関数を使うレベルです。
マクロはほとんど使用した事が無く、
VBAは使用したことがありません。

最終的な目標は
同一の問題に対して、回答はランダムな答えを選択を用意するという物です。
例えば
A1に問題
A5-E5に 
L1ーL40の一覧に用意した文字列をそれぞれランダムに入れるという形にしたいと思っています。
現状では答えがかぶってしまっても良いです。
最終的にはボタンで更新となれば理想です。

関数、マクロの使用、VBAの使用でも良いのですが、
できるだけ簡単な方法を探しています。

RAND関数・乱数生成など考えましたが、
考え方が間違っているのか、今の所上手く出来ません。

大変恐縮ですが、何を使用して行うのか、
また、手順を教えていただけると嬉しいです。

Aベストアンサー

RAND関数を使って

  =ROUNDUP(RAND()*40,0)

とすれば、1~40の整数をランダムに取り出すことができます。

K1~K40に順番に1,2,3,・・・,40の数字を入れ、

A5セルに

  =VLOOKUP(ROUNDUP(RAND()*40,0),$K$1:$L$40,2,0)

と式を入力してあげれば、VLOOKUP関数で、乱数で発生した整数に対応する文字列を取り出せます。
A1の式を、B5~E5にコピーしてあげれば完了です。

Qエクセルで条件に一致したセルの隣のセルを取得したい

下のような「得点」という名前のシートがあります。
(「田中」のセルがA1です。)

 [ 田中 ][ 10 ][ 200 ]
 [ 山田 ][ 21 ][ 150 ]
 [ 佐藤 ][ 76 ][ 250 ]
 [ 鈴木 ][ 53 ][ 350 ]

別のシートのA1セルに、「佐藤」と入力すると、

 [ 佐藤 ]

「得点」シートから「佐藤」の列を見つけて、B1、C1に

 [ 佐藤 ][ 76 ][ 250 ]

のように表示させたいのですが、B1、C1にはどのような式を書けば良いのでしょうか。
「得点」シートでは氏名が重複する事はありません。
IF文を使うと思うのですが、いまいち良く分かりませんでした。

よろしくおねがい致します。

Aベストアンサー

こんにちは!
VLOOKUP関数で対応できます。
IF関数と併用すればエラー処理が可能です。

Excel2007以降のバージョンであれば
B1セルに
=IFERROR(VLOOKUP($A1,得点!$A:$C,COLUMN(B1),0),"")
としてC1セルまでオートフィルでコピー!
そのまま下へコピーすると行が2行目以降でも対応できます。

Excel2003までの場合は
=IF($A1="","",VLOOKUP($A1,得点!$A:$C,COLUMN(B1),0))

としてみてください、m(_ _)m


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング