ちくのう症(蓄膿症)は「菌」が原因!?

ランダム関数で数字をランダムに入力する事が可能だと思うのですが、
数字ではなく、アルファベットのランダムで入力したいのですが、なにか方法はあるでしょうか??

関数じゃなくても、他の方法でも、ご存知の方いらしたら教えてください。

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

A 回答 (10件)

次の関数でできます。



=CHAR(INT((RAND()*2600)/100+97))

この回答への補足

皆様ご回答有り難うございます。
しかし、どの方の回答が一番良いのか、理解できないので全然解りません。。。
特に括弧内の数字を引いたりしてるのは
どのような意味があるのでしょうか?

皆様回答が微妙に違うのですが、出来れば、A~Zまで、
満遍なく表示されるのが望ましいです。

宜しくお願いします。

補足日時:2003/01/20 17:25
    • good
    • 0

#7のものです。

やはりそうでしたか。テストの労、ご苦労様でした。またご自分のご解答について、結果をご公表されたことはご立派なものと思いました。今後ともよろしく。

この回答への補足

大変勉強になります!
何だか盛り上がってるのでもう少し締め切りません。

本当に勉強になります!

補足日時:2003/01/22 21:24
    • good
    • 0

#3です。

#7さんのご指摘通りです。
Rand関数で0-25を1万個作り数えてみました。
0と25は他の半分ほどしか出現しませんでした。
今回はいろいろと勉強になりました。

この回答への補足

大変勉強になります!
何だか盛り上がってるのでもう少し締め切りません。

本当に勉強になります!

補足日時:2003/01/22 21:25
    • good
    • 0

#2です。


Round 関数は、指定した小数桁数を含む数値を返すには便
利ですが、処理される端数が 5 である場合の結果を常に予
測できるわけではありません。端数の処理方法は、内部処
理における数値のバイナリ表示によって異なります。
一方、Int関数は常に倍精度浮動小数点の数値を返します。
従って、Int(○○+0.5)という処理にしている訳です。

この回答への補足

大変勉強になります!
何だか盛り上がってるのでもう少し締め切りません。

本当に勉強になります!

補足日時:2003/01/22 21:25
    • good
    • 0

ご解答の関数式のなかに、Round()を使う解答が


あります。ふと思ったのですが、最初の0の出現頻度が、等しくならないことはないでしょうか。
切り捨てなら問題ないと思うが。()内は正の数だと思うが、0.0-0.4で0、0.5-1.4で1になるので。私の考えはおかしいでしょうか。ご存知でしたら、どなたか教えてください。
    • good
    • 0

#3です。

間違っていました。訂正します。
#2、#4さんが正解です。
CHAR()関数に入れる数値は大文字なら65-90なのでRAND()で作る数値は0-25です。私の場合、0-26になってしまいます。

=CHAR(ROUND(RAND()*26,0)+65) は間違いで
「*26」は「*25」が正しかったです。
=CHAR(ROUND(RAND()*25,0)+65)
=CHAR(ROUND(RAND()*25,0)+97)
=CHAR(ROUND(RAND()*25,0)+65+ROUND(RAND(),0)*22)
が正解でした。

 CHAR()関数は引数に数値を入れると文字を得られる関数です。
 #5さんが書かれているように、半角アルファベット大文字が65-90、小文字が97-122です。
  ご自分で試してみてください。全ての文字には番号が振ってあるのです。
  ちなみに =CODE("A")とすると65が得られます。
    エクセルヘルプの例をご覧ください。

そこで、0以上1未満の数値を作るRAND()関数に25をかけると0以上25未満の数値ができます。それを四捨五入(ROUND関数)したのが#4さんとわたしが訂正した式です。
#2さんの場合、26をかけていますがINT関数は小数点以下切捨てなので0~25が作られる仕掛けになっています。
#3の式の場合、26をかけ四捨五入しているので0~26となり、大文字の場合「[」、小文字の場合「{」が出てきてしまいます。

以上、混乱の原因を作り申し訳ございませんでした。>ALL
    • good
    • 0

#2です。

自分の回答はさておいて、
#3、若しくは#4の方のご回答でよろしいかと。

括弧内の数字の加減は、アルファベットの文字

コード番号 65=A、66=B、・・・ 90=Z
      97=a、98=b、・・・122=z

を 関数 CHAR() に代入するためです。

A~Zまで満遍なく表示されます。
ちなみに#2でも
  =CHAR(INT(INT(RAND()*2600/100)+97.5)
とすれば問題ありません。

要は、CHAR()関数の括弧内に文字コードをランダムに
発生させる処理方法の違いです。

#4の方がおっしゃる1セル5文字なども応用編です
1字を表示させる式を必要文字数分つなげればOKです
再計算されれば表示文字は変わりますが、VBなどを
使い 形式を選択して値を貼り付け すればOKです
 ↓
Selection.pasteSpecial  Paste:=xlValues,Operation:=xlNone,

以降の処理方法は、rikamiさんの使用実態に応じて
当然変わっていきます。

参考URL:http://www.kanzaki.com/docs/jiscode.html
    • good
    • 0

既に出ているご解答では、


(1)1セルに英文字1字ずつ入れる前提ですが、それで良いのでしょうか。
1セル5文字とか、1-7文字の文字列とかも、希望としてあり得ますね。
(2)Rand()はF9を押す(再計算させる)と値が変ってしまいます。それで良いのでしょうか。
(3)値への置換方法には、形式を指定して値で貼りつけ
やF9キーを使う方法があります。後者は単一セルのみ。
(4)=CHAR(RAND()*(122-97)+97)でも良い。

この回答への補足

皆様ご回答有り難うございます。
しかし、どの方の回答が一番良いのか、理解できないので全然解りません。。。
特に括弧内の数字を引いたりしてるのは
どのような意味があるのでしょうか?

皆様回答が微妙に違うのですが、出来れば、A~Zまで、
満遍なく表示されるのが望ましいです。

宜しくお願いします。

補足日時:2003/01/20 17:21
    • good
    • 0

大文字だけ


=CHAR(ROUND(RAND()*26,0)+65)
小文字だけ
=CHAR(ROUND(RAND()*26,0)+97)
大文字・小文字どちらか
=CHAR(ROUND(RAND()*26,0)+65+ROUND(RAND(),0)*22)

INTを使うと、切り捨てられるので26が出る確率が非常に少なくなりますが、Round()で四捨五入していますから、Zも出やすいはずです。

この回答への補足

皆様ご回答有り難うございます。
しかし、どの方の回答が一番良いのか、理解できないので全然解りません。。。
特に括弧内の数字を引いたりしてるのは
どのような意味があるのでしょうか?

皆様回答が微妙に違うのですが、出来れば、A~Zまで、
満遍なく表示されるのが望ましいです。

宜しくお願いします。

補足日時:2003/01/20 17:25
    • good
    • 0

AからZまでの文字列をつくり、


数字をランダムで 出すとき、1から26まで出るようにして、
その文字列の何文字目という風にすれば、 数字がアルファベットになります。
    • good
    • 0

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

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

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

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

Qエクセルで英字と数字を組み合わせたランダムなシリアル番号を作りたいのですが。

5桁から7桁くらいで、英字と数字を組み合わせたランダムな文字列を生成する関数、もしくは数式の記述の仕方を調べています。13pr6y などの文字列がとりあえず1000必要になった場合、どうすればいいでしょうか。よろしくお願いします。

Aベストアンサー

一番簡単にランダムの文字を打ち出すなら
=CHAR(RAND()*93+33)
この例ではASCIIコードで33-126までを出力します。使いたくない文字があるなら下記URLを参考に数値を適当に変更。
http://www.mars.dti.ne.jp/~torao/program/appendix/ascii.html

桁数を増やしたかったら「&」でつなげるだけ。
=CHAR(RAND()*93+33) & CHAR(RAND()*93+33)...

まぁ全部ランダムで記述するとユニークになるとは限らないということが問題になる訳で。その為どこかの桁は連番にでもする必要があるわけで、例えば行数でも取得させれば良いのではないかなと。
もし行数でやるなら単純に
ROW()
で行数は取得できますが、桁数を揃えたいのなら行数が1-9、10-99、100-999のケースなどでif文をネストする必要があります。

Qエクセルでランダムな数値を作成する方法?

よろしくお願いします。
エクセルでランダムな数値(数字、アルファベット大小文字)を作成する方法を教えて頂けますでしょうか?
初期パスワード(8文字)の作成を検討しています。
不明な点がありましたらご質問ください。
よろしくお願い致します。

Aベストアンサー

みなざんすごいですね。
みなさんほどずごい技ではありませんが,
オーソドックスに "関数" で,
それも,"1つのセルだけ" で,
ランダムな8文字を表示させる式を書いておきます。
関数だけなので,マクロ(VBA)は敷居が高いと感じられる方には最適です。
点線内↓を,好きなセルにコピペしていただくとそれでけで使えます。

----------------------------------------
=MID("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",ROUNDDOWN(RAND()*62+1, 0),1) & MID("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",ROUNDDOWN(RAND()*62+1, 0),1) & MID("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",ROUNDDOWN(RAND()*62+1, 0),1) & MID("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",ROUNDDOWN(RAND()*62+1, 0),1) & MID("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",ROUNDDOWN(RAND()*62+1, 0),1) & MID("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",ROUNDDOWN(RAND()*62+1, 0),1) & MID("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",ROUNDDOWN(RAND()*62+1, 0),1) & MID("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",ROUNDDOWN(RAND()*62+1, 0),1)
----------------------------------------
改行を入れているように見えるかもしれませんが,
改行は入りません。一行です。

一度表示されると,どこかに変更があるまで表示されたものは変わりません。
次々に値を変えたい場合は,
「任意のセルをダブルクリック」→「違う任意のセルを選択」
みたいな感じで,どこかを変えてやると再計算されると思います。

また,上に物を1つのセルに書いておいて,
そのセルの右下の四角い "ハンドル" と呼ばれるところを,
下にドラッグしてくだされば,ダーッとコピーできますので,
同時にいくらでも作ることが可能です。
 (※ダーッと連続データをコピーする機能を
 オートフィル というのですが,
 上記の場合連続データではなく,
 同じデータがコピーされるので,
 あえてオートフィルという言葉を使わず,
 ダーッ とコピーする機能を説明しました。)

しかし,上のようにごちゃごちゃした式では,
いくら達人が見ても何が書いてあるのかは,パット見ではわからないと思います。
実は簡単な関数の寄せ集めなんですけどね。
ごちゃごちゃでわかりにくいと思うので,一応説明しておきます。
長いと言っても 798 文字です。
セルの限界文字数 32,767 文字 にはまだまだ余裕があります。

その 798 文字ですが,
これ↓を & で8つつないであるだけです。

MID("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",ROUNDDOWN(RAND()*62+1, 0),1)

0123~xyz では説明しにくいので, ABC 3つの文字をランダムで表示させる説明をします。
ABC のうち,いずれかをセルに1文字だけ表したい場合は次のようになります。

=MID("ABC",ROUNDDOWN(RAND()*3+1, 0),1)
                  ~~~~~~~~~~~~
この式の内側の方から順に説明します。↑この辺から。


● RAND()
これで 0以上 で 1より小さい乱数を発生させています。
例えば 0.01157419 や 0.000758051 や 0.521826145 などが得られます。

● RAND()*3
これで 0以上 で 1より小さい乱数を発生させています。
例えば 0.718085026 や 1.893125115 や 2.270737312 などが得られます。

● RAND()*3+1
これで 1以上 で 4より小さい乱数を発生させています。
例えば 1.671347006 や 2.29873088 や 3.604818428 などが得られます。


次に ROUNDDOWN 関数が登場します。
ROUNDDOWN 関数は、数値を指定された桁数で切り捨てます。
例えば =ROUNDDOWN(3.2, 0) は
3.2 という数の,小数点以下 0桁で切り捨てろ。ということで,
この場合 3 という値が得られます。

● ROUNDDOWN(RAND()*3+1, 0)
これで 1以上 で 4より小さい整数の乱数を発生させています。
つまり
1~3のランダムな整数が発生します。


次に MID 関数が登場します。
MID 関数は、文字列の任意の位置から指定された文字数の文字を返します。
例えば =MID("ABC",2,1) は
文字列 ABC のうち,2番目から1文字だけを表せ。ということで,
この場合 B という値が得られます。

● MID("ABC",ROUNDDOWN(RAND()*3+1, 0),1)
これで 文字列 ABC のうち 1~3のランダムな整数 番目の文字から1文字だけが得られます。
こういうことです。→ MID("ABC", 1~3のランダムな整数 ,1)

これを, & でつなぐと,次のようになります。

=MID("ABC",ROUNDDOWN(RAND()*3+1, 0),1) & MID("ABC",ROUNDDOWN(RAND()*3+1, 0),1)

この式で, AA または AB または AC または… … CC のうちいずれかが表示されます。
それで,ABC という 3つの文字ではなく,
0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
という62個の文字の場合は,

=MID("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",ROUNDDOWN(RAND()*62+1, 0),1)

となるわけで,これを8つ & でつないだのが最初の点線内の式です。

以上です。


=== === 補足 === === === === === ===

上記のものは,わざと1つのセルに書いただけで,普通はセルを分けると思います。

例えば
まず,A1セルに

0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

というデータを用意しておいて

A2セルには
=MID(A1,ROUNDDOWN(RAND()*LEN(A1)+1, 0),1)
B2セルにも同じく
=MID(A1,ROUNDDOWN(RAND()*LEN(A1)+1, 0),1)
C2セルにも同じく
=MID(A1,ROUNDDOWN(RAND()*LEN(A1)+1, 0),1)
  …       …

と H2 セルまで書いて置いて,

A3セルに,

=CONCATENATE(A2,B2,C2,D2,E2,F2,G2,H2)

と書けば,
A2,B2,C2,D2,E2,F2,G2,H2 がつながった値が A3セル に得られます。
関数でも他にも方法はたくさんあります。1つの方法例だと思ってください。

LEN(A1) は A1セルの文字数を求める式です。
# とか ? とかを追加したいときに A1 の文字データだけを変えれば他はさわらずに値が得られます。
CONCATENATE() は複数の文字列を結合して 1 つの文字列にまとめる関数です。

CONCATENATE関数が出てきたついでにさらに補足。
最初の式はわかりやすくするために & でつないでいますが,
=CONCATENATE() でくくっても良いです。

----------------------------------------
=CONCATENATE(MID("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",ROUNDDOWN(RAND()*62+1, 0),1),MID("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",ROUNDDOWN(RAND()*62+1, 0),1),MID("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",ROUNDDOWN(RAND()*62+1, 0),1),MID("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",ROUNDDOWN(RAND()*62+1, 0),1),MID("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",ROUNDDOWN(RAND()*62+1, 0),1),MID("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",ROUNDDOWN(RAND()*62+1, 0),1),MID("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",ROUNDDOWN(RAND()*62+1, 0),1),MID("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",ROUNDDOWN(RAND()*62+1, 0),1))
----------------------------------------

これでもOKです。
って,「もーエェわ!」
って感じですね。失礼しました。

みなざんすごいですね。
みなさんほどずごい技ではありませんが,
オーソドックスに "関数" で,
それも,"1つのセルだけ" で,
ランダムな8文字を表示させる式を書いておきます。
関数だけなので,マクロ(VBA)は敷居が高いと感じられる方には最適です。
点線内↓を,好きなセルにコピペしていただくとそれでけで使えます。

----------------------------------------
=MID("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",ROUNDDOWN(RAND()*62+1, 0),1) & MID("0123456789ABCDEF...続きを読む

QExcelで事前にセルに入力した言葉をランダムに表示

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

Aベストアンサー

=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キーを押すたびに再計算されて、表示も変わります。

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

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

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

Aベストアンサー

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

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

Qランダム関数で任意の桁数のランダム数字を作りたい

エクセル2000ユーザーです。ランダム関数を使い、重複を許さない5桁のランダム数字を1000個作りたいと思っています。randbetween関数を使おうと思ったのですが、2000では使えないのか、NAMEといったエラー表示がでます。5桁の中は同じ数字がでてきても構いません。例:11295、43634、70676・・・etc。
が、1000個の中では同じ数字が重複しないようにしたいです。

=RIGHT(RAND(),5)

のように考えたのですが、他にいい方法はありますでしょうか?
マクロやVBAは苦手なので、できれば関数でいいやり方があれば教えてください。

Aベストアンサー

=RIGHT(RAND(),5)
だと、末尾に0が連続するようなケースで不正な結果になってしまう可能性があります。
=RIGHT(INT(100000+100000*RAND()),5)
というのはどうでしょうか?
それから、1000/100000なので確率は低いかもしれませんが、重複はありえます。(100個に1個ぐらい)
1100個ぐらい生成して、重複するものは排除してください。

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かなで書かれた文字をアルファベットに変換できませんか?

エクセルででも、なんででもいいのですが、かなで書かれた文字をアルファベットに一度に変換できないでしょうか? たとえば、エクセルの関数phonetic を使えば、漢字を仮名に変換できますよね? それと同じように、仮名をアルファベットに変換する方法はないでしょうか? もし、そんな便利なことができたら、とってもうれしいのですが。。

よろしくお願いいたします。m(__)m

Aベストアンサー

以前、似た質問に回答しました。

No.806286 質問:Excelで五十音順に並べ替えたい
http://oshiete1.goo.ne.jp/kotaeru.php3?q=806286

No.8の手順3)で、

kakasi -Kj -Jj

を実行すると、

(株)アイウエオ
(株)イノウエ
(株)ウラシマ
(株)阿部商店
(株)石井商店
(有)アイウエオ

(kabu)aiueo
(kabu)inoue
(kabu)urashima
(kabu)abeshouten
(kabu)ishiishouten
(ari)aiueo

と変換できました。

参考URL:http://kakasi.namazu.org/, http://oshiete1.goo.ne.jp/kotaeru.php3?q=806286

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

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

Aベストアンサー

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

=ROUNDUP(RAND()*10,0)

QExcelで日別に入力されたデータを月別に集計するにはどうしたらいいのでしょうか。

Excelで月別の集計をしたいのですが
例えば
  日付    数量
10月25日  200
10月27日  150
10月30日  120
11月 1日  200
11月 3日  150
のように、日付が飛び飛びで連続していなくい日々の数量を、上の行から順番に入力していった場合に(月が替わる行が決まっていない)月別の集計を取る方法はないでしょうか。


 

Aベストアンサー

どのように集計する月を指定するのかが書かれていませんが、例えば11月分の合計を出したいなら

1)11月までの合計から10月までの合計を引く方法
 =SUMIF(A:A,"<=11/30",B:B)-SUMIF(A:A,"<=10/31",B:B)

2)月が「11」のB列を合計する方法
 =SUMPRODUCT((MONTH(A2:A100)=11)*(B2:B100))

なども考えられます。

でもエクセルなら一番オーソドックスな方法はピボットテーブルでしょう。C列に
 =TEXT(A1,"YYYY/MM")
で「2008/11」のような文字列を生成しておいてピボットテーブルで集計すれば、シート上にある全ての月の合計が一発で求められます。
ピボットテーブルの使い方はGoogleなどで検索したらたくさん見つかります
http://www.viplt.ne.jp/tomy/pibot.html


人気Q&Aランキング

おすすめ情報