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

我们有一个电话logging列表,并希望显示我们已经收到的来电地点。

这里是我们现在有一个示例数据集。

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()我相信这是正确的function。

假设您需要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") 

这应该做的伎俩:)

这是VLOOKUP的理想select。 但是,请确保您的查找值和引用表具有相同的types:

在这里输入图像说明

请注意前缀的右alignment(列H;数字/值的默认值)。 数字(C列)相同。 使用LEFT(C2,5)将返回一个string,该string将使用VALUE(..)更改为一个值。

由于有些数字可能不是数字(如anonymous ),因此包含的错误检查仅返回有效的电话号码。 如果前缀列表sorting,如果不存在这样的前缀(例如,来自其他国际号码不在您的前缀数据库中),则TRUE条件VLOOKUP也可以返回全部“无效前缀”。