索引和匹配矩阵公式
Index and Match Matrix formula to
我真的很难将 Index + Match 转换为 VBA。我是 VBA 的新手,事实证明这超出了我的能力范围。
我在 Sheet2 中有一个 table 列,'Case'、'Probability'、'Impact' 和 'Severity'。然后是Sheet1中的一个矩阵
我的公式(向下填充列)是:
=IFNA(INDEX(Sheet1!$C:$G,MATCH([@Probability],Sheet1!$B:$B,0),MATCH([@Impact],Sheet1!$C:$G,0)),"")
我正在尝试根据 Matrix
中的值在 table 中自动填充 'Severity'
Table
Matrix
我尝试使用 Application.WorksheetFunction 但我没有得到任何结果。
如有任何建议,我们将不胜感激。
VBA 使用 INDEX/MATCH
公式
- 这些将填充值而不是公式。
- 如果删除行
.Value = .Value
,公式将保留。
- 调整工作表和 table 姓名。
Option Explicit
Sub TestEdu()
Dim wb As Workbook: Set wb = ThisWorkbook ' workbook containing this code
Dim ws As Worksheet: Set ws = wb.Worksheets("Sheet2") ' adjust
Dim tbl As ListObject: Set tbl = ws.ListObjects("Table1") ' adjust
Dim lcl As ListColumn: Set lcl = tbl.ListColumns("Severity")
With lcl.DataBodyRange
.Formula = "=IFNA(INDEX(Sheet1!$C:$G,MATCH([@Probability]," _
& "Sheet1!$B:$B,0),MATCH([@Impact],Sheet1!$C:$G,0)),"""")"
.Value = .Value
End With
End Sub
Sub TestCompact()
With ThisWorkbook.Worksheets("Sheet2").ListObjects("Table1") _
.ListColumns("Severity").DataBodyRange
.Formula = "=IFNA(INDEX(Sheet1!$C:$G,MATCH([@Probability]," _
& "Sheet1!$B:$B,0),MATCH([@Impact],Sheet1!$C:$G,0)),"""")"
.Value = .Value
End With
End Sub
我真的很难将 Index + Match 转换为 VBA。我是 VBA 的新手,事实证明这超出了我的能力范围。
我在 Sheet2 中有一个 table 列,'Case'、'Probability'、'Impact' 和 'Severity'。然后是Sheet1中的一个矩阵
我的公式(向下填充列)是:
=IFNA(INDEX(Sheet1!$C:$G,MATCH([@Probability],Sheet1!$B:$B,0),MATCH([@Impact],Sheet1!$C:$G,0)),"")
我正在尝试根据 Matrix
中的值在 table 中自动填充 'Severity'Table
Matrix
我尝试使用 Application.WorksheetFunction 但我没有得到任何结果。
如有任何建议,我们将不胜感激。
VBA 使用 INDEX/MATCH
公式
- 这些将填充值而不是公式。
- 如果删除行
.Value = .Value
,公式将保留。 - 调整工作表和 table 姓名。
Option Explicit
Sub TestEdu()
Dim wb As Workbook: Set wb = ThisWorkbook ' workbook containing this code
Dim ws As Worksheet: Set ws = wb.Worksheets("Sheet2") ' adjust
Dim tbl As ListObject: Set tbl = ws.ListObjects("Table1") ' adjust
Dim lcl As ListColumn: Set lcl = tbl.ListColumns("Severity")
With lcl.DataBodyRange
.Formula = "=IFNA(INDEX(Sheet1!$C:$G,MATCH([@Probability]," _
& "Sheet1!$B:$B,0),MATCH([@Impact],Sheet1!$C:$G,0)),"""")"
.Value = .Value
End With
End Sub
Sub TestCompact()
With ThisWorkbook.Worksheets("Sheet2").ListObjects("Table1") _
.ListColumns("Severity").DataBodyRange
.Formula = "=IFNA(INDEX(Sheet1!$C:$G,MATCH([@Probability]," _
& "Sheet1!$B:$B,0),MATCH([@Impact],Sheet1!$C:$G,0)),"""")"
.Value = .Value
End With
End Sub