我有一个Excel电子表格,其中在工作表1上部门编号用数字表示,在工作表2上有这些编号的列表,旁边是部门名称。
如果可能的话,我希望获得帮助和建议,因为我希望允许用户从下拉列表中选择部门名称,并用部门号填充隐藏字段。
例如,在工作表3中,部门ID存储在该页面的C
列中:
第1张
第2页
第3页
答案 0 :(得分:9)
这可能是一种方法。
如果我对您的理解正确,那么用户将在工作表3的下拉列表中选择部门名称,然后将显示与该部门名称关联的索引号。用户将不受限于相邻列中的名称(andy,bob)...
结果将是(请注意,这是一个Excel Table!):
我们有3张纸:
选择数据区域,然后单击“格式化为表格”,选择选项“我的数据有标题”。对所有3张纸都这样做。
为表格命名:“设计”->“表格名称”。我将在“ Sheet1”中使用“ Table1”,在“ Sheet2”中使用“ Table2”等。当您链接并引用公式时,它将使工作变得更轻松。请注意,对于“ 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)),))
第一部分创建我们的索引号:
...IFERROR(INDEX(Table2[ID],MATCH([@Department],Table2[Department],0)),)
INDEX(Table2[ID]
在“表3”的“部门”列中未选择任何内容时,将创建0(将参见下图)
=IF([@Department]="","", ...formula...)
不包含=IF([@Department]="","", ...formula...)
如果您不想隐藏“索引号”列,则可以在“表3”中隐藏它。
右键单击“列C
”标题,然后选择“隐藏”。
仅用于演示目的。我创建一个虚拟列“仅用于显示隐藏的列值”。因此,当用户选择部门名称时,它将更改与该部门关联的索引号。
那为什么要使用表和命名范围呢?
假设您需要添加一个新部门。我们在“表2”中添加部门,并为其指定ID:7
和部门名称:Department H
。
“ Sheet3”中发生的事情是,下拉列表将自动捕获新行。名为“ Department_Names
”的范围将调整为表格行,因为它链接到“ Table2[Department]
”。如果减少Table2
的行,也是如此。 Source
我还没有测试过,but I'm quite sure that you can link a table to an external source。因此,当您将数据导入表时(假设标题是静态的),该表将使用Excel中的“全部刷新”按钮进行更新。探索和深入研究的东西:)
答案 1 :(得分:4)
可以通过INDEX/MATCH
完成。
例如:
Sheet1
包含您的查找表。
为简单起见,Sheet1
的数字 1-6-在A1:A6
范围内,而 A-F 的数字在B1:B6
范围内。
1-6-是主键, A-F 是描述。
Sheet2在A
列中有 Data Validation :允许使用=Sheet1!$B$1:$B$6
作为 Source 的 List 。这将为您提供A列中的下拉列表。
在隐藏的B
列中,您有公式=IFERROR(INDEX(Sheet1!$A:$A,MATCH($A2,Sheet1!$B:$B,0)),"")
MATCH
公式将返回描述出现在Sheet1
中的行号。
INDEX
公式将返回对同一行A列中单元格的引用-提供主键值。
如果未找到匹配项,则返回#N/A
语句处理的IFERROR
。
答案 2 :(得分:4)