网站首页 > 知识剖析 正文
一、根据产品产量进行排序
例 按产品产量降序排列
如下图所示的是某企业各生产车间钢铁生产的产量明细表,需要按产量降序排列产量明细表。
方法1 产量附加行号排序法。选中G2:G8单元格区域,在编辑栏中输入以下数组公式,按<Ctrl+Shift+Enter>组合键。
{=INDEX(C:C,MOD(SMALL(ROW(2:8)-D2:D8/1%%%,ROW(1:7)),100))}
该公式使用ROW函数产生的行号序列与产量的1 000 000倍组合生成新的内存数组,再使用SMALL函数从小到大逐个提取,使用MOD函数返回排序后的行号,最后使用INDEX函数返回产品类别。
在H2单元格中输入以下公式计算产量,并向下复制到H8单元格。
=VLOOKUP(G2,C:D,2,)
方法2 RANK函数化零为整排序法。选中K2:K8单元格区域,在编辑栏中输入以下数组公式,按< Ctrl+Shift+Enter>组合键。
{=INDEX(C:C,RIGHT(SMALL(RANK(D2:D8,D2:D8)/1%+ROW(2:8),ROW()-1),2))}
使用RANK函数将产量按降序排名,与ROW函数产生的行号数组组合生成新的数组,再使用SMALL函数从小到大逐个提取,RIGHT函数返回排序后的行号,最后使用INDEX函数返回产品类别。
在L2单元格中输入以下公式计算产量,并向下复制到L8单元格。
=SUMIF(C:C,K2,D:D)
方法3 SMALL函数结合COUNTIF函数排名法。在P2单元格中使用以下公式先将产量按降序排列。
=LARGE(D$2:D$8,ROW(A1))
在O2单元格中输入以下数组公式,按<Ctrl+Shift+Enter>组合键,并向下复制到O8单元格。
{=INDEX(C:C,SMALL(IF(P2=D$2:D$8,ROW($2:$8)),COUNTIF(P$1:P2,P2)))}
根据产量返回对应的产品类别。当存在相同产量时,使用COUNTF函数统计当前产量出现的次数,分别返回不同的产品类别。
提示:当产量数值较大或小数位数较多时,方法1受到Excel的15位有效数字的限制,而不能返回正确排序结果。方法2使用RANK函数将数值化零为整,转换为数值排名,可有效应对大数值和小数位数多的数值,避免15位有效数字的限制,返回正确的排序结果。
二、多关键字排序技巧
例 按各奖牌数量降序排列奖牌榜
如下图所示的是2014年仁川亚运会奖牌榜的部分内容,需要依次按金、银、铜牌数量对各个国家或地区进行降序排列。
由于各个奖牌数量都为数值,且都不超过3位数,因此可以通过“*10^N”的方式将金、银、铜牌3个排序条件整合在一起。
选中G2:G10单元格区域,在编辑栏中输入以下数组公式,按<Ctrl+Shift+Enter>组合键。
{=INDEX(A:A,RIGHT(LARGE(MMULT(B2:D10,10^{8;5;2})+ROW(2:10),ROW()-1),2))}
公式使用MMULT函数将金、银、铜牌数量分别乘以10^8、10^5、10^2后求和,把3个排序条件整合在一起形成一个新数组。该数组再与行号构成的序数数组组合,确保数组元素大小按奖牌数量排序的前提下最后两位数为对应的行号。
然后使用LARGE函数从大到小逐个提取,完成降序排列。再使用RIGHT函数返回对应的行号,最后使用INDEX函数返回对应的国家或地区。
在H2单元格中输入以下公式,查询各国家或地区的奖牌总数。
=VLOOKUP(G2,A:E,5,)
猜你喜欢
- 2025-01-20 Excel中的6个经典排序技巧都不掌握,还敢称Excel达人?
- 2025-01-20 查询函数Choose、Lookup、Hlookup、Vlookup应用技巧解读
- 2025-01-20 一起学《C程序设计》第六课——数组、字符串及实战练习
- 2025-01-20 一文解决CSP-J考纲所有排序算法
- 2025-01-20 Excel VBA 自定义函数/数组字段定位/数组字段排序
- 2025-01-20 java基础,arrays类,Java的八种排序,冒泡排序
- 2025-01-20 excel中什么是数组,数组的作用是什么,这篇文章就带你入门
- 2025-01-20 怎么求第K大的数,topK 问题(快排的应用)java
- 2025-01-20 VBA按日期统计就餐时段刷卡及人数(数组字典内置函数去重排序)
- 2025-01-20 JS 判断两个数组是否相等,元素以及顺序相等,顺序不同但元素相等
- 04-29php开发者composer使用看这一篇就够了
- 04-29引用和变量声明在不同语言中的实作
- 04-29PHP 没你想的那么差
- 04-29Ubuntu linux 上的 Nginx 和 Php 安装
- 04-29CentOS下通过yum搭建lnmp(单版本PHP)
- 04-29为什么 PHP8 是个高性能版本
- 04-29PHP8函数包含文件-PHP8知识详解
- 04-29使用无参数函数进行命令执行
- 最近发表
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)