• 締切済み

エクセル関数式が入った方程式の解

お世話になっております。 ROUND(ROUND(4845.65+16.5087X,3-LEN(FIXED(4845.65+16.5087X,0)))*0.44425,0)=8885 という方程式で0.44425や8885を可変にして(入力させて)、Xを算出したいのですが、どうしたら良いでしょうか? できれば0.44425や8885の部分を参照して、普通の関数式で算出したいのですが、上記方程式の展開の仕方がわからないので、関数式の作り方が思い浮かびません。 因みにXは920が答えとなります。 ご教授の程よろしくお願いします。

みんなの回答

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

Excelで(は下記以外では)方程式は解けません。 (1)解の公式が存在しそれを知っていて、それに係数を代入して計算する。 それはx=F(a,b,c)のようなa,b,cの四則演算と開平などを使う公式だけでなく http://www.gs.niigata-u.ac.jp/~kimlab/lecture/math/excel-s_eq.html のような係数の行列を使って解く方法も含みます。 (2)近似漸近値を繰り返し計算で出す計算方法を知っていて、Excelの微少増分数列を作る機能やExcel関数を計算道具として使う。 などがあえうと思いますが。 質問は上記とは全く別の逸脱している要求と思います。 ーー エクセルは数式ソフトではないので、式を与えたら、ソフト側で未知数の答えを出す機能はありません。 ーーー ただExcelには「ソルバー」という機能(特別プログラム)がくっついているので 「エクセル 方程式 解く ソルバー」のどれかか全体でWEB照会して 出てくる解説で使えないか勉強して見てはどうでしょう。 ROUNDがかかっているのは難物で、ABSなどと同じく場合分けをして、はずさないといけないように思います。 ==== Excelを使うからといって、何でもExcelの質問コーナーに質問するのはまずいのではないですか。(良くやっているが)。 数理・数学か質問のベースの分野に質問して教えてもらったほうがましではないかと思う。Excel(はExcelで固有の知っていないと答えられない事項があり、どちらかというと回答者は文系人間が多いのではないかと思う(私の独断??))の回答が出来ることと質問のようなことを扱える回答者というのは別と思うが。ただここまで回答できるレベルの人はこの質問コーナーを見てない恐れが多い気がするが。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

まず「16.5087X」って何ですか。Xは何かの変数で「16.5087 * X」という意味でしょうか? 質問文にある数式は中途半端にエクセルの数式の形を取っているため、回答する側は混乱して回答に逡巡してしまいます。 変数を使った数式の結果値を指定して、その値となる変数の値を求める機能としてゴールシークがあります。質問文の数式は意味がわからないので、サンプルの式を用いて説明します 新しいシートを開いてください。そしてA1セルに数値の「1」を入力します。 次にA2セルに  =A1*16.5087+100 という式を入力します。するとA2セルの値は「116.5087」になっているはずです。 ではA2セルの値が「1000」になるA1セルの値を逆算してみましょう。それには「ツール」→「ゴールシーク」を選択します。 (Excelのバージョンが書かれていませんが、2007なら「データ」→「what-if分析」→「ゴールシーク」になります) ウィザードで  数式入力セルに A2  目標値に 1000  変化させるセルに A1 をそれぞれ指定して「OK」をクリックするとA1セルの値が「54.516709」に変わります。これが求める答えになります ご自身の数式でもお試しください でも質問文の式ではうまくいかない可能性が高いです。それはROUND関数を使用しているからです。ROUND関数を用いて四捨五入するということは、答えが一意に決まらず、範囲を持つことはご理解されていますか? 例として質問文の数式の一番外側のROUND関数を取り上げますが  =ROUND(A1,0) の結果が「8885」になるA1の範囲は「8884.500~8885.499」です。つまりゴールシークで結果が出たとしても、それが期待する正解になっている保証はありません ましてや質問文の数式はROUND関数やFIXED関数のような丸め関数を複数使用しています。ですからエクセルの機能を用いて一意の回答を得るのは難しいのではないでしょうか。 まずは質問を「他人が理解できる形」で補足してください。更にその数式はどんな目的かを書いてもらった方がよいでしょう。どう見ても意味不明の式では誰も回答できませんよ。 蛇足ですがFIXED関数の意味はご存じですか。カンマ編集した数値を「文字列として返す関数」ですよ。LEN関数でその結果の桁数を求めるのに何の意味があるのですか? 意味がわからない式を読み解いてまじめに回答するのはちょっとつらいものがあります(^^;

関連するQ&A