我有一个带有以下标题的表:
我有一个下拉列表,允许人们用下面的公式选择年份:
=INDIRECT("BrandsMarketShares[#Headers]")
问题是,它还允许用户选择"品牌"标题,这是没有意义的,因为它有一组不同的值。我如何从公式中删除"品牌"列,同时仍然保持公式的适应性(表可以扩展或收缩,我不想不断更改公式)。谢谢!
lf3rwulv1#
这可以在不使用INDIRECT()的情况下通过添加一个步骤来完成,并且仍然是动态的。表有巨大的优势,但是一些函数在使用表时会有古怪的行为,比如在数据验证中不能使用[#Headers]。您可以更容易地执行自己的间接操作,而不再使用繁琐的INDIRECT()函数:
[#Headers]
进入名称管理器并创建一个新的表名,我们将其命名为Brand_Headers,并将其值设置为=BrandsMarketShares[#Headers]。现在,在数据验证中,我们只需使用公式=Brand_Headers就可以了。=DROP(Brand_Headers,,1)
Brand_Headers
=BrandsMarketShares[#Headers]
=Brand_Headers
=DROP(Brand_Headers,,1)
您还可以在定义的名称中包含DROP():1.在名称管理器中将Brand_Headers设置为=DROP(BrandsMarketShares[#Headers],,1)。1.只需在数据验证中使用=Brand_Headers作为公式。
=DROP(BrandsMarketShares[#Headers],,1)
对于查看此答案的其他人,请记住DROP()函数目前仅存在于Excel O365中。这种命名是一次性的,而且是动态的,如果您向表中添加列,Brand_Headers将包含这些列。
1条答案
按热度按时间lf3rwulv1#
这可以在不使用INDIRECT()的情况下通过添加一个步骤来完成,并且仍然是动态的。表有巨大的优势,但是一些函数在使用表时会有古怪的行为,比如在数据验证中不能使用
[#Headers]
。您可以更容易地执行自己的间接操作,而不再使用繁琐的INDIRECT()函数:进入名称管理器并创建一个新的表名,我们将其命名为
Brand_Headers
,并将其值设置为=BrandsMarketShares[#Headers]
。现在,在数据验证中,我们只需使用公式
=Brand_Headers
就可以了。=DROP(Brand_Headers,,1)
您还可以在定义的名称中包含DROP():
1.在名称管理器中将
Brand_Headers
设置为=DROP(BrandsMarketShares[#Headers],,1)
。1.只需在数据验证中使用
=Brand_Headers
作为公式。对于查看此答案的其他人,请记住DROP()函数目前仅存在于Excel O365中。
这种命名是一次性的,而且是动态的,如果您向表中添加列,
Brand_Headers
将包含这些列。