2

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

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

 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

谢谢

4

2 回答 2

2

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")

这应该可以解决问题:)

于 2013-08-07T19:54:49.427 回答
0

这是一个理想的候选人VLOOKUP。但是,请确保您的查找值和引用表具有相同的类型:

在此处输入图像描述

注意前缀的右对齐(H 列;数字/值的默认值)。数字(C 列)也是如此。UsingLEFT(C2,5)返回一个字符串,使用VALUE(..).

由于某些数字可能不是数字(如anonymous),因此包含的错误检查仅返回有效的电话号码。如果前缀列表已排序,则如果不存在这样的前缀(例如,来自不在您的前缀数据库中的其他国际号码),也可能会返回一个包罗万象的“无效前缀” TRUEVLOOKUP

于 2013-08-07T20:04:10.563 回答