- ベストアンサー
エクセルの使い方:数値計算と組み合わせの模索
- エクセルで数値計算する際に正しい数値と組み合わせを模索する方法を知りたいです。
- 前回の質問で数値が間違っていたため、訂正しました。お手数ですが、再びご回答いただけると助かります。
- 合計が8-8-8の近辺になる組み合わせを自動的に模索するエクセルの使い方を教えてください。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
先の質問で回答したものです。うまく回答が伝わらなかった様なので再度 つまり式は 1.68x+3.71y+0z=8 3.4944x+1y+1.3Z=8 2.5872x+0.9y+4.77Z=8 となるx、y、zの答えを求めよ ということですよね。 3次元の方程式ですので、答えは 1つしかありません。 例えば、別のシートを準備して http://yosshy.sansu.org/Excel_matrix.htm のサイトにあるように A1は =元データ!C7 A2は =元データ!D7 ・・・ と下の図の様になる様に式を入れておきます。 あとはサイトを参考に Minverse,Mmult関数で回答がでます。 必要であれば B8、B12、B16のセルに =答えのシート!E5 と引っ張ってきてください。 ちょうど それぞれの合計が8になります。
その他の回答 (5)
- imogasi
- ベストアンサー率27% (4737/17069)
したいことが、質問の文章に書いてないようだ。 数値が違ってましたなんて、どうでもよい。回答者の答え(方法)が正しいと(判定できるなら)思えば、前の質問の提示データが誤っていたら、質問者が訂正した数値で、計算しなおしたら、仕舞いでは無いか。 既出の回答のどれが正しいか、あやまりか、質問者は判断できるのですか。出来なさそうだ。 それなら回答させても意味無いでしょう。 いっそ学校や書籍の問題などで、正解が判っているなら、発表しては。それならこう言うことだと回答者が指摘してくれるかもしれない。 3変数で3個の一次式があるから、回答は1つに決るが、そういう問題だと、中学生の代数の問題だし、何のことか判らない。 これは学校の宿題の問題の回答を求めているのではないか。質問コーナーに回答を直ぐ求めるのは京大入試題でも問題になった。 ーー 私が思うのには、 (1)これはエクセルの問題ではない(エクセルを計算道具として使えても) (2)エクセルのソルバーの問題とも違うようだ (3)もうひとつ次元がふえて、油粕、草木灰などの価格コストも勘案し、最小コストで、実現する問題ではないのか。 (4)こういう問題は数学やコンピュター計算科学の専攻の人が見る、数学などのカテゴリに投稿すべきではないのか。 普通のプログラマーなどは、文系の人が多いようだ。 ただしこのままの説明では問題の内容を理解してもらえないのではとおもうが。
お礼
まことにすみません。 軽率な再質問をしてしまいまして、不可解な思いをさせまして、申し訳ありませんでした。 前回の質問で連立方程式の問題とかMinverse,Mmult関数とかソルバーの方法とか、お教えくださったのですから、主体的に自分で計算しなおしてみるべきでした。 ご批判はごもっともです。すみませんでした。
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
#4です。気持ち改良してみました =MMULT(INDEX(MINVERSE(TRANSPOSE(CHOOSE({1;2;3},C7:E7,C11:E11,C15:E15))),1,),{8;8;8}) [Ctrl]+[Shft] +[Enter] で確定 =MMULT(INDEX(MINVERSE(TRANSPOSE(CHOOSE({1;2;3},C7:E7,C11:E11,C15:E15))),2,),{8;8;8}) =MMULT(INDEX(MINVERSE(TRANSPOSE(CHOOSE({1;2;3},C7:E7,C11:E11,C15:E15))),3,),{8;8;8}) 行列積の計算において、結果に不要な計算をしないようにINDEX関数で行を抽出しました
お礼
ありがとうございます。 究極の合理的関数まで作ってくださって、ありがとうございます。 他の方のご指導で、この関数のことを知り、初めての勉強で、ワクワクの思いでしたのですが、これは、私のツタない質問への、究極の洗練された、ご回答ですね。 前回答につづき二度もお教えくださって、ありがとうございました。
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
タイトルをもう少し考えていただきたいと思います。 また、質問もわかりにくく、説明上必要のない数値は入れないでほしいと思います。 結局、皆様の回答を見て意味が分かりました。 で、半ば遊びですが B8セルに =INDEX(MMULT(MINVERSE(TRANSPOSE(CHOOSE({1;2;3},C7:E7,C11:E11,C15:E15))),{8;8;8}),1) [Ctrl]+[Shift] +[Enter] で確定、配列数式です({}で囲まれる) B12セル =INDEX(MMULT(MINVERSE(TRANSPOSE(CHOOSE({1;2;3},C7:E7,C11:E11,C15:E15))),{8;8;8}),2) [Ctrl]+[Shift] +[Enter] で確定 最後の1が2に変わるだけ B16セル =INDEX(MMULT(MINVERSE(TRANSPOSE(CHOOSE({1;2;3},C7:E7,C11:E11,C15:E15))),{8;8;8}),3) [Ctrl]+[Shift] +[Enter] で確定 最後の1が3に変わるだけ chooseで行列を作り、transposeで縦と横を逆にし、minverseで逆行列を求め、mmultで{8;8;8}との行列積を計算し、INDEXで必要な数値を取り出した。
- MackyNo1
- ベストアンサー率53% (1521/2850)
すでに回答が出ていますが連立方程式を解くなら行列式を利用します。 例示のデータなら、準備として3つの係数をG1:I3セルにリンク貼り付けして、G6:G8に「8,8,8」と入力しておきます。 G11:G13セルを選択し、以下の式を入力し、Ctrl+Shift+Enterで確定して配列数式にします。 =MMULT(MINVERSE(G1:I3), G6:G8) このG11セル以下の値をB8セル以下にリンク貼り付けし、その右のセルには「=$B8*C7」の数式を入力し右方向にオートフィルします(その下のセルにもこの数式をコピー)。 検算として、C18セルに「=SUM(C8,C12,C16)」の式を入力して右方向にオートフィルします。
お礼
ありがとうございます。 画面をわざわざ付けてくださいまして、大変分かりやすかったです。 行列式の方法ということを初めて知りました。Minverse,Mmult関数というのを自分で再びやってみて、その通りになりました。大変勉強になりました。 ありがとうございました。
- keithin
- ベストアンサー率66% (5278/7941)
答えは 170.0771534 138.6173537 49.31253048 ぐらいですね。 #やり方を教わっても自分でやってみる気はナッシングで,ご自分の仕事をヒトに丸投げして計算の答えだけ教えてクレクレということですね。
お礼
かさねがさね、ご親切なご回答をありがとうございました。 先の質問から、一つ一つ、方程式まで沢山書いてくださり、ご親切に感謝します。教えて頂いたように、エクセルのサイトも見まして、『そんな動作もするのか!』と感心しました。新しい勉強になりました。ありがとうございます。 Minverse,Mmult関数というのがあるのですね(^o^)自分で再びやってみて、その通りの答えがでました。 私は最初、三つの肥料の混和なので、絵に描いたように8-8-8など丁度になるワケはない、と思っていました。でも折角エクセルなので、近似を簡単にさがせる方法をやってみたい!と思ったのです。こんなに見事な計算ができるとは、今後、大変役に立ちます。 お教えありがとうございました。