如何在excel中用函数公式将数字按照出现的次数排序组合成新的字符串?

如下图所示:

C列分别列出了B列的数字在A1单元格中出现的次数,现在希望将B列的数字按照C列统计的次数,从大到小组合起来成为“3465298710”,可以在D1单元格中输入如下的函数公式:

=TEXT(SUMPRODUCT(N(OFFSET(B1,--RIGHT(LARGE(C1:C10*100000+ROW(1:10),ROW(1:10)),5)-1,0))*10^(10-ROW(1:10))),"0000000000")

公式的算法如下:

  1. 先将C列的出现次数同时乘以一个特大的数,然后加上它们所在的行号
  2. 用Large函数从大到小依次获取
  3. 用Right函数取出排序好的行号,也就是从大到小出现次数对应的行号
  4. 用Offset函数依次取出C列出现次数对应的数值
  5. 然后依次乘以10的N次方,相加,实现数值的合并
  6. 为了确保0为出现的最大次数的数值时,不显示,在函数公式的外围再套一个TEXT函数。

 

       

发表评论