带有名称/值对的Excel下拉列表
我有两个工作表的工作簿。
“Sheet2”有两列:
| A | B | +---------+---------------+ | code1 | description 1 | | code2 | Descr 2 |
Sheet1有几列,其中一列(D列)是代码 。 在这个专栏里,我需要一个“下拉框”,什么
- 将显示栏Sheet2!B(描述),以及何时用户select一个描述
- 将从col:Ainput
code
。
在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步骤:
-
定义一个用作查找值的范围
-
创build下拉列表
-
粘贴一些代码
步骤1:像这样安装Sheet2
并将命名范围定义为_descrLookup
:
( Highlight -> Right-Click -> "Define Name..." )
这是一个可选的步骤,但它使得步骤3的操作变得简单。
第2步:在工作表1 Sheet1
,使用数据validation创build下拉列表,并使用您想要在DROPDOWN中显示的值作为源。 在这个例子中是Sheet2 A2:A4
(见上图):
( 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打开“开发人员”选项卡:
- 在菜单中selectExcel->首选项
- 在“ 创作”部分中,单击“ 查看”
- 在对话框的底部,选中“ 开发人员”选项卡checkbox
- 开发人员选项卡现在在Excel中可见