Excel:如果数字以选项中的值开头,则显示选项列表中的值
我们有一个电话记录列表,希望显示我们接到电话的地点 下面是我们现在拥有的一个示例数据集Excel:如果数字以选项中的值开头,则显示选项列表中的值,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 44
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")
这应该可以做到:)这是
VLOOKUP
的理想候选。但是,请确保查找值和引用表的类型相同:
注意前缀的右对齐(H列;数字/值的默认值)。编号相同(C列)。使用LEFT(C2,5)
返回一个字符串,使用value(…)
将该字符串更改回一个值
由于某些号码可能不是号码(如
匿名
),因此包含的错误检查仅返回有效的电话号码。如果对前缀列表进行了排序,则如果不存在前缀(例如,来自前缀数据库中不存在的其他国际号码),也可能会出现TRUE
条件VLOOKUP
,该条件可能会返回一个全面的“无效前缀”。此外,根据默认语言,您可能需要使用分号而不是逗号(例如,;
而不是,
)。如果使用错误的代码,就会出现错误。我自己也不清楚为什么会有这种差异。