Excel:如果数字以选项中的值开头,则显示选项列表中的值

标签 excel

我们有一个电话记录列表,并希望显示我们接听电话的位置。

这是我们现在拥有的示例数据集。

 08/02/2013 12:36   441175085086    ANSWER  198
 21/02/2013 15:51   441188398839    CANCEL  0
 26/02/2013 19:11   anonymous   ANSWER  21
 05/03/2013 12:24   441144939783    ANSWER  61
 07/03/2013 15:35   441144583012    ANSWER  324

现在我们有了另一张表,其中有效包含所有前缀和区号

 44113  Leeds
 44114  Sheffield
 44115  Nottingham
 44116  Leicester
 44117  Bristol
 44118  Reading

现在的想法是,我们只想显示区域名称。但是,如果它与前缀列表的开头不匹配,那么它将只是“匿名”

期望的结果是:

 08/02/2013 12:36   441175085086    ANSWER  198 Bristol
 21/02/2013 15:51   441188398839    CANCEL  0   Reading
 26/02/2013 19:11   anonymous   ANSWER  21  Anonymous
 05/03/2013 12:24   441144939783    ANSWER  61  Sheffield
 07/03/2013 15:35   441144583012    ANSWER  324 Sheffield

谢谢

最佳答案

VLOOKUP() 我相信这是正确的函数。

假设您希望 Sheet1 的 E 列中的区域名称与第 2 行相同,电话号码位于同一工作表的 B 列中,并且带有前缀和区号的表位于 Sheet2 的 A 列和 B 列中,您可以使用:

=VLOOKUP(LEFT(B2,5), Sheet2!A:B, 2, FALSE)

LEFT(B2,5) 从 B2 中存储的电话号码中提取前 5 个字符。如果有不同长度的区号,那么公式就得修改,而且会复杂很多。

Sheet2!A:B是查找数据的表

2 是包含要获取的值的列的索引(第一个索引是包含区号的列)

FALSE 表示完全匹配。我认为您不想让区号立即小于您要查找的区号,因为您将无法找到匿名人士。

现在,对于那些无法找到的内容,您将获得#N/A。将整个公式封装在 IFERROR() 中,如下所示:

=IFERROR(VLOOKUP(LEFT(B2,5), Sheet2!A:B, 2, FALSE), "Anonymous")

这应该可以解决问题:)

关于Excel:如果数字以选项中的值开头,则显示选项列表中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18112500/

相关文章:

excel - 在 Excel 宏中等待

vba - 如何将具有范围、单个单元格和/或直接输入的 ParamArray 转换为数组?

string - 从 excel 中将字符串读入 Matlab?

excel - 对于每个单元格...下一个单元格循环仅工作一次

excel - SeriesCollection 和 FullSeriesCollection 之间的区别

excel - Excel 是否有 SUMPRODUCT IF 内置函数?

excel - 使用网页抓取提取链接的问题

excel - 使用模式搜索和复制 move 单元格

mysql - 使用交替颜色对 Excel 字段中的重复条目进行颜色编码

arrays - 将数据从工作表存储到数组