エクセルのプログラムについて質問です
B列 の B2に「b1」、B3に「b2」、B4に「b3」 とします。
C列 の C2に「c1」、C3に「c2」、C4に「c3」 とします。
D列 の D2に「d1」、D3に「d2」、D4に「d3」 とします。
そして、b1=20 、 b2=17 、b3=21
また、 c1=22 、 c2=19 、c3=15
さらに、d1=20 、 d2=18 、d3=19
それらの条件で
「b列から1つ、c列から1つ、d列からランダムに1つずつを選び、その選び出された3つの文字の平均値を 19<x<21 の範囲で選び出す」
とします。
このとき「何通りの組み合わせがあるのか」、その「組み合わせ数」を出すことと、「具体的にどのような組み合わせがあるのか」、その組み合わせを表示したいです。(すべてを表示できるパターンと、例としてコンピューターがランダムに選んだ組み合わせ1つのパターン という2通りの表示の仕方で教えていただきたいです)
すごく、難しいことだと思いますが、お力を化していただけ無いでしょうか?
よろしくお願いいたします。
No.3
- 回答日時:
>3つの文字の平均値を 19<x<21 の範囲で選び出す
判りにくいようなら平均じゃなく総和で
57<3数の和<63
となる組み合わせを拾っていけば,見た目の数字だけで判断できて見通しも進むように思います。
例えばBが20なら残りは37<c+d<43
同様にBが17なら残りは40<c+d<46
同様にBが21なら残りは36<c+d<42であることですから
C+D Bが17 20 21
15+18=33 × × ×
15+19=34 × × ×
15+20=35 × × ×
19+18=37 × × ○
19+19=38 × ○ ○
19+20=39 × ○ ○
22+18=40 × ○ ○
22+19=41 ○ ○ ○
22+20=42 ○ ○ × ○は12個
と言った具合ですね。
>コンピュータがランダムに選んだ1つ
こちらは何を意図しているのかイマイチ不明ですが,総当たりが一覧できてしまえば,その組合わせのリストからランダムに1行選んで終わりです。
一応出来ると言うことではソルバーなどで探索させる手も考えられますが,意味は無いと思われます。
No.2
- 回答日時:
ブルーアタック(総当たり制)方式で、ダブリを排除するという方法です。
'//
Sub CombinationTest()
Dim i As Long, j As Long
Dim n As Long
Dim Ar() As String
Dim a As Double, b As Double, c As Double
Dim av As Double
Dim ret As Variant
Dim rng As Range
'範囲
Set rng = Range("B2:D4")
Application.ScreenUpdating = False
With rng
For i = 1 To 3
For j = 1 To 3
For k = 1 To 3
a = .Cells(i, 1).Value: b = .Cells(j, 2).Value: c = .Cells(k, 3).Value
buf = a & ";" & b & ";" & c
On Error Resume Next
ret = Application.Match(buf, Ar, 0)
On Error GoTo 0
If IsError(ret) Or IsEmpty(ret) Then
av = (a + b + c) / 3
If 19 < av And av < 21 Then
ReDim Preserve Ar(n)
Ar(n) = buf
n = n + 1
End If
End If
Next
Next
Next
End With
For i = LBound(Ar) To UBound(Ar)
'F2 ~書き込み
Cells(i + 2, 6).Resize(, 3).Value = Split(Ar(i), ";")
Next
Application.ScreenUpdating = True
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelの警告について
-
タイムスタンプとテキストから...
-
シートの情報を別のシートへま...
-
マクロの処理が遅くなった
-
Excelでの文字色
-
ワークシートに出現したこの画...
-
EXCELの散布図で日付が1900年に...
-
OFFSET関数を使用したいのです...
-
エクセルでファイルの最終更新...
-
エクセルの文字が途中から消える
-
エクセルデーターから必要な項...
-
Excel 大小比較演算子による「...
-
SUBTOTALは、参照された数字で...
-
エクセルの数式バーのフォント...
-
エクセルの「条件付き書式」を...
-
Excelについて教えてください。...
-
エクセルVBA 月の中で、月~土...
-
Excelの数字の前に入っている空...
-
Excelの関数について このよう...
-
セルの数を求めたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelの警告について
-
Excelで数値を時間数に変換する...
-
エクセルの数式バーのフォント...
-
エクセルで数字の組み合わせを...
-
エクセルを使用して、円周率を...
-
Excelで特定の文字列が含まれて...
-
Excel 対象のセルに入力が無い...
-
任意の値が存在する行に名前を...
-
エクセルでファイルの最終更新...
-
index関数の説明をお願いします。
-
条件付き書式でやりたいのですが
-
重複しない値を取り出したい
-
【ExcelVBA】UTF-8(BOM無)でC...
-
【マクロ】マクロが割当てされ...
-
エクセル IF計算式?でしょうか?
-
エクセルで曜日を入れたい
-
表中の指定した条件の文字列を...
-
【Excel】版が同じ事を示す番号...
-
EXCELの散布図で日付が1900年に...
-
Excelについて。Excelに縦1列に...
おすすめ情報