我们正在使用 Excel 2003,但必要时可以升级。我们需要根据两个输入计算(或查找)一个值。两个输入都将是 Excel 下拉框。
第一个下拉菜单的值有6
,9
,12
,16
。20
第二个下拉菜单的值有6x6
,10x10
,20x20
。
我们如何查找相应的值并将结果放入单独的单元格中?
答案1
没必要那么复杂。例如以下。
- 选择列标题并将其命名为 Input1。(示例中的范围为 E1:I1。)
- 选择行标题并将其命名为 Input2。(范围 D2:D4)
- 选择您的数据并将其命名为数据。(范围 E2:I4)
- 使用数据验证来获取下拉菜单。
- 选择单元格 B2 并单击数据 - 数据验证。
- 设置验证标准允许至
List
和来源至=Input1
- 对输入消息和错误警报进行任意操作。(我将它们关闭了。)
- 重复您的第二次输入。(单元格
B3
获取源=Input2
)
- 在结果单元格中输入此公式
=INDEX(Data,MATCH(B3,Input2,0),MATCH(B2,Input1,0))
该公式的工作原理如下:
MATCH(lookup_value, lookup_array, [match_type])
MATCH
有点类似于,VLOOKUP
只不过它返回的是lookup_value
中的 相对位置,而不是单元格/单元格值lookup_array
。在 区域上使用它Input1
会返回相对列位置,而在 上使用它Input2
会返回相对行。设置match_type
为 0 表示 Excel 仅返回精确匹配。
INDEX(reference, row_num, [column_num], [area_num])
INDEX
Data
正在返回在的引用行Input2
和 的引用列中找到的单元格Input1
。
注意:在 Excel 2010 中(我不确定早期版本是否如此),数据表甚至不需要与输入和结果单元格位于同一工作表上。
答案2
有一种方法可以做到这一点,但它并不像你想象的那么直观。为了实现你想要的效果,你可以使用与那里相同的表格布局类型,但你还需要添加一些内容:
- 用户数据表:这可以是与您已有的格式相同的格式,尺寸在左侧,类型/大小在顶部,相关数据在左侧。
- 表单数据和索引:由于 Excel 表上有组合框(即表单控件),因此您需要能够正确绑定该信息。为此,请查看此答案底部的绑定部分;但只需说,您需要告诉表单您有哪些维度和类型,以便它们出现在组合框中。您还需要告诉 Excel 表哪些索引对应于哪些值,因为组合框除了实际索引外不返回任何数据。
- 结果和公式:用户可以选择他们想要的维度和类型,您可以看到数据是什么;结果也是用那里列出的公式计算的。您可以从数据中看到公式是如何组合在一起的。您需要根据您的工作表自定义范围和位置,以及您放置所有内容的位置,但这就是我给您的原因分解部分。
向 Excel 添加组合框:
- 点击“开发人员”,或者使用早期版本中的开发者菜单:
如果你没有开发人员选项卡或顶部的菜单,编辑您的偏好设置(通常在高级部分),然后检查或启用开发人员选项,这样你就有了菜单。你可以在这里查看这篇文章,了解更多详细信息: http://office.microsoft.com/en-us/excel-help/show-the-developer-tab-or-run-in-developer-mode-HA010173052.aspx
- 单击“插入”,然后选择组合框:
这会将实际的组合框添加到您的 Excel 表中,通常,除非您绘制所需的尺寸,否则您会得到一个大框:
您可以通过右键单击组合框并根据需要拖动边缘来调整其大小。
- 右键点击在新的组合框上,选择格式控制:
- 配置按您需要的方式选择选项:
- 输入范围:这些应该是组合框中所有选项的垂直列表
- 蜂窝链接:这是您希望返回索引结果的地方。
- 当您使用组合框时,结果将返回:
- 将索引绑定到值:只需在组合框选项后指定索引计数,然后进行简单的查找: