エクセルのプログラムについて質問です
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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) EXCEL 行内のデータを2行に分けて、表を作り直したいのです。教えてください。 5 2023/06/25 14:00
- Excel(エクセル) ExcelのIF関数について 4 2023/05/24 12:54
- Excel(エクセル) アウトラインの小計のやり方 1 2023/03/20 11:51
- Excel(エクセル) [オートフィルター]機能について 3 2023/02/04 14:32
- 計算機科学 2500円の人と2000円の人の集計 2 2023/08/06 07:18
- Excel(エクセル) Excel2019、2021の日付、曜日の表示について 2 2022/11/29 15:01
- Excel(エクセル) 【エクセル」 特定のセルで条件抽出した列を、別シートに上から詰めて表示したい。 8 2022/04/08 16:00
- Excel(エクセル) Excelにの以下の設定方法について教えてください! C列にデータ入力の設定をしています。(出、入を 3 2022/06/22 01:33
- Excel(エクセル) エクセルのvlookupについて質問です 3 2023/01/05 15:15
- Visual Basic(VBA) VBAで早押しゲームを作りたい 4 2022/05/12 13:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル初心者です 関数の入れ...
-
【関数】先頭だけにある、半角...
-
エクセル 白黒印刷で白線を印刷...
-
Excelのチェックボックスの使い...
-
【関数】適切な文字数の数字を...
-
Excelのpivotについて質問です
-
Excel ピボットテーブルで日付...
-
LOOKUP関数を使えばいいのでし...
-
エクセル関数を教えてください
-
エクセルのセルに同じ大きさの...
-
UNIQUE関数が使えないバージョ...
-
excelの不要な行の削除ができな...
-
エクセルで「-0.0」と表示さ...
-
時間によってファイル名が変わ...
-
WPS OFFICEでの縦書きについて
-
エクセルの関数について教えて...
-
Aというブックの1というシート...
-
【マクロ】シート名を取得する...
-
VBA Private Sub Worksheet_Cha...
-
VBA、Excelのworkbook.open に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報