艾伦可以使用数据验证来创建单元格有效选择的下拉列表。但是,他实际需要的是更复杂的。他拥有大量的商品名称以及相关的商品代码。他可以在单元格B2中创建一个数据验证列表,该列表显示所有项目名称(搅拌器,马达,泵,罐等)。然后,用户可以选择其中之一。但是,当他在其他地方引用单元格B2时,他希望该引用返回项目代码(而不是项目名称)。因此,参考将返回A,M,P,TK等,而不是搅拌器,电动机,泵,水箱等。

在Excel中没有直接的方法可以做到这一点。原因是因为数据验证列表设置为仅包含一维项目列表。这使列表很容易包含您的项目名称。

但是,您可以稍微扩展使用数据验证列表的方式以获得所需的内容。请按照下列步骤操作:

。在工作表数据右侧的某个地方,建立一个数据表。

该表将包含您的商品名称,并在每个商品名称的右侧,包含与该名称关联的商品代码。

。选择包含您的项目名称的单元格。 (不要选择商品代码,仅选择名称。)

。选择插入|姓名|定义。 Excel将显示“定义名称”对话框。 (请参见图1。)

。在名称框中,输入一个描述性名称,例如ItemNames。 。单击“确定”添加名称,然后关闭对话框。

。选择单元格B2(您要在其中验证列表的单元格)。

。从数据菜单中选择验证。 Excel将显示“数据验证”对话框。 (请参见图2。)

。使用“允许”下拉列表,选择“列表”。

。在“源”框中,输入等号,后跟您在步骤4中定义的名称(例如= ItemNames)。

。单击确定。

完成这些步骤后,人们仍然可以使用数据验证下拉列表来选择有效的项目名称。现在,您需要参考在步骤1中设置的数据表中的商品代码。您可以使用以下公式来做到这一点:

=VLOOKUP(B2,OFFSET(Itemlist,0,0,,2),2,FALSE)

该公式既可以单独使用(将所需的商品代码放入单元格中),也可以在较大的公式中使用,无论您最初引用的是B2。

如果由于某种原因而无法为商品名称和代码创建数据表,则可以通过创建数组公式来解决该问题:

=INDEX({"A","M","P","TK"},MATCH(B2,{"agitator","motor","pump","tank"},0))

与所有数组公式一样,您可以通过按Ctrl + Shift + Enter来输入此公式。它的最大缺点是,它可能很快变得笨拙,无法保持公式更新,并且对公式中可以包含多少对代码和项目有“生存力限制”。 (该限制由公式长度定义,因此取决于项名称的长度。)此外,此方法最好只将项代码返回到另一个单元格中,而不是将其包含在较大的公式中。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(12077)适用于Microsoft Excel 97、2000、2002和2003。您可以在以下位置找到适用于Excel功能区界面(Excel 2007和更高版本)的本技巧的版本:

链接:/ excelribbon-Returning_Item_Codes_Instead_of_Item_Names [返回项目代码而不是项目名称]。