エクセルのプログラムについての質問
- エクセルのプログラムに関する質問です。B列、C列、D列からそれぞれ1つずつランダムに選び、その平均値が19~21の範囲になる組み合わせの数と具体的な組み合わせを求めたいです。
- エクセルのプログラムについて質問です。B列、C列、D列から1つずつランダムに選び、その平均値が19~21の範囲になる組み合わせの数と具体的な組み合わせを教えてください。
- エクセルのプログラムについての質問です。B列、C列、D列からランダムに1つずつ選び、その平均値が19~21の範囲になる組み合わせの数と具体的な組み合わせを知りたいです。
- ベストアンサー
エクセルのプログラムについて質問です
エクセルのプログラムについて質問です 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通りの表示の仕方で教えていただきたいです) すごく、難しいことだと思いますが、お力を化していただけ無いでしょうか? よろしくお願いいたします。
- callaoff
- お礼率57% (4/7)
- オフィス系ソフト
- 回答数3
- ありがとう数8
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 全ての組み合わせを表示する方をやってみました。 下記の画像を参照してください。 あとは、ヒントだけ。 ●平均 =SUM(E2:G2)/3 ●判定 =IF(AND(H2>19,H2<21),"O","X") では。
その他の回答 (2)
- keithin
- ベストアンサー率66% (5278/7940)
>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行選んで終わりです。 一応出来ると言うことではソルバーなどで探索させる手も考えられますが,意味は無いと思われます。
- Wendy02
- ベストアンサー率57% (3570/6232)
ブルーアタック(総当たり制)方式で、ダブリを排除するという方法です。 '// 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
- エクセルVBAで表の平均値を出す。
はじめまして、よろしくお願いします。 シート2に A B C D ・ ・ ・ ・ IV 1 赤 青 ・ ・ ・ ・ ・ 2 7 14 ・ ・ ・ ・ ・ 3 6 12 ・ ・ ・ ・ ・ 4 5 10 ・ ・ ・ ・ ・ 5 4 8 ・ ・ ・ ・ ・ 6 3 6 ・ ・ ・ ・ ・ 7 2 4 ・ ・ ・ ・ ・ 8 1 2 ・ ・ ・ ・ ・ 9 という表があります。その表の(C5-C6),(C4-C5),(C3-C4),(C2-C3)の平均値をシート1のC2へ、同じく(D5-D6),(D4-D5),(D3-D4),(D2-D3)の平均値をシート1のD2へ、列IVまで計算するVBAの仕方を教えていただきたいと思います。実際のシートでは計算行数はかなり多くなります。列では途中空白列があります。できる方、よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセル2000で・・・
初歩的な質問ですが、 D列に数字(一桁又は二桁)を入力することで C列に名前(個人名)を入れたいのです。 よくあるパターンだと思いますが仮にD4に 「10」と入力するとC4に「松井」と表示させる。 D5に「7」と入力するとC5に「山田」と表示させる。 名前と数字の組み合わせは10通り程あります。 初心者ですので解り易く教えて頂けると嬉しいです。
- 締切済み
- オフィス系ソフト
- エクセル配列数式について
A列(A3:A42)に氏名 B列(B3:B42)に性別 C列(C3:C42)に第1回テスト成績 D列(D3:D42)に第2回テスト成績 が入力してあります。 性別が"男" かつ 第1回テスト成績が350以上 かつ 第2回テスト成績が350以上 の条件を満たす配列数式を {=COUNT(IF((B3:B42="男")*(C3:C42>=350)*(D3:D42>=350),B3:B42,""))} だと正しい回答がでません IFの真の場合の欄をC3:C42またはD3:D42にすると正しい値がでます なぜC3:C42だとだめなのでしょうか?
- ベストアンサー
- オフィス系ソフト
- Excelについての質問です。
エクセルについての質問なのですが、 A列の数値だけをB列から選び出して、そこから更に選び出したBと同じ行にあるCをDに代入したいのですが、どのようにすればよいでしょうか? A B C D 1 0.1 0.1 5 2 0.5 0.3 10 3 1.2 0.4 20 4 2.3 0.5 40 5 3.7 0.7 80 6 4.7 1.0 160 7 5.9 1.2 320 わかりにくい表ですが、この場合 A1の「0.1」、B列で「0.1」といえばB1になります。それをBと同じ行のC1の数値「5」をD1に代入。 A2の「0.5」、B列で「0.5」といえばB4になります。それをBと同じ行のC4の数値「40」をD2に代入。 A3の「1.2」、B列で「1.2」といえばB7になります。それをBと同じ行のC7の数値「320」をD3に代入。 D 1 5 2 40 3 320 4 ・ 5 ・ 6 ・ という結果にしたいのですが・・・。 これは可能なのでしょうか? わかりづらい質問ですが、宜しくお願いします。
- ベストアンサー
- その他([技術者向] コンピューター)
- エクセル2000の計算式の範囲の固定
簡単な計算式の入力(範囲指定)がしたいのでわかる方 ご教授ください。 以下のようなデータがあります。 A列 B列 1 い支店 15 2 ろ支店 6 3 は支店 80 4 に支店 112 5 ほ支店 15 6 へ支店 6 7 と支店 32 以下1400行ほど これらのデータを C列には「セルC1」から1~1400という数字を入力し D列に計算式(B2:B1400,C2)を入れました。 コピー&ペーストをするとD2は=COUNTIF(B2:B1400,C2) D3は=COUNTIF(B3:B1401,C3)、D4は=COUNTIF(B4:B1402,C4)・・・となり、 本来入れたい式D3=COUNTIF(B2:B1400,C3)、D4=COUNTIF(B2:B1400,C4)・・・とは範囲の部分が一つずつずれてしまいます。 この計算式の範囲「B2:B1400」を固定したままにすることはできないのでしょうか。 教えてください。
- ベストアンサー
- オフィス系ソフト
- エクセルで複数の値の組み合わせによる判定
エクセルで下記の様にA列には4種類の文字列、、B列には2種類の文字列、C列には8種類の文字列がランダムに入っています。 行は600列ほどあります。 A、B、Cの列の文字列の組み合わせによるパターン別に予め数値を設定しています。 例えば2A+A+い=3、2A+B+お=7 という風に割り当てる数値を決めています。 D列にはそのパターン別の決まった数値を表示したいのです。 存在する組み合わせは45種類です。(すべての組み合わせがあるわけじゃ無いので少し少ないです) D列に入れる式を教えて頂けないでしょうか? 宜しくお願い致します。 A列 B列 C列 D列 2A A い 3A B あ 3B B き 4A A え 3A A お 2A B く 4A A う 3B B か
- ベストアンサー
- オフィス系ソフト
- エクセルでの計算式を教えて下さい。
エクセルでの計算式を教えて下さい。 概要はある列のセルの数値と別のセルの数値の組合せによって、特定のセルの数値をコピーして別のセルにそれを表示させる。 具体的には、A列に入ってる数値と同じ行のB列に入ってる数値の組合せパターンにより、予め設定しておいたパターン別の数値をコピーしてそれをC列に表示させます。 つまりA列に1、B列に2という数値が入った時には、1と2の組合せパターンですよね。 Aが1、Bが2の組合せの時には33.5という数値が予めどこかのセルに用意してあり、それをコピーしてC列に表示する。 Aが5、Bが3の組合せの時には27.4という数値があり、それをC列に表示するといった具合です。 A列の数値は1~18、B列の数値も1~18のいずれかです。 組合せパターンは最大で324通りあり、組合せ別の数値には規則性はないので、予めどこかに記入しておきます。 この様な作業を出来る式を教えて下さい。
- ベストアンサー
- オフィス系ソフト
- Excelで組み合わせ
Excel2007で記号の組み合わせの計算がしたいです。パターンの出力と言うんですかね?ちょっとその辺の単語力に乏しいのですが…。 質問させていただきます。 A列、B列、C列、D列の10行目までにアイウエオカキクケコのいずれかがが各セルに入ってます。A列×B列×C列×D列 4個×5個×3個×6個=360通り 何通りでもいいのですが できたパターンをF列に一通りずつ(できるならまとめて一発ででもいいのですが)上から入れていきたいです。全部4文字固定です ご協力お願いします。
- ベストアンサー
- Excel(エクセル)
- エクセルの関数について
A列に1,2,3・・・と回数があり、B列に一桁の数字(0~9)がランダムにあり、C列(C1)には『=IF(B1=1,"○","")』とあり、C2以降オートフィルでコピーされています。 B列の数値が『1』の時にだけC列に『○』が入りますが、D列に『C列の○と○の間隔』を数字で表示したいのですが、『=IF(B10=1,COUNTBLANK(C2:C9)+1,"")』としても、オートフィルで全てのD列にコピーしても参照セル範囲がランダムなので上手く行きません。 ○印が出現したら直前回の○印からの出現間隔を関数で自動表示したいのですが、関数が分かりません。あるいは関数の組合せ方法が思い浮かびません。 分かりやすく言うと、例えばナンバーズなどのある桁の0から9までの数字のうち、任意の数字が出現するたびにその横の列に○印を付け、さらにその横の列に出現した間隔を自動で表示できる関数が知りたいのです。 言葉で上手く表現できませんが、分かる方教えて下さい。お願いします。
- ベストアンサー
- オフィス系ソフト
- エクセル関数の質問です。
A1~A6を使って6種類、B1~B6を使って6種類、C1~C2を使って2種類、D1~D2を使って2種類の組み合わせをエクセルでできないかなあと思っています。 それぞれの列からひとつずつの抽出で、何パターンの組み合わせが出来るか、というような式はありますでしょうか。 昔数学でやったような気もするんですが、思い出せません・・・。 エクセル関数がなければ、数学の式でもいいです。 シグマとかってこれでしたっけ…? どなたかお願い致します。
- ベストアンサー
- Windows XP
お礼
ありがとうございます。 でも、どーーーーーーーーーーしても、頑張ってみましたが、わかりません。。。。 その表示の方法を教えてくださいませんか???? お願いします。