こんばんは。
回帰分析をやってくれるワークシート関数にLinestとうのがありますが、
それの引数に、配列を渡したいのですが、うまくいきません。
データ自体はRangeではなく、Variant型の配列となっているのですが、Linestを
使うときは、一旦、シートに貼り付けて、配列→Range型に変換するなどするしか
対応できませんでしょうか。
もしくは、Linestと同等な自作関数を作っても良いのですが、もともと機能として
あるなら、Linestを使用したいと思ってます。
うまくいかない例^^;
Sub test()
Dim a(1 To 3) as Variant
Dim b(1 To 3, 1 To 2) as Variant
a(1) = 1
a(2) = 3
a(3) = 2
b(1, 1) = 4
b(2, 1) = 5
b(3, 1) = 6
b(1, 2) = 12
b(2, 2) = 15
b(3, 2) = 19
MsgBox WorksheetFunction.LinEst(a, b, True, True)
End Sub
--
エクセル2003
No.1ベストアンサー
- 回答日時:
それぞれの配列をセル範囲に例えると
a(1 To 3) は A1:C1...1行3列
b(1 To 3, 1 To 2) は A1:B3...3行2列
これを以下のように修正してxとyを対応させてあげればいいですね。
Sub test1()
Dim a(1 To 3, 1 To 1) As Variant
Dim b(1 To 3, 1 To 2) As Variant
Dim c
a(1, 1) = 1
a(2, 1) = 3
a(3, 1) = 2
b(1, 1) = 4
b(2, 1) = 5
b(3, 1) = 6
b(1, 2) = 12
b(2, 2) = 15
b(3, 2) = 19
c = WorksheetFunction.LinEst(a, b, True, True)
MsgBox "y= " & c(1, 2) & " *x1+ " & c(1, 1) & " *x2 " & c(1, 3)
End Sub
もしくは
Sub test2()
Dim a(1 To 3) As Variant
Dim b(1 To 2, 1 To 3) As Variant
Dim c
a(1) = 1
a(2) = 3
a(3) = 2
b(1, 1) = 4
b(1, 2) = 5
b(1, 3) = 6
b(2, 1) = 12
b(2, 2) = 15
b(2, 3) = 19
c = WorksheetFunction.LinEst(a, b, True, True)
MsgBox "y= " & c(1, 2) & " *x1+ " & c(1, 1) & " *x2 " & c(1, 3)
End Sub
LINESTの結果は配列を返しますから、
MsgBox WorksheetFunction.LinEst...とはできないです。
以下も参考になると思います。
『Excel 2003 およびそれ以降のバージョンの Excel の LINEST 関数について』
http://support.microsoft.com/kb/828533/ja
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
見学に行くとしたら【天国】と【地獄】どっち?
みなさんは、一度だけ見学に行けるとしたら【天国】と【地獄】どちらに行きたいですか? 理由も聞きたいです。
-
ちょっと先の未来クイズ第6問
2025年1月2日と1月3日に行われる、第101回箱根駅伝(東京箱根間往復大学駅伝競走)で、上位3位に入賞するチームはどこでしょう?
-
自分独自の健康法はある?
こうしていると調子がいい!みたいな自分独自の健康法、こだわりはありますか?
-
【選手権お題その3】この画像で一言【大喜利】
とあるワンシーンを切り取った画像。この画像で一言、お願いします!
-
【選手権お題その2】この漫画の2コマ目を考えてください
サッカーのワンシーンを切り取った1コマ目。果たして2コマ目にはどんな展開になるのか教えてください。
-
VBAで近似曲線の係数取得
Visual Basic(VBA)
-
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【選手権お題その3】この画像で一言【大喜利】
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・ちょっと先の未来クイズ第6問
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
配列数式の解除
-
2つ以上の変数を比較して最大数...
-
配列変数の添字が範囲外ですと...
-
MATLABにて場合分け関数を定義...
-
linest関数に配列を渡す
-
FORTRANのCOMMON文
-
特定のセル範囲で4文字以上入力...
-
バックプロパゲーションの中間...
-
VBAで近似曲線の係数取得
-
Array配列の末尾に追加したい。
-
VBA 1次元配列を2次元に追加する
-
verilogで配列の任意の8bitを取...
-
メッセージボックスのOKボタ...
-
教えて下さい
-
Excel マクロ VBA プロシー...
-
UserForm1.Showでエラーになり...
-
お助けください!VBAのファイル...
-
エクセルのマクロをセルの値に...
-
エクセルで特定の列が0表示の場...
-
ACCESS VBAのSplit()関数の使用...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列数式の解除
-
2つ以上の変数を比較して最大数...
-
配列変数の添字が範囲外ですと...
-
VB6 配列を初期化したい
-
VBA 1次元配列を2次元に追加する
-
ListViewで、非表示列って作れ...
-
2次元動的配列の第一引数のみを...
-
for each の現在の配列ポインタ...
-
特定のセル範囲で4文字以上入力...
-
subの配列引数をoptionalで使う...
-
配列を任意の数値で埋める方法
-
VBのFunctionで、配列を引数...
-
verilogで配列の任意の8bitを取...
-
Excel-VBAの配列「Public Const...
-
配列に同じ値を入れる方法
-
VBAで近似曲線の係数取得
-
linest関数に配列を渡す
-
Excel VBA配列をFunctionに渡す
-
MATLABにて場合分け関数を定義...
-
シェルスクリプト中で、ヒアド...
おすすめ情報