[[20171212161122]] 『特定の記号間の値を抜き出したい』(HKLC) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『特定の記号間の値を抜き出したい』(HKLC)

現在、グラフの近似線をテキストとしてセルに抜き出し、特定の文字間にある値を別のセルに抜き出すというコードがなかなかうまくいきません。
(例 y = 0.045e-595.1x・R² = 0.7709 という式に対して欲しい部分は595.1と
0.7709という部分です。桁数が3桁〜4桁前後変わる為、うまく書けないという状態です。以下、近似線をテキストとして抜き出したところまでのコードを記します。わかる方いましたら是非ご教授ください。もっと効率的な方法をご存知の方いましたら、こんな方法もあると教えていただけますと幸いです。よろしくお願い致します。

Sub Sample()

Range("F28").Value = ActiveSheet.ChartObjects(1).Chart.FullSeriesCollection(1).Trendlines(1).DataLabel.Text

End Sub

< 使用 Excel:Excel2013、使用 OS:Windows10 >


変化しない文字列がどこにあるか調べて、切り出せば良いです。 マイナス部分がプラスになる場合は、iw1が0ならば "+" で再検索するように処理追加してみてください。

 Sub test()
    Dim iw1 As Long
    Dim iw2 As Long
    Dim iw3 As Long
    Dim cw As String

    cw = "y = 0.045e-595.1x・R2 = 0.7709"
    iw1 = InStr(cw, "-")
    iw2 = InStr(cw, "x")
    iw3 = InStrRev(cw, "=")
    Range("A1") = Mid(cw, iw1 + 1, iw2 - iw1 - 1)
    Range("A2") = Trim(Mid(cw, iw3 + 1))
 End Sub
(???.) 2017/12/12(火) 16:35

ありがとうございます。おかげさまで抜き出すことができました。Midを使えば変化しない部分から変化しない部分までという切り方ができるのですね。大変、勉強になりました。独学ではありますがこれからもコツコツと学んでいきます。ありがとうございました。
(HKLC) 2017/12/12(火) 17:19

>もっと効率的な方法

かどうかわかりませんが、

>こんな方法もある

LINEST関数で求めることができます。
例えば、
X軸データがA2:A6
Y軸データがB2:B6
の場合
=INDEX(LINEST(LN(B2:B6),A2:A6),1)

(マナ) 2017/12/13(水) 00:07


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.