前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Excel实战技巧82: 排序的数据有效性列表

Excel实战技巧82: 排序的数据有效性列表

作者头像
fanjy
发布2020-06-18 15:17:30
1.1K0
发布2020-06-18 15:17:30
举报
文章被收录于专栏:完美Excel

学习Excel技术,关注微信公众号:

excelperfect

如下图1所示,是一个水果名称列表,我们想让其列表项作为数据有效性下拉列表的内容,且按顺序排列,并且当列表中添加或修改项目时,数据有效性列表会自动更新。

方法1:利用表和公式

如下图2所示,使用了4个辅助列,构建了一个名称为“水果表”的表。

在步骤1对应的列中,使用公式:

=COUNTIFS([水果],"<="&[@水果])

计算该行对应的水果在水果名中的排位(按从低到高的顺序)。

在步骤2对应的列中,使用公式:

=ROW([@水果])-ROW(水果表[[#标题],[水果]])

生成顺序号,即当前行相对于标题行的位置。

在步骤3对应的列中,使用公式:

=MATCH([@计数],[次序],0)

按顺序号找到对应的次序的位置,也就是水果名按次序排列的位置。

在步骤4对应的列中,使用公式:

=INDEX([水果],[@匹配位置])

获取该次序位置对应的水果名,完成排序操作。

将步骤4中表的列命名为:fruit_sorted

选择要设置数据有效性的单元格,对其进行如下图3所示的设置。

结果如下图4所示。

此时,在“水果表”中添加或修改水果名时,上图4中的下拉列表会自动更新。

方法2:使用公式排序

如下图5所示,在列A中是水果名列表,列B中是排序后的水果名列表。

在单元格B2中的公式为:

=LOOKUP(2,1/(COUNTIF(fruits,">="&fruits)=MAX(INDEX(COUNTIF(fruits,">="&fruits)*(COUNTIF(B$1:B1,fruits)=0),0))),fruits)

下拉至单元格B7。

其中,使用了定义的名称fruits,即:

名称:fruits

引用位置:=$A$2:INDEX($A:$A,COUNTA($A:$A))

为确保在添加水果名后,数据有效性列能自动更新,定义名称fruitsbyalpha,即:

名称:fruitsbyalpha

引用位置:=$B$2:INDEX($B:$B,COUNTA($B:$B))

与方法1一样,选择要设置数据有效性的单元格,设置如下图6所示。

结果与上图4相同。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档