• ベストアンサー

エクセルで変数を次々変えて計算させられる?

こんばんは いくつかの変数を与えると答えが出るようなエクセルシートに、変数を変えながら与えてそれらの答えを次々求めるようなことができるでしょうか。 話を単純化すると次のような感じです。 B2, D2, F2 に変数を入れると、(関数では書けないような計算をして)その答えが、B8, C8, D8 に出るとします。 このとき、3つの変数の組み合わせをたとえば100通り設定して、おのおのある行の J,K,L 列に書くと、それをB2, D2, F2 に代入し、それぞれの組み合わせに対するB8, C8, D8 の答えが同じ行の M,N,O列に出るというようなことが可能でしょうか。 いろいろ調べてみても見つからないのですが、あればとてもありがたいのです。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.8

見当違いでしたらごめんなさい。 一見したところ、シナリオという機能でできるような気がします。 シナリオとは、あらかじめセルの数値を数パターン登録しておくことのできる機能です。 【操作方法】 数値を変化させたいセルを範囲指定します。 [ツール]メニューから[シナリオ]を選択します。 シナリオ名を付け、OKをクリックます。    ※シナリオ1など それぞれのセルに数値を入力し、追加をクリックします。 これを繰り返し、複数のパターンを登録します。 あとは、適用したいシナリオを選択し表示をクリックします。 いかがですか?

kankororin
質問者

お礼

ありがとうございました。問題が徐々に明らかになったので、整理して質問しなおしたいと思います。

kankororin
質問者

補足

ありがとうございました。これが近いです! ただ: http://www.rericca.com/qa/ex12.html これを見ると、1つのパラメーターの組ごとに1回シナリオを作らないといけないようですね。本当は100組よりもずっと多いケースの試行をさせたいので、ちょっとこれだときついのですが…^^;)。 引き続きよろしくお願いいたします。

その他の回答 (8)

  • north_2nd
  • ベストアンサー率22% (55/243)
回答No.9

#3です >複数の評価項目が出ます。 というのがM,N,Oってことですね? そしたら多分わたしの理解は合ってそうに思えるので2の追加。合ってなかったらごめんなさい。 なんのことはなくてマウスでドラッグするだけで出来ると思います。 2’.入力と出力場所を変える1  B2を選択する  辺をマウス左クリックでセルをJ1とかに移動。  D2,F2も同様にK,Lへ  B8,C8,D8も同様にMNOへ移動。 (*)で、100通りをJKLの下の方へずらずら書く。  M1,N1,O1を選択する。  選択範囲の右下にマウスを置くと十になるのでその状態で左クリックしたまま下に引っ張る。ずずずと。  で、所望の結果が出来そうに思います。 2’’。B2D2F2、B8C8D8とかを残したい時  ついでに上記場合  B8C8D8をそのままMNOへコピー。  MNOにコピーしたものの中でB2D2F2が書かれている部分をJ1,K1,L1に変更。    あとは2’の(*)から先をやる。  どうでしょう?

kankororin
質問者

お礼

ありがとうございました。 やってみましたが、B8をM1に持ってきた場合、こんどM2では、B8で使っている式(例えば、SUM(B3:B7) みたいな感じ)が一つ下にずれる、ということになるので、所望の動作とは別のことになるようです。 感じとしては「シナリオ」のところに書いたようなものです。 引き続きよろしくお願いいたします。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.7

#5です。 >例えば、トータルの個数、ロットの数、余裕の率です。この3つの数をいろいろ変えたそれぞれの場合に対して、複数の評価項目が出ます。 >400,40,1.5) >(400,30,1.4) >(420,40,1.5) >(420,30,1.4) … いずれにしても、元の計算式やその計算の計算過程がなければ、作りようがありませんね。いままで、どうしていたかを書いていただかないと、分かりません。

kankororin
質問者

お礼

ありがとうございました。補足を上に書きます。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.6

私も質問者のイメージがつかめてない。 しかし下記の記述の中に何か、質問者のもやもやを少しでも晴らす記述がないかと思って書きます。 エクセルは、プログラムのようには考えない(考えられない)。 プログラムは、変数xにはあるときa,変数yにはそのときbと入れて(決めて)、計算など処理をさせ、aとbまたは1方を変えて同じパターンの計算や処理をさせる。中間結果はメモリ上で次ぎの処理に使われ、消えていく(使い捨てする)場合も多い。 エクセルは、セルの同一行に有ることを、[組である]と言う前提のもとに、シートのセルに変化した「値」を実際に展開すべきという方式である。 抽象的な、「組み合わせの全て」などの表現では、役に立たない。 すべて利用者・人間がお膳立てをして、具体的な数値や文字列にしないといけない。 プログラムのようにスタートと増分を指定してやって、逐次実行するのは、連続データの作成をセル上で実現してやることにより、その手助けがある。 プログラムの一瞬一瞬が1行1行に記録されていて、エクセルの関数で実行できるなら結果が出るということになる。 しかし熟達の士なら、私製関数で近似値を出す関数など作ってしまえるので、普通のエクセル関数の整式的関数ばかり(に限る)とは言えない。 例外はゴールシークなどのツールやウイザードと思う。 これらは熟達の士がプログラムを組んで、初期条件の設定や、結果のアウトプットにセルを利用しているだけのように思えるので、ワードやメモ帳に出しても良いものと思う。 質問では(A)変数として使うのを指定する場所と (B)変化して採りえるデータ組のある場所を分けているが、計算や作業を関数(エクセル巻数とは限らない)で表し、式の複写で、行ごとの計算をさせるほかない。 それをしないなら、VBAが出て行くよりほかない。 どちらにしても、(A)と(B)は分ける理由はない。 関数式を入れる=>データのあるところを指定する=>GO=>結果が順次出るという仕組みも、ソフトウエアの概念的には進んだものかもしれないが。 ピントはずれを懸念しつつ。

kankororin
質問者

お礼

ありがとうございました。たしかにプログラムの方が考えやすいのですが、途中の計算がエクセルの方がやりやすいのです…

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.5

こんばんは。 この前も同じような質問がありましたが、ロト6見たいな組み合わせは無理です。 >3つの変数の組み合わせをたとえば100通り設定して、 a,b,c とすれば、 Permut(3,3) = 6 通り -------------- a,b,c a,c,b b,a,c b,c,a c,a,b c,b,a たとえば、20個の中から、3つを並べる順列を100通り求めても、それは数学的に中途の計算にしかならないと思います。いずれにしても、この種のものは、マクロでもかなり難しいです。

kankororin
質問者

お礼

ありがとうございます。 下にも書いたとおり、本当の「変数」ではなく、 (400,40,1.5) (400,30,1.4) (420,40,1.5) (420,30,1.4) … みたいな感じで変えていきたいわけです。 さらによろしくお願いいたします。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.4

> 関数では書けないような計算をして が何なのか?にもよりますが。 EXCELには「ゴールシーク」という機能がありますが、そっちは検討されましたか?

kankororin
質問者

お礼

ありがとうございました。問題が徐々に明らかになったので、整理して質問しなおしたいと思います。

kankororin
質問者

補足

ありがとうございます。ゴールシークとはちょっと違う目的だと思います。

  • north_2nd
  • ベストアンサー率22% (55/243)
回答No.3

二つ思いつきますがわたしなら前者を試してみます。 1.マクロをつかう  ツール → マクロ → 新しいマクロを作る をやってから  B2で =J1 , D2=K1 , F2= l1 をやってから  B8をコピーしてM1に形式選択貼り付けで値を貼り付ける。  N,Oも同じことする で、マクロ記録を閉じる。  この後ツール→マクロのベーシックエディターを起動して、J1とかの数字部分を1~100までループさせます。 2.入力と出力場所を変える  J1,k1,l1 に値を入れると M,N,O に計算結果が出るように微妙に作り直しておいてから、JKL列に組み合わせを入力、MNOを一気にコピーして100行作る。  2は見落としが有りそうな気がするけど、きっと1でいけるでしょう。

kankororin
質問者

補足

ありがとうございます。説明の要領が悪くてすみません。 3つの「変数」というのは、3つの具体的な数で、例えば、トータルの個数、ロットの数、余裕の率です。この3つの数をいろいろ変えたそれぞれの場合に対して、複数の評価項目が出ます。それらを眺めて、総合的に判断しようというものです。いちいち3つの変数を手で入れていくのでは面倒で一覧性もないので、一括で計算できないかというわけです。 すみません、1は私のスキルではループさせるところがちょっと無理なので、2にしたいのですが、「微妙に作り直しておいてから」のところがどうもどうしたらいいのか分かりません。 さらによろしくお願いします。

回答No.2

変数とは、それ自身は数値を持ちませんので、変数を与えると答えが出る、というのが何の事なのか分かりません。 複雑な計算を行いたい場合はマクロを使うと解決出来ると思います。 もう少し具体的に、何をどうしたいのかを教えていただくと助かりますが…

kankororin
質問者

お礼

すみません、上で補足します。

  • OKBob
  • ベストアンサー率21% (57/265)
回答No.1

何をやりたいのか解かりませんが >(関数では書けないような計算をして) これを書かないと誰も答えられないんじゃないですか? 宝くじのロト?競馬の組み合わせ?

kankororin
質問者

お礼

すみません、上で補足します。

関連するQ&A