
こんばんは。
回帰分析をやってくれるワークシート関数に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も見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
配列数式の解除
-
VBのFunctionで、配列を引数...
-
ListViewで、非表示列って作れ...
-
for each の現在の配列ポインタ...
-
Excel VBA配列をFunctionに渡す
-
subの配列引数をoptionalで使う...
-
2つ以上の変数を比較して最大数...
-
配列を任意の数値で埋める方法
-
【excel VBA】 配列番地の検索
-
linest関数に配列を渡す
-
COBOL 2次元配列について
-
VB6 配列を初期化したい
-
VBA 1次元配列を2次元に追加する
-
エクセルで最小値から0を除く方法
-
特定のセル範囲で4文字以上入力...
-
VLOOKUP関数で、一番下...
-
VBAで近似曲線の係数取得
-
ビンゴ
-
順列の作成
-
ExcelのVBAコードについて教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列数式の解除
-
VBA 1次元配列を2次元に追加する
-
特定のセル範囲で4文字以上入力...
-
for each の現在の配列ポインタ...
-
2つ以上の変数を比較して最大数...
-
VB6 配列を初期化したい
-
ListViewで、非表示列って作れ...
-
配列変数の添字が範囲外ですと...
-
subの配列引数をoptionalで使う...
-
VBAで近似曲線の係数取得
-
VBのFunctionで、配列を引数...
-
COBOL 2次元配列について
-
VLOOKUP関数で、一番下...
-
エクセルで最小値から0を除く方法
-
2次元動的配列の第一引数のみを...
-
OutlookVBAでサブフォルダ一括作成
-
Dim は何の略ですか?
-
配列を任意の数値で埋める方法
-
linest関数に配列を渡す
-
ArrayListの初期値に二次元配列...
おすすめ情報