我遇到了一些流行的Excel问题,动态范围和数据验证下拉菜单和自动填充。假设我有两张工作表,在一张工作表上,我可以从另一张工作表中进行下拉选择,当我使用以下命令定义单元格和范围时,这不是问题:
=OFFSET($A$19;;;COUNTA('0528 - info'!$E$2))
..but如果我想在两者之间添加一些新的单元格,以便自动识别它们所属的组,该怎么办:
如你所见,B列有一些“组”,你可以在C列中找到更多不同的“值”,比如Power Supply has MV1和MV2...诸若此类。我在工作表1上的下拉列表被称为"groups“,我确实使用给定的函数手动引用了它们。但是,当我在此表中的MV2下添加实例MV3时,是否可以自动填充我的下拉列表?还是第14排的RN7?每次我添加新的值时,我必须扩展我的下拉列表(这很好..),但问题是当我将这个表分享给其他人时,他们会忘记它的90%。
我希望你明白我的意思,任何建议都可以!
附注:Indirect没有以它应该的方式工作-它给出了列中的所有实例,但没有给出我需要的具体实例。
=INDIRECT("Table4[VarEDS]")
好吧,这个选项给了我以前已经有的东西--列中的所有“匹配”,但仍然不仅仅是某些组的匹配。..。
发布于 2020-03-09 00:37:03
经过几天的寻找和尝试,我得到了我想要的--这根本不是一份好工作。需要在Leyla (Xelplus)的几个视频的帮助下组合更多的功能:
https://www.youtube.com/watch?v=gu4xJWAIal8
https://www.youtube.com/watch?v=7fYlWeMQ6L8&t=5s
第一步是在单独的页面上创建唯一的值列表(在我的例子中是文本):
=IFERROR(INDEX(t_VarGroup[Vargrouptext];MATCH(0;INDEX(COUNTIF($J$2:J2;t_VarGroup[Vargrouptext]););0));"")
然后,我需要“提取”属于特定唯一值的所有值:
=@IF($I3<COLUMNS($K$2:K$2);"";INDEX(t_EDS[[VarEDS]:[VarEDS]];AGGREGATE(15;3;(t_VarGroup[[Vargrouptext]:[Vargrouptext]]=$J3)/(t_VarGroup[[Vargrouptext]:[Vargrouptext]]=$J3)*(ROW(t_VarGroup[Vargrouptext])-ROW(t_VarGroup[[#Headers];[Vargrouptext]]));COLUMNS($K$2:K$2))))
FUrthermore,我创建了唯一的下拉列表:
=OFFSET($J$3;;;COUNTIF($J$3:$J$14;"?*"))
然后使用附近的从属下拉列表:
=OFFSET($K$2;MATCH($H$2;$J$3:$J$17;0);;1;COUNTIF(OFFSET($K$2;MATCH($H$2;$J$3:$J$17;0);;1;20);"?*"))
因为我是在其他工作表上做的,所以我必须将它们引用到我的主工作表所在的适当的工作表名称中-通过下拉列表,它实际上对我未来的工作和其他所有正在为下拉列表而苦苦挣扎的人都非常有用=)
致谢:@Naresh Bhople为Youtube视频提供建议。
发布于 2020-03-06 03:01:44
如果您的数据验证源是一个“表”,如您的图像所示,那么您可以利用“表列”范围,它是动态的。这意味着当您将该列作为命名区域引用时,如果对该列进行了更改(编辑、添加、删除),它将反映在引用的单元格中。
即使不在表中的范围,您也可以使用此技术。您需要使用偏移量公式命名它们,并使其成为动态的。
您可以找到列的动态地址,如下图所示。选择整列,不带表头
使用适当的名称命名列数据区域,如下图所示
然后在Data Validation窗口中使用F3引用此名称,如下图所示。
然后你就可以看到..。即使您编辑、添加或删除列中的任何行,数据验证也会更改
根据您的注释进行编辑:如果您希望B列和C列的文本一起出现在验证下拉列表中。在表中插入列并连接来自列B和C的文本,然后根据该列进行数据验证,如下图中的列D所示
我想我终于明白你的问题了。观看此视频Excel: Find Multiple Matches & Dependent Drop Down List
https://stackoverflow.com/questions/60549256
复制相似问题