• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:linest関数に配列を渡す)

linest関数に配列を渡す

このQ&Aのポイント
  • 回帰分析を行うためのワークシート関数であるLinestに、配列を引数として渡す方法について質問しています。
  • 現在、Linest関数はRange型のデータを要求しており、配列を直接渡すことはできません。
  • 代替案として、配列を一時的にシートに貼り付けてRange型に変換し、それをLinest関数に渡す方法が考えられます。また、自作の関数を作成することも検討できます。

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

  • ベストアンサー
  • end-u
  • ベストアンサー率79% (496/625)
回答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