如何从相关表应用标准中提取值?

时间:2017-01-11 15:52:49

标签: excel excel-vba correlation vba

我目前需要从适合特定配置文件的关联表中提取单元格值,例如“< 0.6”。如果不是因为我正在运行> 4,000个项目的相关系数,这可能是一个足够简单的手动任务。输出的想法是创建另一个表,其中一个连接列显示所涉及的项目,另一个列包含这些项目的相关性值。

我认为VBA将是可行的方式,但也许还有一些其他更快更简单的方式可以忽略。

非常感谢任何帮助!

提前致谢:)

1 个答案:

答案 0 :(得分:0)

Sub extract()

Worksheets("Matrix").Select
Range("A1").Select

Dim Row As Long

Dim Col As Long


x = 1

y = 1

i = 0

Worksheets("Paste").Cells.ClearContents
Worksheets("Paste").Range("A1") = "X"
Worksheets("Paste").Range("B1") = "Y"
Worksheets("Paste").Range("C1") = "Value"

Worksheets("Matrix").Activate
Row = Worksheets("Matrix").Range("A1",        Worksheets("Matrix").Range("A1").End(xlDown)).Rows.Count
Col = Worksheets("Matrix").Range("A1",     Worksheets("Matrix").Range("A1").End(xlToRight)).Columns.Count


If Row <> Col Then
MsgBox "ERROR: Matrix is not symmetrical, can't be a correlation matrix"

Exit Sub

End If

For x = 1 To Row

    For y = 1 To Col

        If Cells(y, x) > 1 Then
        Cells(y, x).Copy
        Worksheets("pegar").Range("C2").Offset(RowOffset:=i).PasteSpecial xlPasteValues
        Worksheets("paste").Range("B2").Offset(RowOffset:=i).Value = y
        Worksheets("paste").Range("A2").Offset(RowOffset:=i).Value = x
        i = i + 1

    End If

Next y


Next x

Worksheets("paste").Select
MsgBox "values extracted"

End Sub