【问题标题】:Alternative to vlookup with exact and approximate match doesnt work替代具有精确和近似匹配的 vlookup 不起作用
【发布时间】:2016-07-01 15:34:41
【问题描述】:
Cell A1: 0553400710 
Cell A2: John
Cell B1: ['0553400710', '0553439406']

注意:

  1. 列表项单元格 B1 的固定格式为['number','number,'number',...... ]
  2. A1 和 A2 是用户输入值

我想将单元格 A1 中的 0553400710 与单元格 B1 中的 ['0553400710', '0553439406'] 匹配。

如果匹配,我想返回 A2:John。

有可能吗?

顺便说一句,Vlookup 无法正常工作。我正在寻找一些利用固定格式优势的技术

图1:这是我试过的公式

图 2:这是 vlookup 显示错误值的表格

图3:这是vlookup检查的数组

【问题讨论】:

  • 欢迎来到 SO!您能否请edit your question 提供您已经尝试过的公式以及您得到的结果?电子表格的屏幕截图也有助于可视化问题。谢谢!
  • @Joanne 您可以使用Instr 函数检查单元格A1 中的子字符串是否在单元格B1 中找到。
  • 我已经更新了图片

标签: excel excel-formula vlookup string-matching vba


【解决方案1】:

按照叙述中的示例数据(和参考)并忽略图像,简单的通配符匹配就足够了。

=IFERROR(INDEX(A:A, MATCH("*"&A1&"*",B:B, 0)+1), "")

【讨论】:

  • 是否可以在 A1 中输入数字,在 A2 中输入 John?
  • 和A3中的数组列表?
【解决方案2】:

你尝试过索引/匹配吗?

=index(return_range,match(cell_to_match,range_to_match,0))

【讨论】:

  • =INDEX(Phone!A:B,MATCH(I9,Phone!A:B,0))
  • 没有工作,或者可能是我犯了一些错误。返回范围是用户输入的一,要进行的单元格是数字,范围还是用户输入的,并且匹配0
  • 您的范围包括两列,即电话号码!A:B 确保您在范围内只选择一列
  • 我猜你想要=INDEX(Phone!B:B,MATCH(I9,Phone!A:A,0))@Joanne
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-12
  • 2020-01-24
  • 1970-01-01
相关资源
最近更新 更多