【问题标题】:Simple way to remove blank cells dynamic dropdown list Excel删除空白单元格动态下拉列表Excel的简单方法
【发布时间】:2015-08-12 15:27:11
【问题描述】:

每当我做一个相关的动态下拉列表时,我会在下拉列表中看到一堆空白单元格,我搜索了许多解释如何删除它们的主题,同时添加了两个额外的范围,如她解释的 http://blog.contextures.com/archives/2014/02/27/dynamic-list-with-blank-cells/

但我的问题是:有没有办法避免空白单元格或使用简单的方法删除它们,而不需要两个额外的范围或复杂的公式?

包含空白单元格的下拉列表我所做的只是进行数据验证并在源代码=MYCode 中写入然后我将包含MyCode 之类代码的列表命名为并且我检查了忽略空白大小写(即使它好像没用)

【问题讨论】:

    标签: excel excel-2010


    【解决方案1】:

    还有另一种方法。创建一个动态扩展的命名范围。然后使用范围来定义数据验证列表。

    要创建动态扩展范围,请将其插入命名范围框中并为其命名:

    =OFFSET($A$1,0,0,COUNTA($A:$A),1)
    

    $A$1 应替换为范围的顶部单元格。 $A$A 应替换为范围所在的列。

    OFFSET 将命名范围指向一个单元格范围。 COUNTA() 位于 OFFSET 公式的第四个位置,该公式设置范围的高度。它计算非空白单元格的数量。因此,当您添加一个值时,OFFSET 公式的第四个值会增加,并且您会得到一个扩大的范围。

    请注意,如果您的命名区域散布有空白单元格,这将不起作用。

    来自excel-easy.com 的偏移公式。

    【讨论】:

    • 晚了两年但纯属天才
    • 很棒的解决方案!
    【解决方案2】:

    我知道这个线程已经死了,但我找到了一个更简单的解决方案,它只需要您创建一个命名范围。即使空白单元格散布在源数据中,它也可以工作,并随着源数据的扩展而扩展。

    首先使用上面给出的公式创建动态扩展的命名范围:

    =OFFSET($A$1,0,0,COUNTA($A:$A),1)

    这将包括您想要在下拉列表中的值,以及空白单元格。 接下来,在一个单独的单元格中,输入以下内容:

    =FILTER(Your_Range, Your_Range "")

    结果将是您的源数据,没有空格。这将溢出到相邻的单元格中。现在可以引用这个单个单元格作为您的数据验证列表,只要在单元格引用的末尾添加“#”即可。这告诉 excel 在列表中包含所有溢出的值。

    好处:

    1. 如果您的源数据命名范围是动态的,下拉列表将随该范围扩展,您不必担心更新第二个命名范围。
    2. 您可以轻松过滤更多数据,并且是否穿插空白单元格。
    3. 结合 SORT 和 UNIQUE 函数,您可以进一步改进数据在下拉列表中的表示方式。

    我在其他任何地方都找不到这么简单的解决方案,所以我希望有人觉得这很有用。

    【讨论】:

      【解决方案3】:

      经过更多研究,我找到了解决方案。在填写我的信息的单元格中,我使用名称 Manager 添加了一个名称,并添加了我改编自 this article 的公式:

      =DropList!$J$1:INDEX(DropList!$J$1:$J$10000,SUMPRODUCT(--(DropList!$J$1:$J$10000<>"")))
      

      它完成了我需要的操作,而无需添加 2 个额外的单元格,即使代码行相当复杂。

      【讨论】:

      • 我不明白你的解决方案。您是否将上述公式行设置为下拉列表的值?当我尝试这样做时,我得到一个错误......
      • “使用名称管理器添加名称”是什么意思?
      • 您好,如果我没记错的话,您不需要更改任何内容,我实际所做的就是这样:(取决于您拥有的 excel 版本)按照此说明转到名称管理器图片techonthenet.com/excel/formulas/images/countifs004.gif 而不是插入上面的公式而不更改任何内容,如果您的单元格,例如假设您的数据在 A 或 B 或 C 列中而不是写 J 将其更改为 A 或 B 或 C (取决于在哪里您的数据是)不要更改数字
      • 感谢您的解释,我想我已经开始工作了。但是,这个公式似乎只从列表的 END 中删除空白单元格。要从一系列单元格的中间删除空白单元格,您需要创建一个新的单元格范围以过滤掉空白,如链接 (blog.contextures.com/archives/2014/02/27/…) 中所述。结合这两者,我能够得到一个有用的解决方案。
      • 我认为我的问题是最后的空白单元格,对不起,我不能更好地指导你,因为我去年夏天做过,很难准确记住,至少你解决了这个问题!祝你好运
      【解决方案4】:

      如果源列表内没有空单元格,但空行来自列表的末尾,则可以使用 table 作为下拉菜单的来源。您必须使用INDIRECT 函数来引用该表:

      • 选择包括标题在内的整个源列表
      • 点击Format as table
      • 选择表格,转到Design 选项卡(在Table Tools 下)
      • 重命名表
      • 选择要使用下拉菜单的单元格并打开Data Validation
      • 作为下拉源,设置:=INDIRECT("TableName[ColumnName]")(注意双引号)

      This article explains the procedure in more detail

      【讨论】:

        猜你喜欢
        • 2011-10-27
        • 1970-01-01
        • 2017-10-01
        • 2016-12-02
        • 2019-11-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多