我有一个Excel电子表格,在表1上,部门ID表示为一个数字,而在表2中,有一个列表,其中包含旁边的部门名称.
如果可能的话,我想要一些帮助和建议,因为我希望允许用户从下拉列表中选择部门名称,并使用部门编号填充隐藏字段.
例如,在工作表3中,部门ID存储C在该页面的列中:
表1
表2
表3
这可能是一种方法.
如果我已正确理解您,则用户将在工作表3的下拉列表中选择部门名称,并且将显示与该部门名称关联的索引编号.用户不会受限于相邻列中的名称(andy,bob)...
结果将是(注意这是一个Excel表!):
我们有3张:
选择数据区域并单击"格式化为表格",选择"我的数据有标题"选项.对所有3张纸都这样做.
为表命名:"设计" - >"表名".我将"Sheet1"用于"Sheet1",将"Table2"用于"Sheet2"等.当您在公式中链接和引用时,它将使生活更轻松.请注意,对于"Sheet3",我还添加了一个虚拟列C.我将其命名为"索引号".
转到"Sheet2"并选择您要用作下拉列表的范围(在我的情况下,我选择部门名称并选择" B2:B8".点击"公式" - >"名称管理器" - >"新... "
此窗口将弹出.将其命名为一个简单的名称(我将其命名为"Department_Names")并检查" Refers to:"是否采用此格式 " =TableX[Column Name]".在我们的例子中=Table2[Department].请注意,名称管理器不使用" B2:B8",而是引用表列区域.最后一步非常重要!
转到Sheet3.单击要应用下拉列表的单元格(我B2在示例中使用).单击"数据" - >"数据验证".
现在将弹出数据验证窗口.转到"列表",在"源:"字段中,将您命名的范围写为=Department_Names(我命名为"Department_Names"的范围).下拉列表将使用" Department_Names"应用范围中的值.在我们的例子中,它将从"Sheet2",范围中创建所有部门名称的下拉列表B2:B8.
转到"Sheet3"并在单元格中输入下面的公式C2,如图所示.
注意我使用" ; "作为分隔符(欧洲版的Excel,美国用户可能会使用" , ").
=IF([@Department]="","",IFERROR(INDEX(Table2[ID],MATCH([@Department],Table2[Department],0)),))
Run Code Online (Sandbox Code Playgroud)
第一部分创建我们的索引号:
...IFERROR(INDEX(Table2[ID],MATCH([@Department],Table2[Department],0)),)
Run Code Online (Sandbox Code Playgroud)
INDEX(Table2[ID]将处理在"Table3",Department列中未选择任何内容时将创建的0(例如,参见下一张图片)
=IF([@Department]="","", ...formula...)
Run Code Online (Sandbox Code Playgroud)
没有的公式 =IF([@Department]="","", ...formula...)
如果您不想让它显示,可以隐藏"Sheet3"中的"索引号"列.右键单击Column C标题,然后选择"Hide".
仅用于演示目的.我创建了一个虚拟列"仅用于显示隐藏的列值".因此,当用户选择部门名称时,它将更改与该部门关联的索引编号.
那么为什么使用表和命名范围呢?
假设您需要添加一个新部门.我们在"Table2"中添加一个部门,我们给它ID:7和部门名称:Department H.
"Sheet3"中发生的情况是下拉列表将自动捕获新行.名为" Department_Names" 的范围将调整为表格行,因为它链接到" Table2[Department]".如果减少行,也是如此Table2.资源
我没有测试过,但我很确定你可以将表链接到外部源.因此,当您将数据导入表格时(如果标题是静态的),将使用Excel中的"全部刷新"按钮更新表格.需要探索的东西,并进一步了解:)
可以用 来完成INDEX/MATCH。
举个例子:
Sheet1包含您的查找表。
为简单起见,范围内Sheet1有数字1-6A1:A6,范围内有数字 A-FB1:B6。
1 - 6是主键,A - F是描述。
Sheet2在“允许列表”列中具有“数据验证” ,用作源。这将为您提供 A 列中的下拉列表。
在隐藏的列 中,您有公式A=Sheet1!$B$1:$B$6B=IFERROR(INDEX(Sheet1!$A:$A,MATCH($A2,Sheet1!$B:$B,0)),"")
该公式将返回描述所在的MATCH行号。
该公式将返回对同一行上 A 列中的单元格的引用 - 给出主键值。
如果未找到匹配项,则返回由语句处理的结果。Sheet1INDEX#N/AIFERROR