我正在创建一个电子表格,用于计算游戏中的制作成本以确定利润率。我的电子表格中有一个部分,我希望在其中有两个下拉列表。在第一个下拉列表中,我想选择表格的列标题,在第二个下拉列表中,我想选择表格的行标题。在第三个单元格中,我想在公式中使用位于此交叉点的单元格中的值。我确信一定有办法做到这一点,但我还没有在 Google 上找到类似的东西。我找到的所有下拉列表依赖关系教程都使用不同的方法,不适合我的情况。非常感谢。
答案1
好的,无需借助 VBA 脚本,您必须制作两个小表,每个表有两列,第一列是索引,第二列是行/列标题。
因此,我们假设您的原始表格有 5 行 3 列,并带有简单的标题,例如 Row1、Row2、Row3、Row4、Row5 和 Col1、Col2、Col3。并且此表从 开始A1
,因此实际值从 开始B2
并一直到D6
。
- 在新列中输入行的数字索引,即 1、2、3、4、5
- 在右侧的列中输入行标题
- 对列重复上述步骤
因此你将得到如下结果:
接下来,在功能区上的“开发人员”选项卡中,单击Insert
> Combo Box (ActiveX Control)
。在您想要放置下拉列表的位置创建两个组合框。
如果您未处于设计模式,请单击设计模式。
- 右键单击第一个组合框,然后单击“属性”。
- 在
ColumnCount
字段中输入 2 - 在
ColumnWidths
字段中输入 0 - 在
LinkedCell
字段中,输入屏幕外的单元格值,例如,Y1
- 在
ListFillRange
字段中,输入涵盖行索引和行标题列的范围,以上面的图片为例,我将输入M1:N5
- 对列的第二个组合框重复上述五个步骤(继续示例,步骤 4 的值可以
Z1
- 现在我们可以用以下公式得到你想要的交点:
=INDEX(B2:D6,Y1,Z1)
基本上,通过LinkedCell
组合框的值,行和列索引分别填充在和中Y1
。Z1
从那里,我们使用Index
函数获取表中这些行和列偏移处的值B2:D6
。
注意:对于行,您可以在现有行标题的右侧添加一列并输入行索引(并隐藏该列)。但对于列,您必须创建一个新表,因为ListFillRange
组合框的字段不接受水平数组。(它确实接受,但不适合我们需要它的目的。)