提取具有已知名字和姓氏的电话号码(Microsoft Excel)
Kimm有一个工作表,其中有三列。 A列包含某人的姓氏,B列包含该名姓,C列包含该个人的电话号码。如果Kimm知道该人的名字和姓氏(假设它们分别位于单元格F1和F2中),则她想知道将使用哪种查找公式来返回与该名字和姓氏匹配的第一人的电话号码。
实际上,您可以使用几种不同的公式来计算电话号码。大多数方法涉及使用数组公式,该公式始终使用Ctrl + Shift + Enter在单元格中输入。为了使公式更易于理解,最好使用命名范围。例如,设置以下名称:
-
在A列中选择所有姓氏,并为其命名,例如LNames。
-
在B列中选择所有名字,并为其命名,例如FNames。
-
在C列中选择所有电话号码,并为其命名,例如“电话”。
您可以使用以下各种数组公式来查找电话号码:
=SUMPRODUCT(--(LNames=F2),--(FNames=F1),Phones) =INDEX(Phones,MATCH(F1&F2,FNames&LNames,)) =INDEX(Phones,INDEX(MATCH(F1&F2,FNames&LNames,0),)) =OFFSET(C1,MATCH(F1&F2,FNames&LNames,),)
另外,您可以构造一个依赖于ROW函数的数组公式,如下所示:
=INDEX(Phones,SUMPRODUCT((F1&F2=FNames&LNames)*(ROW(FNames)-1))) =INDEX(Phones,MIN(IF((FNames=F1)*(LNames=F2),(ROW(Phones)-1))))
如果使用这种方法(依靠ROW函数),则可能需要调整公式的“ -1”部分以反映实际数据之前出现的行数。在这种情况下,由于数据表的第一行由每一列的标题组成,因此该行减一。数据本身从第2行开始。
请注意,到目前为止,使用的所有公式都依赖于将名字和姓氏进行组合才能进行比较。在某些情况下,这有可能会出现“误报”。例如,假设您在数据中拥有的两个名称是Thom Astonfield和Thomas Tonfield。由于这些公式中名称中字母的大小写无关紧要,因此当您组合这些人的名字和姓氏时,它们是完全相同的。因此,如果您正在寻找Thomas Tonfield的电话号码,并且他的名字出现在Thom Astonfield之后的列表中,那么您将始终获得Thom的电话号码,而不是Thomas的电话号码。
要解决此潜在问题,您可能需要在名字和姓氏之间添加某种分隔符。使用技巧中较早的公式之一,您需要做的就是进行调整,如下所示:
=INDEX(Phones,SUMPRODUCT((F1&":"&F2=FNames&":"&LNames)*(ROW(FNames)-1)))
名字和姓氏之间加冒号作为分隔符,消除了误报的可能性。
您还应该意识到,如果单元格F1和F2包含一个根本没有出现在数据中的名称,那么从公式中获取的信息将是错误的。根据所使用功能的变化,您可能会返回实际的错误情况(例如#N / A或#REF)
否则您可能会找回普通的错误数据。在返回错误条件的那些情况下,您可能希望通过以下方式调整公式以解决找不到匹配项的可能性:
=IF(ISERROR(INDEX(Phones,MATCH(F1&":"&F2,FNames&":"&LNames,0))), "no phone",INDEX(Phones,MATCH(F1&":"&F2,FNames&":"&LNames,0)))
使用这些类型的公式时,应牢记一些注意事项。首先,您返回的信息的可靠性将在很大程度上取决于数据列表中信息的质量。如果您的数据中包含拼写错误,包含空格,以某种奇怪的顺序排序,或者同一个人有多个条目,则可能会影响公式的返回值。
如果您不太确定数据的质量,则可以只使用Excel的过滤功能,而不要使用公式。应用一个自动筛选器,您可以使用数据的前两列来选择名字和姓氏。然后,它将返回您选择的个人的任何电话号码。这非常简单,并且使选择所需数据变得容易。
最后,您应该意识到可以使用其他方法来解决该问题。例如,您可以创建一个使用DGET函数的公式,但是这样做需要在工作表或工作簿中添加一个小的标准表。由于Kimm指定她不能在工作表中添加中间结果,因此做出了编辑决定,不包括DGET函数作为解决方案,因为这需要添加标准表。
此外,如果您习惯使用宏,还可以创建一个用户定义的函数,该函数将检查数据并返回请求的电话号码。使用这种方法的好处是,它在处理函数实际返回的信息时为您提供了更大的灵活性。
_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。
本技巧(10478)适用于Microsoft Excel 97、2000、2002和2003。您可以在以下位置找到适用于Excel功能区界面(Excel 2007和更高版本)的本技巧的版本:
链接:/ excelribbon-Pulling_a_Phone_Number_with_a_Known_First_and_Last_Name [使用已知的名字和姓氏拉电话号码]。