Excel2000マクロで2つの近似線の接点を求める方法

このQ&Aのポイント
  • Excel2000マクロを使用して、散布図上に表示された2つの近似線の接点の値を求める方法について知りたいです。
  • データの範囲として、A1からA5とB1からB5が近似線1のデータ範囲であり、A8からA12とB8からB12が近似線2のデータ範囲です。
  • 近似線1の傾きはSLOPE関数を使用して求めることができます。また、切片はINTERCEPT関数を使用して求めることができます。
回答を見る
  • ベストアンサー

Excel2000マクロ 2つの近似線の接点を求める。

何方か、回答を宜しくお願いします。 下記のデータを使用して2つの近似線を散布図上に表示しました。 この時の、2つの近似線の接点の値(下記の場合xが6位、Yが15.1位)を 何処かのセルに出したいのですが(出来ればマクロ)どうも私の頭では 限界になりましたので有識者の方々宜しくお願いします。 ----------------------------------------- 近似線1は、A1:A5、B1:B5 近似線2は、A8:A12、B8:B12 --------------------------------------- 傾き =SLOPE(B1:B5,A1:A5) 切片 =INTERCEPT(B1:B5,A1:A5) ------------------------------------- A列(X)__B列(Y) 1____10.1 2____10.9 3____12.1 4____12.9 5____14.1 6____空白 7____空白 8____15.1 9____14.9 10____15.1 11____14.9 12____15.1

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

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.2

数学は苦手です.... > 近似線1は、A1:A5、B1:B5で前回と同じ、 直線の方程式: y = Ax + B ・近似線1(直線?) A1:A5、B1:B5  傾きA =SLOPE(B1:B5,A1:A5)   --->1  切片B =INTERCEPT(B1:B5,A1:A5) --->9.02  なので、    y = x + 9.02 --- (1) > 近似線2の方が今回変わってY値が固定で(今回は12)Xの値を調べる計算式  X 値の変化に係わらず常に Y 値が 12 ...これって傾き 0 のことですよね?  つまり、  y = 0x + 12 ---> y = 12  単純に(1)の数式に y を代入するだけじゃ?    12 = x + 9.02  x = 12 - 9.02  x = 2.98 です。#1 の回答を生かすなら、ワークシート上で A列(X)__B列(Y) 1____10.1 2____10.9 3____12.1 4____12.9 5____14.1 6____空白 7____空白 8____12 9____12 10____12 11____12 12____12 とデータ修正するだけです。 余談ですが、連立方程式を VBA で解くには...   y = Ax + B   y = Cx + D   Ax + B = Cx + D   (A - C)x = (D - B)   x = (D - B) / (A - C) で x 値が求まりますので、それを元の方程式のどちらかに代入すれば y が決まります。 ワークシート上の数式で十分解を求めることは可能ですが、#1 は VBA で... というご希望だったので、上記をそのまま VBA で書いてるだけです。 それほど難しいことをやっているわけではありません。じっくりと、#1 の コードがどのような仕組みになっているのか、ご自分で考えてみて下さい。 大丈夫。きっと難しそうに見えてるだけです。 > 出来れば逆のパターンでX値が固定でYの値を調べる計算式も欲しいです。 考え方さえわかってしまえば、あとは応用です。頑張って下さいね(^^)ノ

hibohibo
質問者

お礼

KenKen_SP様回答ありがとう御座います。 私の弱い頭でもようやくX値は出すことが出来ました。 (でも、Y値の方はまだです。) 今回も、勉強になる回答ありがとう御座いました。

その他の回答 (1)

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.1

すみません、正直 Slope とか近似線とか良くわかってないですけど。 > 傾き =SLOPE(B1:B5,A1:A5) > 切片 =INTERCEPT(B1:B5,A1:A5) これで、各線の正しい傾きと切片が得られるのであれば、次のような 感じでどうですか? 私にはこれが正しいのかどうかもわかりません が、2直線の交点を求めるということであれば、得られた直線の連立 方程式をそのまま解けば良い気がします。 Sub Test()   Dim a1 As Double, b1 As Double   Dim a2 As Double, b2 As Double   Dim x As Double, y As Double        '傾き =SLOPE(B1:B5,A1:A5)   '切片 =INTERCEPT(B1:B5,A1:A5)   a1 = Application.Slope(Range("B1:B5"), Range("A1:A5"))   b1 = Application.Intercept(Range("B1:B5"), Range("A1:A5"))      '傾き =SLOPE(B8:B12,A8:A12)   '切片 =INTERCEPT(B8:B12,A8:A12)   a2 = Application.Slope(Range("B8:B12"), Range("A8:A12"))   b2 = Application.Intercept(Range("B8:B12"), Range("A8:A12"))      x = (b2 - b1) / (a1 - a2)   y = a1 * x + b1   MsgBox "X:=" & CStr(x) & vbLf & "Y:=" & CStr(y)    End Sub

hibohibo
質問者

お礼

KenKen_SP様回答ありがとう御座います。 接点の値がxが5.999位、Yが15.02とバッチリでした。 直線の連立方程式を使うのですね、良い勉強になりましたありがとう御座います。 (補足で又質問するかも知れませんがその時は宜しくお願いします。)

hibohibo
質問者

補足

KenKen_SP様宜しければ計算式を教えて下さい。 近似線1は、A1:A5、B1:B5で前回と同じ、近似線2の方が今回変わって Y値が固定で(今回は12)Xの値を調べる計算式を教えて下さい。 (出来れば逆のパターンでX値が固定でYの値を調べる計算式も欲しいです。) 宜しくお願いします。

関連するQ&A

  • エクセルで1次近似式の傾きについて

    1次近似で、y=ax+bの近似式を求める場合、 傾きaは、SLOPE(yのデータ,xのデータ) y切片bは、INTERCEPT(yのデータ,xのデータ) で求めています。 そこでグラフを描いて近似式を表示する際に、グラフオプションでy切片=0にするとSLOPEで求めた傾きと違う値になってしまい悩んでいます。 y切片=0にした場合のy=aXのaを出す関数があるのでしょうか?どなたか教えて下さい。宜しくお願い致します。

  • グラフの直線近似式の傾きと切片をとりだす

    お世話になります。 グラフに直線近似式を出させています。 その中の傾きと切片を取り出す為SLOPE関数とINTERCEPT関数を用いていますが うまくできません。 A B 1 1 2 2 3 #N/A 4 4 5 #N/A 6 6 というデータについて傾きと切片を抜き出したいのですが#N/Aがある為うまくできません なんとかうまくできないでしょうか? お教え下さい。

  • 近似直線の傾きとSlope関数で求めた傾きについて

    近似直線の傾きとSlope関数で求めた傾きについて Excelでxとyについてのプロットデータに近似直線を追加しグラフにしました。そのときグラフ上にy=aX+bのような近似式を表示することができます。 ことのきの近似式の傾きaと、同じプロット点を使いSlope関数で求めたときの傾きとは別物なのでしょうか。同じになると思っていたのですが、同じ値にならないもので・・・。

  • 空白セルを無視して対数近似

    A列、B列 0 957 27.31 599 56.87 402 79.08 255 158.37 92 265.17 空白セル 541.76 空白セル 807.54 空白セル 1403.11 空白セル といった2列目データ行数が不定のエクセルデータに対し、 この場合は SLOPE(LN(B1:B5),A1:A5) というように、 B列で値をもっているセルだけを使って対数近似をした片対数グラフの傾きを求めたいです。 LNは空白セルを無視してくれないので、SLOPE(LN(B1:B9),A1:A9)とかやるとエラーが出てしまいます。 何かよい方法はないでしょうか。

  • Excel内で傾きを変えて直線近似したい

    Excel内で,傾きを変えて直線近似をしたいです. たとえば,セルA1からA5に数字の0から4をX座標として入力します. セルB1からB5にはY座標として0から2,4,6,8と入力します. この直線では,当然傾きが2なのですが, この直線をあえて傾きが1になるように直線近似して,その際の切片を求めるなんて やり方ありませんか. 実験の解析で使うのですが・・・. エクセルでの計算に詳しい方,わかる方がいらっしゃいましたら回答よろしくお願いします.

  • この式が何を意味しているのかがわかりません。

    この式が何を意味しているのかがわかりません。 3つの点L(X1,y1)、M(x2,y2)、N(X3,y3)があります。 点Lと点Nを結ぶ直線を直線LNと呼び、傾きをA1、切片をB1とします。 A1=(y3-y1)/(x3-x1) B1=y1-(slope*x1) さらにA1の逆の傾きをA2とします。 A2=-(x3-x1)/(y3-y1) 点Mを通る傾きA2の直線の切片をB2とする。 B2=y2-(A2*x2) この時、下記の式は何を表しているか分かる人がいましたら教えてください。 N = (B2-B1)/(A1-A2)

  • 両対数グラフの傾きと切片から近似式を求めたい

    今晩は。よろしくお願いします。 カテゴリー違いでしたらごめんなさい。 あるサイトにあった以下の数値の近似式と対数グラフを エクセルを用いて自分で求めてみました。 X      Y 1.30E+15    3.5 4.8E+15    1 1E+16    0.5 まず、この値を用いてエクセルで両対数グラフを描きました。 次に、累乗近似の近似曲線を描き、その数式を表示させました。 y = 9E+14x-0.95 となりました。 これは y=9・10^(14・x^(-0.95)) ということでいいのでしょうか? また上式は上記の3点を通る近似式としてよいのでしょうか? でも何度検算しても   x=1.30E+15 y=3.5 が求まりません。 3.5=9・10^(14・1.30E+15^(-0.95)) という式がそもそも間違っているのでしょうか? 別の方法で、この類似曲線をほぼ直線として  この直線の傾きと切片(Y=AX+B)を用いれば、       y=ax^n(n=A  B=loga)  を近似式として求めてもいいんですよね?  (x、y)=(1.30E+15 、 3.5) (1E+16 、 0.5)の2点から  傾きをA=-3/(8.7E+15)=-0.34482E-15  切片をB=3.5  としました。  このとき  y=(10^3.5)・x^-334E-18    としてよいのでしょうか。  また、検算をする際、上式に(1.30E+15、3.5)を代入する際は (X、Y)になるのでしょうか?それとも(x、y)ですか?   X=logx Y=logy を考えないといけないのでしょうか 文章が下手ですみません。 どうぞアドバイスをください。

  • 検量線作成時の近似直線に関して

    実験データで検量線を作成しているのですがexcelで x・・・0、0.25、0.5、1.0 y・・・0.0025、0.0605、0.1240、0.2420 という数値を用いて散布図グラフを作り、近似直線の追加で直線の式やR^2を表示させると式がy=0.2431xとなり、切片(y=ax+b)のb部分が出てきません。原点は通っていないのに何度やっても切片が表示されないのでなぜ表示されないのかがわかりません。 ちなみにバージョンは2003です。 よろしくお願いします。

  • 回帰直線の傾きと切片の誤差

     エクセルで散布図を作成した後、近似直線(y=ax+b)を作りました。R-2値は0.999以上で非常に高い相関がみられたのですが、この直線の傾きと切片はどの程度の誤差を有しているのか知りたいです。傾きaと切片bの誤差の導き方を教えてください (それぞれの誤差をc,dとすると、a±c, b±dのような表現の仕方がしたいと思ってます)。よろしくお願いいたします。

  • エクセルの近似曲線(直線)

    いつもお世話になっております。 ある実験での測定結果をグラフにしたいのですが困っています。 測定は二回行ったので、一回目と二回目それぞれの近似曲線が記入可能でした。しかし、どうしても、グラフ上に、二本近似曲線がひかれてしまいます。それを一本にしたいのですが可能でしょうか。 データはおよそこんな感じです。 一回目→(x=1.3のときy=1540)     (x=0.7のときy=840)         (x=0.3のときy=600)     (x=0.2のときy=250) 二回目→(x=1.3のときy=2300)     (x=0.7のときy=680)         (x=0.3のときy=630)     (x=0.2のときy=260) 散布図で、8点がグラフに描かれますが、8つのポイントのぶれ具合を考慮したうえで、一本の近似曲線(直線の一次関数)を引くことが出来ますでしょうか? 例えばxが1.3のときy=1540と2300なので、大きくぶれが生じます。単にxが1.3、0.7、0.3、0.2のときの2つのy測定結果を足して平均するだけでは、グラフの傾きが正常より上がりすぎ困ります。 説明が下手ですいません。 とにかく、複数のxに対するyの値がそれぞれ2つある場合、そのそれぞれの点の真ん中らへんを通る直線が引きたいのです(そのとき直線は大きく外れたデータのポイント付近に存在しないようにする)。 よろしくお願いします! 一回目データと二回目のデーターから得られるそれぞれの近似曲線(一次関数)の傾きと切片の平均からなら一本の直線が求められるなど、どんな些細なことでもいいのでお願いします。

専門家に質問してみよう