- 締切済み
【EXCEL自作関数】頭が揃ってないLINEST関数を自作したい。
【EXCEL自作関数】頭揃ってないがLINEST関数を作りたい 困り度: * すぐに回答を! EXCELで最小二乗法をしたいのですが、 X軸側の頭が揃ってない状態です。 X軸 |Y軸 #N/A |2 #N/A |3 1.5 |2 3.4 | 5 4.3 |3 ↑のような感じ。 一応便宜上左上がA1セル、右下がB5セルとさせてください。 LINEST(A1:A5,B1:B5)とする代わりに自作関数を作って ZISAKU(A1:A5,B1:B5)としたら自動的にLINEST(A3:A5,B3:B5) と同じ値がでるようにしたいです。 #N/Aの数がバラバラで、同じ事を複数やらなければならないので、自作関数に頼らざるをえません。 特に#N/Aを無視して最後の#N/Aの真下を始点とする部分のアルゴリズムがわかりません。 ちなみに下の部分(上で言う5行目)は確実に揃っています。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- suzusan7
- ベストアンサー率64% (22/34)
こんにちわぁ 考え方の一つですが 動作確認はできましたので一言。 1.まず、zisaku関数の中で動的配列を宣言しておきます。 (動的配列は要素数が決まっていない配列です) 2.そして、zisaku関数の引数のA1:A5をFor Eachで 数値かどうか確認し、データに使える数を調べます。 3.2で調べたデータ数で動的配列の要素数を決定します。 (redimでできます) 4.次に有効なYの値とXの値を要素数を決めた配列に入れていきます。 5.worksheetfunctionでワークシート関数を使えますので、 LINEST関数と配列を使い、戻り値を答えにする。 やってることは、LINESTに使用したいデータを配列でまとめて その配列とLINESTで改めて計算を行っているだけです。 最終行が決まっているということなので、条件の考え方次第では 他のアルゴリズムも勿論あります。あくまで一例です。
- rukuku
- ベストアンサー率42% (401/933)
おはようございます 以下のような形で出来ると思います。 1.セル範囲を別の場所にコピー 2.X軸が#N/Aになった行を削除 3.LINESTを適用