【发布时间】:2021-11-01 00:39:19
【问题描述】:
我在 excel 中有一个表格,其中有一个查找列用于我们所有的内部拨号代码定义。 (这些在 F 和 G 列中)- 然后,我有一个查找列,我们希望在其中匹配客户的拨号代码以找到最接近的匹配项。 该公式现在通过检查是否存在匹配来对一系列列执行此操作,如果没有,则删除最后一个数字,然后再次比较
然后我将它们与我给出的定义进行比较
通过一次删除 1 个号码 - 我最终会在代码上找到匹配项 how the sheet parses to get the match table of dial-code matches
我现在将它放在一个 excel 公式中,但想让它成为我可以调用的 VBA 函数,以便它运行得更快 - 它需要将所有列 F 和 G 比较为按数字顺序排序的匹配项
=IF($A3="","",IF(AND(F3="", CONCATENATE(C3,D3, E3,F3) = ""), IF(ISNA(VLOOKUP(LEFT($B3,MAX(0, LEN($B3) - G$1))+0,Input!$F:$G,1,FALSE))=FALSE,
VLOOKUP(LEFT($B3,MAX(0, LEN($B3) - G$1))+0,Input!$F:$G,2,FALSE),""),""))
【问题讨论】:
-
如果我理解正确,您希望用自定义函数(在 vba 中)替换您的公式。如果这是正确的:通常,本机 excel 公式比自定义函数更快。所以我建议坚持使用有效的方法)。如果这不正确,也许进一步澄清你正在尝试做什么。 :)