Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel:如果数字以选项中的值开头,则显示选项列表中的值_Excel - Fatal编程技术网

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
,该条件可能会返回一个全面的“无效前缀”。

此外,根据默认语言,您可能需要使用分号而不是逗号(例如,
而不是
)。如果使用错误的代码,就会出现错误。我自己也不清楚为什么会有这种差异。