如何解决基于下拉结果的 Excel 动态命名范围
我有一张这样的桌子:
公司 | 部门 |
---|---|
可乐 | 可乐 HR |
可乐 | 可乐销售 |
火星 | Mars HR |
火星 | 火星销售 |
目前,我正在使用动态命名范围公式在单元格下拉列表中生成。公式为:
=OFFSET(References!$A$2,COUNTA(References!$A:$A)-1)
=OFFSET(References!$B$2,COUNTA(References!$B:$B)-1)
但理想情况下,如果在第一个单元格中选择了可乐,那么第二个单元格应该只在第二个单元格中提供可乐的 HR 和销售。我想我可能需要在现有的偏移函数中添加一个 xlookup 函数来实现这一点,但我真的不确定。有人能指出我正确的方向吗?
解决方法
功能
等等,还有更多!
添加的功能可以轻松删除:虽然列表在关联元素的上下文中相互依赖,但它们的功能是完全“模块化”和独立的...
Excel 屏幕截图
随后的材料应与此屏幕截图中的表格/单元格等相关:
OneDrive 链接到 Excel 电子表格:here。
**Steps / fns 重新创建 **
- 根据上面的内容创建第二个查找表
- 颜色编码表示函数文本对应的单元格,例如G10功能进入G5,H10适用于H5等
- 建议以与我现阶段完全相同的方式设置电子表格(或只需下载上面的链接,您的电话)*
可乐/火星初选
=IFERROR(FORMULATEXT(Range_beverage),"")
可口可乐人力资源/销售选项
=TRANSPOSE(FILTER(R6C4:R9C4,R6C3:R9C3=RC[-1]))
- 打开名称管理器 - 您将创建以下命名范围:
- 在执行此操作之前,请转到:Alt+ T + O(文件、选项)、公式和 Alt+R(即选择 R1C!单元格引用,因为这会派上用场,您可以稍后再改回来)*
姓名 | 公式 |
---|---|
Range_primary1 | =IF(MID(RC[1],1,SEARCH(" ",RC[1])-1)="Coke",R5C7,R6C7) |
Range_beverage | =R5C7:R6C7 |
Range_primary | =IF(RC[1]<>"",Range_primary_1,Range_beverage) |
SubRange_Mars | =R6C8:R6C9 |
SubRange_Coke | =R5C8:R5C9 |
子范围 | =IF(R5C[-1]="Mars",SubRange_Mars,SubRange_Coke) |
-
您可以包含更强大的方法,以便稍后动态引用这些单元格作为请求。
-
关于验证列表的注意事项:不能使用引用范围的函数;不能将命名范围与这样的函数一起使用(删除了 1 个),但“删除了 2 个”有效(即引用命名范围,该范围引用了另一个具有函数的范围)
- 插入两个彼此直接相邻的验证列表(上面主电子表格屏幕截图中的每个黄色阴影单元格),如下所示:
a) Alt + d + L(或者你用鼠标做的任何事情) - 删除 Input Message 和 Error Alert 选项,如下图所示:
指定验证列表来源
而且不是我们一直在等待的那一刻......
即来源如下:
左侧列表(即可乐/火星):
=Range_primaray
正确列表(可乐/火星的人力资源/销售):
=SubRange
另一个有趣的 Microsoft/Office 小“错误”,我需要与 Bill 聊聊:完成上述最后一步后,打开验证列表对话浏览器,只需仔细检查输入错误/警报消息选项是否仍处于禁用状态。我知道他们会顽皮地恢复(除非它允许您取消选择,即使它只会在验证对话框选项卡式菜单窗口的餐厅部分发生更改后才存储您的选择...
无论如何,一切顺利,去壳。 - 希望这对你有用! :)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。