一行vba实现仿XLOOKUP自定义函数
有关XLOOKUP使用方法可见此说明页面
但是想要使用XLOOKUP函数需要OFFICE EXCEL365并且在内测通道。
注意: 2019年11月25日,: XLOOKUP 当前是一个 beta 功能,并且目前仅适用于Office 预览体验成员的一部分。 我们将在未来的几个月里继续优化该功能。 XLOOKUP 准备就绪后,我们会向所有 Office 预览体验成员和 Office 365 订阅者发布该功能。
所以如果没有相关EXCEL版本或者对应通道,可以使用一下自定义函数,实现简单的纵向查找(支持逆向查找)
Function x(a,b,c)
x=Application.Evaluate("vlookup("&a.Address &",IF({1,0},"&b.Address &","&c.Address &"),2,0)")
End Function
效果预览:
2020年更新
xlookup更新了第四个参数,并且修复了跨工作表出错的问题。。emmmmm好吧不再是一行了
Function x(a, b, c, Optional d = "无结果")
a = isObj(a)
d = isObj(d)
x = Application.Evaluate("iferror(vlookup(" & a & ",IF({1,0},'" & b.Worksheet.Name & "'!" & b.Address & ",'" & c.Worksheet.Name & "'!" & c.Address & "),2,0)," & d & ")")
End Function
Function isObj(a)
Dim e As String
If TypeName(a) = "Range" Then
e = "'" & a.Worksheet.Name & "'!" & a.Address
Else
e = """" & a & """"
End If
isObj = e
End Function
帮主不在 快搞点色图