Excel2000で例えば、
セルAの列に1~100まで数字があって、セルB1に、セルA列の数字1つを
アトランダムに表示させる方法はないものでしょうか?

A 回答 (2件)

こんな感じですか


B1=OFFSET(A1,INT(RAND()*100),0)
    • good
    • 0
この回答へのお礼

早速の解答ありがとうございます。
教えてもらった通りにしたら、出来ちゃいました!!
これで1つ仕事が楽になりました!!どうもです。
なんでこんなすごいのしってるんでっすか?自分から言わしてもらえば、
超・天才って感じです!!

お礼日時:2001/05/10 16:41

B1に


=INDEX(A1:A100,ROUNDUP(RAND()*100,0),1)
と入力します。
(A列の数字がA1からA100にある場合)
F9キーを押すたびにランダム値が変更されます。
rand関数のヘルプで詳細をご確認下さい。

rand()で0以上1未満のランダムな値が得られますので
それを100倍し、小数点以下切り上げで整数にしています。
index(範囲,行番,列番)で行番を1から100のランダム値を適用し範囲内の数字を検索させます。
    • good
    • 0
この回答へのお礼

解答有難うございます。
やってみたものの、ちょっとできません。やり方が悪いとおもいますけど・・・
もう一度トライしてみます。

お礼日時:2001/05/10 16:44

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

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

Q例えば、AさんからGさんまでがA列に縦に並んでいてB列に数字が入っています。B列にある数字の合計をA

例えば、AさんからGさんまでがA列に縦に並んでいてB列に数字が入っています。B列にある数字の合計をA-Gさん別々に出したいんですが簡単なvbaの記述方法はないでしょうか?
お願いします。

Aベストアンサー

こんばんは!

A列のA~Gさんは複数存在しているのでしょうか?
そうであればSUMIF関数で対応できると思いますが、VBAをお望みだというコトですので
一例です。

元データはSheet1にあり、Sheet2に表示するとします。
尚、Sheet1の1行目は項目行でデータは2行目以降にあるという前提です。
標準モジュールにしてください。

Sub Sample1()
Dim lastRow As Long, wS As Worksheet
Set wS = Worksheets("Sheet2")
wS.Cells.ClearContents
With Worksheets("Sheet1")
.Range("A:A").AdvancedFilter Action:=xlFilterCopy, copytorange:=wS.Range("A1"), unique:=True
lastRow = wS.Cells(Rows.Count, "A").End(xlUp).Row
With Range(wS.Cells(2, "B"), wS.Cells(lastRow, "B"))
.Formula = "=SUMIF(Sheet1!A:A,A2,Sheet1!B:B)"
.Value = .Value
End With
End With
End Sub

こんな感じではどうでしょうか?m(_ _)m

こんばんは!

A列のA~Gさんは複数存在しているのでしょうか?
そうであればSUMIF関数で対応できると思いますが、VBAをお望みだというコトですので
一例です。

元データはSheet1にあり、Sheet2に表示するとします。
尚、Sheet1の1行目は項目行でデータは2行目以降にあるという前提です。
標準モジュールにしてください。

Sub Sample1()
Dim lastRow As Long, wS As Worksheet
Set wS = Worksheets("Sheet2")
wS.Cells.ClearContents
With Worksheets("Sheet1")
.Range("A:A...続きを読む

Q【EXCEL】数式=SUM(A1*B1+A2*B2+・・・+A100*B100)を簡略化したい

お世話になります。

今Excelで、A1~A100とB1~B100まで数値が入っています。
セルC1に「=A1×b1」、C2に「=A2*B2」…C100に「=A100*B100」と入力しました。
そしてセルC101に「SUM(C1:C100)」と入力して合計を出しました。
(実際はもっと複雑な計算なのですが、説明の為に簡略化しています)

そうすると、計算結果セルが多く発生するためファイルサイズが莫大になってしまうのと、それを数千行×6列以上を一気に計算するとXPのリソースが足りないと出て計算できません。
なので2~3列ずつ何回も数式コピペを繰り返すことになっています。

そこで【別セルに掛け算をしてから全部SUMで足す】のではなく【1つのセルに掛け算とSUMを組み込む】という事を考えて
=SUM(A1*B1+A2*B2+・・・+A100*B100)を
を入力しようとしたのですが、数式が長すぎて四苦八苦です。

この式、なんとか簡略化できませんか?

Aベストアンサー

積の合計なら
=SUMPRODUCT(A1:A100,B1:B100)
でいいのでは?

QA1に数字の1を入力するとB1の値がA1に表示、A2に数字の2を入力するとB2の値がA2に表示

エクセル初心者です

セルのA1に数字の1を入力するとB1の値がA1に表示、A2に数字の2を入力するとB2の値がA2に表示されるようなものを作りたいのですが・・・
どなたかご教授お願いします

例えば、A1に1を入れるとB1の値"北海道"がA1に表示され、A2に2を入れるとB2の値"青森"がA2に表示といった感じでです

宜しくお願いいたします

Aベストアンサー

No3,5,6です。
補足要求をしましたが時間がないので、No6での以下の理解、

B4がROOT,C4が♭9,D4が9,E4がm3,F4がM3~M4がM7
置き換え対象はB6:W11の範囲

ということでいいのなら以下で出来ます。

1.シートのタブを右クリックし、コードの表示を選択
2.出てきたVBエディター(白い画面)に下記をコピペ

Private Sub Worksheet_Change(ByVal Target As Range)
Dim x
If Intersect(Target, Range("B6:W11")) Is Nothing Then Exit Sub
x = Target.Value
Application.EnableEvents = False
Target.Value = Range("A4").Offset(0, x)
Application.EnableEvents = True
End Sub

3.AltキーとF11キーを一緒に押してワークシートへもどります。

QEXCELの計算でセルA1に数字、A2に数字ではなく×をいれてA3にはA1とA2の積をいれたいのですが

×をEXCELに1と解釈させたいのです。
つまり、A1に「5」、A2に「×」をいれるとA3は「5」が入るようにしたいんです。
マトリックスをつくっているのですが、
×を「1」にしたくないんです。
ご回答お待ちしております。

Aベストアンサー

A2は×以外の場合もあるのでしょうか?
その場合は、どういう処理をするのでしょう?

A3セルに、
=IF(A2="×",A1,"")
でどうでしょうか?
 A2セルが×であれば、A1を表示し、それ以外の場合はA3セルは""、つまり何も表示しません。

先に書いたように、×以外に、○なら2倍、△なら3倍とか、A2セルの内容により変わるのなら、もっと工夫が必要です。

Qエクセル2007で例えばセルA1~A100まで数字が入力されているとし

エクセル2007で例えばセルA1~A100まで数字が入力されているとします。この範囲の同じ数字だけ抽出(桐みたいような単一化機能)する方法はありますか?
例セル 1,5,6,7,5,8,9,8,2
抽出後 1,2,5,6,7,8,9

Aベストアンサー

A1~A100を選択し、ホームタブの「データ」「詳細設定」で「重複するデータは無視する」にチェックを入れ(必要に応じて抽出範囲を指定して)、「OK」すれば重複のないデータが抽出されます。


このカテゴリの人気Q&Aランキング

おすすめ情報