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
然后,您可以根据需要在电子表格中使用它。