带有名称/值对的Excel下拉列表

我有两个工作表的工作簿。

“Sheet2”有两列:

| A | B | +---------+---------------+ | code1 | description 1 | | code2 | Descr 2 | 

Sheet1有几列,其中一列(D列)是代码 。 在这个专栏里,我需要一个“下拉框”,什么

  • 将显示栏Sheet2!B(描述),以及何时用户select一个描述
  • 将从col:Ainputcode

在Sheet1中without additional helper column是可以的吗? (Excel 2010)

所以,在html中需要一些简单的东西:

 <select> <option value="code1">Description 1</option> <option value="code2">Descr 2</option> </select> 

当用户select“描述2”时,表格得到“编码2”。

这个问题可能是重复的 – 但我不确定 – 要: 如何在Excel中创build多个列的下拉列表 ,但唯一的答案是它指向我的解决scheme是另一个问题的外部网站 。

添加了一个更精确的解释截图: 在这里输入图像说明

这听起来像数据validation(允许列表)结合VLOOKUP将做你想要的。

在第2页上设置您的描述/代码列表。 将其命名为范围(有助于避免循环引用问题)。

在表1的说明列中,使用数据有效性制作引用列表描述列的下拉列表。 在代码列中使用VLOOKUP函数,键入下拉列表值。

 =IF(B4="", "", VLOOKUP(B4, FruitList, 2, FALSE)) 

更新

我开始看到你的意思是“没有帮手列”,但我不确定你能得到你想要的。 Exceldevise的一个事实:你看到的是你得到的,即在单元中显示的值是该单元的有效值。 您不能让单元格显示一个值,而是“包含”另一个值。 这样的事情在HTML中是“简单的”,但是HTML控件并不是为了与电子表格中的单元格相同的目的而构build的。 同时有两件事:一个值和一个该值的用户界面表示。 一个电子表格单元格可以包含一个方法来确定一个值(下拉列表,公式等),但无论它达到什么值将是它显示的值。

Excel有forms支持与combobox,但我相信值仍输出到另一个单元格。

通常的做法是使用数据validation来创build下拉列表,并使用VLOOKUP作为代码的单独列。 如果你真的不能有另一列包含代码,那么我不知道该怎么告诉你。 这将取决于数据如何被消费; 你想要打印输出,还是正在处理另一个程序的工作表?

更新2

如果您真的想要不使用单独的代码列,您可以使用combobox技术,如下所述:

http://www.contextures.com/xlDataVal10.html

这将是复杂的。 你需要做的是(a)当用户selectD列中的一个单元格时,让combobox出现;(b)dynamic调整框的显示项目。 这将涉及VBA代码,我不是100%确定这是可能的。 这当然不值得。

简单! 这是我们将要得到的!

在这里输入图像说明

仅3步骤:

  1. 定义一个用作查找值的范围

  2. 创build下拉列表

  3. 粘贴一些代码


步骤1:像这样安装Sheet2并将命名范围定义为_descrLookup

定义VLookup的命名范围

 ( Highlight -> Right-Click -> "Define Name..." ) 

这是一个可选的步骤,但它使得步骤3的操作变得简单。


第2步:在工作表1 Sheet1 ,使用数据validation创build下拉列表,并使用您想要在DROPDOWN中显示的值作为源。 在这个例子中是Sheet2 A2:A4 (见上图):

将数据验证设置为来自工作表2的源

 ( Data -> Data Validation ) 


第3步:Sheet1添加一些VBA代码:

 ( Right-Click the tab Sheet1 -> View Code ) 

将其粘贴到Sheet1的代码窗口Sheet1

 Private Sub Worksheet_Change(ByVal Target As Range) selectedVal = Target.Value If Target.Column = 4 Then selectedNum = Application.VLookup(selectedVal, Worksheets("Sheet2").Range("_descrLookup"), 2, False) If Not IsError(selectedNum) Then Target.Value = selectedNum End If End If End Sub 

我可以使用以下步骤在Excel 2016(15.33)中为Mac OS X打开“开发人员”选项卡:

  1. 在菜单中selectExcel->首选项
  2. 在“ 创作”部分中,单击“ 查看”
  3. 在对话框的底部,选中“ 开发人员”选项卡checkbox

查看对话框从Excel 2016(15.33)为Mac OS X

  1. 开发人员选项卡现在在Excel中可见

Excel主屏幕与开发人员选项卡