索引和匹配矩阵公式

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