Dim i, j
Dim nCls As Integer
Dim mtx()
With WorksheetFunction
nCls = rng.Columns.Count
'MsgBox nCls
ReDim mtx(1 To nCls, 1 To
nCls)
For i = 1 To nCls
For j = 1 To nCls
mtx(i, j) =
.Correl(rng.Columns(i), rng.Columns(j))
Next j
Next i
xlCorrMtx = mtx
End With
End Function
Function xlCorrMtx_U(rng As Range)
Dim i, j
Dim nCls As Integer
Dim mtx()
With WorksheetFunction
nCls = rng.Columns.Count
'MsgBox nCls
ReDim mtx(1 To nCls, 1 To
nCls)
For i = 1 To nCls
For j = 1 To nCls
If i <= j Then
mtx(i, j) =
.Correl(rng.Columns(i), rng.Columns(j))
Else
mtx(i, j) = 0
End If
Next j
Next i
xlCorrMtx_U = mtx
End With
End Function
Function xlCorrMtx_L(rng As Range)
Dim i, j
Dim nCls As Integer
Dim mtx()
With WorksheetFunction
nCls = rng.Columns.Count
'MsgBox nCls
ReDim mtx(1 To nCls, 1 To
nCls)
For i = 1 To nCls
For j = 1 To nCls
If i >= j Then
mtx(i, j) =
.Correl(rng.Columns(i), rng.Columns(j))
Else
mtx(i, j) = 0
End If
Next j
Next i
xlCorrMtx_L = mtx
End With
End Function
|
Sunday, May 29, 2016
Correlation matrix
Labels:
correlation,
Excel,
matrix,
VBA
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.