使用Excel基于3个变量返回值



i有一个由多个列组成的表,以及包含数据的行。我希望它基于倍数变量返回值。

标题说: 客户端A,客户端B,客户端C,客户端D,每个客户端都有两个选项,Opt1 Opt2在整列上,数据保存在以下(A3-A100)的行中

我想编写一个公式,该公式将基于3个选择的变量(例如第e行,客户端B,OPT 2,返回相应单元格中的值

我尝试使用索引匹配,但它不起作用,并且想知道一个简单的VBA代码是否是更好的解决方案。

谢谢。

如果您的参考数组进行适当排序,则可以在公式中进行此操作。

否则,VBA功能确实是您最好的选择:

Function Match3(LookupZone As Range, _
            Seek1 As Variant, Seek2 As Variant, Seek3 As Variant, _
            RefCol1 As Long, RefCol2 As Long, RefCol3 As Long, _
            ReturnCol As Long) _
        As Variant
Dim ARow As Long
Match3 = CVErr(xlErrNA)
If RefCol1 > LookupZone.Columns.Count Then Exit Function
If RefCol2 > LookupZone.Columns.Count Then Exit Function
If RefCol3 > LookupZone.Columns.Count Then Exit Function
If ReturnCol > LookupZone.Columns.Count Then Exit Function
'                
For ARow = 1 To LookupZone.Rows.Count
    If LookupZone(ARow, RefCol1).Value = Seek1 _
        And LookupZone(ARow, RefCol2).Value = Seek2 _
        And LookupZone(ARow, RefCol3).Value = Seek3 _
            Then
        Match3 = LookupZone(ARow, ReturnCol).Value
        Exit Function
    End If
Next ARow
End Function

然后,您可以根据需要在电子表格中使用它。

相关内容

  • 没有找到相关文章