代码之家  ›  专栏  ›  技术社区  ›  MTT

从动态表中删除下拉列表

  •  0
  • MTT  · 技术社区  · 8 年前

    我有一个包含以下列的动态表:

    COUNTRY(String), ACTIVE (Boolean),NAME(String)
    

    例如:

    COUNTRY(String), ACTIVE (Boolean),NAME(String)
    USA, True, Chair
    Canada, False, Table
    USA, False, Pen
    USA, True, Pencil
    Canada, True, Pencil
    Canada, True, Basket
    

    我想创建一个数据验证列表,列出每个活跃国家的名称。列表应该是动态的,因为表格在不断变化。

    例如,数据验证列表应检查包含国家名称的单元格是加拿大还是美国,以及 如果是美国,那么是椅子、铅笔;如果是加拿大,那么是铅笔、篮子。

    1 回复  |  直到 8 年前
        1
  •  0
  •   elliot svensson    8 年前

    我已经用一个三步走的组织解决了这个问题。第一步是为将用于数据验证的任何增长/收缩列表制作一个“表格”。

    第一步

    列中列出可能的值作为新表。将国家名称放在每列的标题行。

      A       B       C       D       E
    1 Country chair           USA     Canada   <----header row
    2 USA     pencil          pencil  table
    3 Canada  table           Plato   warthog
    4 USA     warthog
    5 Canada  tuba
    6 USA     magic
    7 Canada  Plato
    

    选择列(例如,示例中的D1:E3)并单击插入>桌子

    选中“我的数据有标题”,然后单击“确定”。

    在新格式化的列中选择一个单元格,然后单击“表格工具”>设计>房地产>表名:\和类型国家。

    第二步

    选择要对其进行数据验证的列。请注意哪个单元格处于活动状态(您可以写入的选定区域内的单元格)。在这个例子中,它是B2单元。

    第三步

    在“数据验证”下,选择列表并键入以下等式:

    =INDIRECT("Countries[" & A2 & "]")
    

    如果激活的行是第3行,请输入以下内容:

    =INDIRECT("Countries[" & A3 & "]")
    

    这真的对我有用。试试看!