如何创建一个在隐藏字段中存储索引值的下拉列表?

Ala*_*an2 8 excel

我有一个Excel电子表格,在表1上,部门ID表示为一个数字,而在表2中,有一个列表,其中包含旁边的部门名称.

如果可能的话,我想要一些帮助和建议,因为我希望允许用户从下拉列表中选择部门名称,并使用部门编号填充隐藏字段.

例如,在工作表3中,部门ID存储C在该页面的列中:

表1

在此输入图像描述

表2

在此输入图像描述

表3

在此输入图像描述

Wiz*_*zhi 9

这可能是一种方法.

如果我已正确理解您,则用户将在工作表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)
  • 从列表ID的"Table2"返回索引号. INDEX(Table2[ID]
  • MATCH公式中的查找值来自"Table3",Department(下拉列表)
  • 查找值将显示在"Table2"列Department中.

将处理在"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中的"全部刷新"按钮更新表格.需要探索的东西,并进一步了解:)

在此输入图像描述

  • 哇,这是一个非常令人印象深刻的答案.如果我有任何问题,我会检查出来并告诉您.谢谢 (4认同)
  • 别客气.随意询问是否有任何不清楚或不起作用:) (4认同)

Dar*_*ook 5

可以用 来完成INDEX/MATCH

举个例子:

Sheet1包含您的查找表。
为简单起见,范围内Sheet1有数字1-6A1:A6,范围内有数字 A-FB1:B6
1 - 6是主键,A - F是描述。

Sheet2在“允许列表”列中具有“数据验证” 用作源。这将为您提供 A 列中的下拉列表。 在隐藏的列 中,您有公式A=Sheet1!$B$1:$B$6
B=IFERROR(INDEX(Sheet1!$A:$A,MATCH($A2,Sheet1!$B:$B,0)),"")

该公式将返回描述所在的MATCH行号。 该公式将返回对同一行上 A 列中的单元格的引用 - 给出主键值。 如果未找到匹配项,则返回由语句处理的结果。Sheet1
INDEX
#N/AIFERROR