分享

Excel公式技巧44: 对文本进行排序

 hercules028 2020-07-31

excelperfect

在《Excel公式技巧39: COUNTIF函数在文本排序中的应用》中,我们使用COUNTIF函数来求得单元格区域中文本的顺序号,然后根据该顺序号获得相应的文本,从而实现文本排序。本文不使用辅助列,直接使用一个数组公式来获得排序文本。

如下图1所示,列A中是没有排序的文本,列B中是排好序的文本。

图1

在单元格B2中的数组公式是:

=INDEX(List,MATCH(SMALL(COUNTIF(List,'<'&List),ROW(1:1)),COUNTIF(List,'<'&List),0))

其中,List是一个定义的名称。

名称:List

引用位置:=Sheet1!$A$2:$A$7

这个公式的核心是COUNTIF函数部分,判断指定的字符串是否小于列表中其他字符串面得到一组数字,即:

COUNTIF(List,'<'&List)

转换为:

{5;0;2;3;0;3}

表明,在单元格区域A2:A7中,有5个小于单元格A2中的“DDD”、没有小于单元格A3中的“AAA”、有2个小于单元A4中的“BBB”、…,依此类推。

这样,单元格B2中的公式转换为:

=INDEX(List,MATCH(SMALL({5;0;2;3;0;3},ROW(1:1)),{5;0;2;3;0;3},0))

转换为:

=INDEX(List,MATCH(SMALL({5;0;2;3;0;3},1), {5;0;2;3;0;3},0))

转换为:

=INDEX(List,MATCH(0,{5;0;2;3;0;3},0))

转换为:

=INDEX($A$2:$A$7,2)

得到:

AAA

当公式向下拉时,ROW(1:1)将相应变化,从而获取不同的文本值。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多