我真的很难将 Index + Match 转换为 VBA。我对 VBA 很陌生,事实证明这超出了我的能力范围。
我在 Sheet2 中有一个表格,列有“案例”、“概率”、“影响”和“严重性”。然后是 Sheet1 中的矩阵
我的公式(填满列)是:
=IFNA(INDEX(Sheet1!$C$2:$G$6,MATCH([@Probability],Sheet1!$B$2:$B$6,0),MATCH([@Impact],Sheet1!$C$1:$G$1,0)),"")
我正在尝试根据矩阵中的值自动填充表中的“严重性”Table
Matrix
我尝试使用 Application.WorksheetFunction 但没有得到任何结果。
任何建议将不胜感激。
最佳答案
VBA 使用 INDEX/MATCH
公式
.Value = .Value
,公式保持不变。 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$2:$G$6,MATCH([@Probability]," _
& "Sheet1!$B$2:$B$6,0),MATCH([@Impact],Sheet1!$C$1:$G$1,0)),"""")"
.Value = .Value
End With
End Sub
Sub TestCompact()
With ThisWorkbook.Worksheets("Sheet2").ListObjects("Table1") _
.ListColumns("Severity").DataBodyRange
.Formula = "=IFNA(INDEX(Sheet1!$C$2:$G$6,MATCH([@Probability]," _
& "Sheet1!$B$2:$B$6,0),MATCH([@Impact],Sheet1!$C$1:$G$1,0)),"""")"
.Value = .Value
End With
End Sub
关于excel - 索引和匹配矩阵公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71286087/