Excel 2010:如何用公式将A列变更单号对应B列最高业务关键性显示在C列
在Excel 2010中提取重复工单编号对应的最高业务关键性值
嘿,我来帮你搞定这个需求!你要做的是把A列中每个重复出现的工单编号对应的B列最高业务关键性值,同步到C列的每一行,对吧?下面分两种情况给你具体的解决方案:
情况1:B列是数值型数据(比如1-5的优先级数值)
在C2单元格输入以下公式,输入完成后不要直接按Enter,要按Ctrl+Shift+Enter组合键确认(这是Excel 2010中数组公式的要求):
=MAX(IF($A$2:$A$100=A2,$B$2:$B$100))
输入完成后,你会看到公式外面自动加上了大括号{},这就说明数组公式生效了。接着把C2单元格的公式下拉填充到所有数据行就可以了。
公式解释:
$A$2:$A$100=A2:锁定A列的数据范围,匹配当前行的工单编号,生成一个由TRUE/FALSE组成的数组,相同编号的位置为TRUEIF(...):将匹配到的TRUE位置对应的B列值保留,其他位置返回FALSEMAX():从保留的B列值中提取最大值,就是当前工单编号对应的最高业务关键性值
情况2:B列是文本型数据(比如"高"/"中"/"低"这类等级)
如果你的业务关键性是文本等级,需要先给这些文本赋予对应的数值权重,再计算最大值后转换回文本。假设"低"=1,"中"=2,"高"=3,在C2单元格输入以下公式,同样按Ctrl+Shift+Enter确认:
=LOOKUP(MAX(IF($A$2:$A$100=A2,LOOKUP($B$2:$B$100,{"低","中","高"},{1,2,3}))),{1,2,3},{"低","中","高"})
下拉填充后,就能得到每个工单编号对应的最高文本等级了。
额外优化建议
如果你的数据量很大,数组公式可能会拖慢Excel的运行速度。这时候可以先提取A列的唯一工单编号,单独计算最大值后再匹配:
- 在D列提取A列的唯一值(可以用高级筛选或者手动整理)
- 在E2单元格输入数组公式
=MAX(IF($A$2:$A$100=D2,$B$2:$B$100)),按Ctrl+Shift+Enter确认后下拉 - 在C2单元格输入
=VLOOKUP(A2,$D$2:$E$100,2,FALSE),下拉填充即可
这样拆分后,计算效率会高很多哦!
内容的提问来源于stack exchange,提问作者Ruthie09
相关产品推荐
相关产品推荐

