Excel:下拉列表取决于另一个下拉列表

2024-04-04

我想要在 Excel 中执行以下操作:

相邻单元格中的两个下拉列表:

下拉列表#1 |下拉列表#1

Dropdown list 1:
One
Two
Three

如果我在第一个单元格中选择一个,第二个单元格中的列表应包含以下选项:

One:  
1.1  
1.2  
1.3

如果我在第一个单元格中选择“二”,则第二个单元格中的列表应包含以下选项:

Two:  
2.1  
2.2
2.3

等等。周围有很多教程,但我在弄清楚哪些教程可以解决这个确切的问题时遇到了一些麻烦。

更新:一个例子。当选择 f.ex.组标题(A 列)下的第 1 组,右侧第 1 组(D 列)下列出的条目应出现在项目标题(B 列)下。其他组也是如此。


按照承诺更新:

当您使用列表进行验证时,您必须输入一个范围,如下所示。

The OFFSET http://support.microsoft.com/kb/324991函数允许根据其输入条件动态设置范围。

如果你考虑这一点:

=OFFSET(C1,0,0,1,1)
  • 参数 1 = 锚定单元
  • 参数 2 = 要移动的行数,您可以在此处使用负数向上移动行,使用正数向下移动
  • 参数 3 = 要移动的列数。左边为负,右边为正。
  • 参数 4 = 范围的高度(不能为负数且可选,默认为 1)
  • 参数 5 = 范围的宽度(不能为负数且可选,默认为 1)

在这种情况下,返回的范围将是C1因为我们没有行或列偏移并且高度和宽度设置为 1

The MATCH http://office.microsoft.com/en-gb/excel-help/match-function-HP010062414.aspx函数将返回值在单元格区域中出现位置的索引(范围必须为 1 个单元格宽或 1 个单元格高)

根据上面的丝网印刷=MATCH("Group2",D1:F1,0)将返回 2,因为“Group2”出现在第二个单元格中D1:F1范围。 (“Group1”将返回 1,“Group3”将返回 3,“Group4”将返回 #N/A,因为它不存在)。

所以基于此我们可以把MATCH函数作为我们的第二个参数OFFSET函数,然后选择与第一个参数匹配的列MATCH功能。

=OFFSET(C1,0,MATCH("Group2",D1:F1,0),1,1)将返回范围E1因为我们将列从C1因为MATCH

=OFFSET(C1,1,MATCH("Group2",D1:F1,0),3,1)现在将返回E2:E4因为我们已将范围的高度增加到 3,并将行偏移量增加到 1。

最后我们可以更改“Group2”值MATCH函数到单元格值,这意味着范围将动态变化。

这里我用的是CellA2 =OFFSET(C1,1,MATCH(A2,D1:F1,0),3,1)所以无论单元格中的值是什么A2将用于偏移范围。

最后要做的是将动态范围放入验证中(我使用B2)

这将动态设置验证范围。

当我使用时OFFSET函数具有多个参数,并且我不确定它是否返回正确的范围,我编写了一个小助手用户定义函数,我刚刚将其放入 VBA 模块中。

Public Function GetAddress(rng As Range) As String
GetAddress = rng.Address
End Function

这允许我输入偏移公式,它将返回范围地址。所以我可以确保它是正确的。

可能有一个内置函数可以实现此目的,但我从未找到过。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Excel:下拉列表取决于另一个下拉列表 的相关文章

  • 使用 Cucumber Scenario Outline 处理 Excel 电子表格

    如果可能的话 我试图找到一种更优雅的方法来处理从与 Excel 电子表格行 第 n 个 相关的 Cucumber Scenario Outline 中调用第 n 个数字 目前 我正在使用迭代编号来定义要从中提取数据的 Excel 电子表格的
  • 需要在Excel中合并3列

    我有 3 列 A B C 我需要合并这 3 列 并且我已经应用了 forumala A1 B1 C1输出为 E 列 我需要输出为 D 列 下面的公式将达到您想要的结果 TEXTJOIN TRUE A1 C1 Textjoin 的工作方式类似
  • 调用退出后应用程序未退出

    我有一个小问题 我似乎无法弄清楚 我正在将 DataGridView 它的内容 保存到 xls 文件中 我这样做没有任何问题 除了在我的任务管理器中它仍然显示它正在运行 我已致电 xlApp Application Quit 这被声明为 D
  • 强力查询历年产品利润对比

    我有一个数据集 其中包含公司 产品 利润和年份 公司每年都会销售少量产品并获得利润 公司没有必要在明年销售相同的产品 他们可能会省略以前的产品并添加新的少量产品 我只想对两年的产品进行逐个比较 如下所示 我的数据集是 Company Pro
  • 实体框架、dll、excel

    我用C 编写了Excel使用的dll 该dll是COM注册的 我与 Excel 的连接没有问题 该 dll 使用实体框架 5 从 SQL Server 数据库检索数据 如果我通过控制台应用程序运行该 dll 则该 dll 工作正常 但是当我
  • ASP.NET - Google Chrome 缓存 DropDownList 选择

    我的购物车页面上的 Google Chrome 和 Safari 似乎遇到了缓存问题 购物车中有 2 个下拉列表 当您在更改下拉列表中的值后点击结帐按钮时 它会将列表中选择的内容提交到数据库 解释意外的行为有点困难 所以我会尝试一步一步地写
  • 如何在Excel中识别给定月份的第一,第二等星期一或一周中的其他日期

    我在网上查了一下 但公式看起来很复杂 有什么巧妙的建议吗 例如 我需要一个公式来确定哪个日期是 2014 年 8 月的第一个星期一 类似于第二个星期一的使用 等等 谢谢 一般来说 你可以找到n 第一个x给定的一天M and Y用这个公式 D
  • 在 VBA 中使用 getElementsByClassName

    我正在使用此代码从页面获取产品名称 页面代码是 div class product shop col sm 7 div class product name h1 Claro Glass 1 5 L Rectangular Air Tigh
  • 由于直接引用范围而不是通过中间变量而导致 Excel VBA 运行时错误 450

    当我尝试直接引用某个范围内的值时 出现运行时错误 450 但如果我使用中间变量 它就会起作用 我不明白为什么 所以我担心在将来的某个时候我会再次遇到错误而不知道为什么 我尝试过使用 With End With 块 但当我直接引用范围时它仍然
  • java实现excel价格、收益率函数[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • For...VBA 中的下一个循环超出限制

    我正在使用一个For Next循环填充数组 如下所示 ReDim array 1 to 100 1 to 100 For i 1 to 100 Next i But the i计数器似乎总是转到 101 而不是停止在 100 因此 这会在我
  • 如何在未安装 Office 的情况下以编程方式创建、读取、写入 Excel?

    我对所有读取 写入 创建 Excel 文件的方法感到非常困惑 VSTO OLEDB 等 但它们都seem具有必须安装office的要求 这是我的情况 我需要开发一个应用程序 它将以 Excel 文件作为输入 进行一些计算并创建一个新的 Ex
  • 查找并替换目录中所有 Excel 文件工作簿中的字符串

    我正在编写 VBA 代码来替换位于特定目录中的多个 Excel 文件 工作簿 中的特定字符串 我尝试在 Stack Overflow 上搜索 找到答案 但这与通过 Excel 中的宏替换文本文件中的字符串有关 相同的链接是查找并替换文件中的
  • Apache poi setformula 不适用于 SE

    我正在尝试在 XSSFCell With POI 中设置公式 Cell setFormula SE D87 0 D80 D87 错误是 名称 SE 在当前工作簿中完全未知 Why 看起来您正在尝试创建一个IF公式 我发现这一页 http w
  • 使用 pythoncom 在 Python 进程之间编组 COM 对象

    我希望有人可以帮助我从 Python 进行编组跨进程调用到 Excel 我有一个通过 Python 启动的 Excel 会话 我知道当需要从单独的 Python 进程访问它时 该会话将会启动并运行 我已经使用编组让一切按预期工作CoMars
  • 复制一张工作表上的静态范围,然后根据单元格中的单个值粘贴到另一张工作表中的动态范围

    我对这个问题分为三个部分 我在 Sheet1 A1 中有一个带有周数的单元格 我在 Sheet1 B1 F1 中有一个需要复制的静态范围 然后 我需要将该值粘贴到 Sheet2 中的动态范围中 偏移量为行的周数 这是我正在为我经常使用的工作
  • 如何使用VBA根据条件删除Excel中的行?

    我目前正在构建一个宏来格式化数据表并删除不适用的数据行 具体来说 我希望删除列 L ABC 的行以及删除列 AA DEF 的行 到目前为止 我已经实现了第一个目标 但还没有实现第二个目标 现有代码是 Dim LastRow As Integ
  • 在组合框中显示可见工作表

    您好 我有以下代码来在组合框中显示工作表 创建工作表后 工作表会自动添加到列表中 我不希望隐藏的工作表在保管箱中可见 我怎么做 Option Explicit Private Sub ComboBox1 Change If ComboBox
  • php下拉菜单人口

    我正在尝试编写一个 php 脚本 该脚本将根据主下拉菜单的选择填充第二个下拉菜单 我想使用 jquery 来完成所有非页面刷新的事情 但我发现现有的所有东西都很难理解和修改 你知道有什么写得很好且易于理解的东西吗 或者可能是现有的教程 下面
  • 使用 MID、LEN 和 FIND 函数提取单元格文本的某些部分?

    我有一份 Excel 作业 但我陷入了最后部分 我被要求使用 MID LEN 和 FIND 来提取单元格内的特定字符串 我非常了解每个人的工作方式 将这三者结合起来并让它们发挥作用是我遇到的问题 我需要将城市与地址的其余部分分开 然后将其显

随机推荐