EXCEL函数求排名第一的值

请教,我想用函数求当日销售金额最大的那个商品的商品编码,例如:2019-5-3,销售第一的商品编码是119023(销售金额是192000元),销售第二的商品编码1180042(销售金额50000元),J2单元格怎么用函数求出销售第一的商品编码119023?如果E列有重复的商品编码,要把G列的值汇总考虑求销售最大的那个编码。

1、将你原表商品编码列值复制到J列,然后选定此区域J列,数据---删除重复项(这样得到全部编码的唯一值);

2、K列值,销售金额公式 K2==SUMIF($E$2:$E$26,J2,$G$2:$G$26), 下拉,得到所有行的销售金额,

3、加一列“排名”L列,L2=RANK(K2,K2:K8) ,下拉,得到全部排名,下图参考

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-05-09

用H列辅助一下,在H2单元格输入公式=IF(COUNTIF(E$2:E2,E2)=1,SUMPRODUCT(($E$2:$E$50000=E2)*$G$2:$G$50000),"")

下拉到所有数据行完为止。

在I2单元格输入公式=INDEX(B:B,MATCH(LARGE(H:H,ROW(A1)),H:H,))

在J2单元格输入公式=INDEX(E:E,MATCH(LARGE(H:H,ROW(A1)),H:H,))

在K2单元格输入公式=INDEX(H:H,MATCH(LARGE(H:H,ROW(A1)),H:H,))

以上I2、J2、K2公式均下拉一格。 如图:

追问

添加辅助列可以实现,但是还有一个问题,假如2019-5-4也有和2019-5-3销售同样的商品,2019-5-4这个商品的销售会汇总到2019-5-3,而不是汇总到2019-5-4第一次出现对应的H列位置,E列的公式还需要修改一下,麻烦你了,谢谢!

第2个回答  2019-05-09

J2公式:=INDEX(E$2:E$1000,MATCH(K2,SUMIFS(G$2:G$1000,B$2:B$1000,I2,E$2:E$1000,E$2:E$1000),))

ctrl+shift+回车

K2公式:=MAX(SUMIFS(G$2:G$1000,B$2:B$1000,I2,E$2:E$1000,E$2:E$1000))

ctrl+shift+回车

全部下拉

追问

公式不对,求出来的是:当日销售最好的商品编码1180042,销售金额50000,这是错误的值,当日销售最好的商品编码是119023,销售金额192000(38400*5),你只考虑G列最大的值,如果E列有重复的商品编码,要把G列的值汇总考虑求销售最大的那个编码

追答

看修改

第3个回答  2019-05-09
k2输入
=max(if(b:b=i2,g:g)
数组公式,先按住CTRL+SHIFT,最后回车,使得编辑栏公式两端出现花括号{ }
公式下拉
J2输入
=index(e:e,match(k2,g:g,)
公式下拉追问

公式不对,求出来的是:当日销售最好的商品编码1180042,销售金额50000,这是错误的值,当日销售最好的商品编码是119023,销售金额192000(38400*5)
日期
商品编号
销售金额
2019-5-3
1180042
50000

追答

H为辅助列
H2输入
=if(countif(b$2:b2,b2,e$2:e2,e2)=1,sumif(g:g,b:b,b2.e:e,e2)
公式下拉
k2输入
=max(if(b:b=i2,h:h)
数组公式,先按住CTRL+SHIFT,最后回车,使得编辑栏公式两端出现花括号{ }
公式下拉
J2输入
=index(e:e,match(k2,g:g,)
公式下拉
最后可隐藏h列(为了美观)

追问

成功了,你真厉害,谢谢你!

本回答被提问者和网友采纳
第4个回答  2019-05-09
H2=IF(SUMPRODUCT(($B$2:B2=B2)*($E$2:E2=E2))=1,SUMPRODUCT((B:B=B2)*(E:E=E2)*(F:F)),"")
下拉,作为辅助列
J2=INDEX(E:E,SMALL(IF((B:B=I2)*(H:H=K2),ROW(A:A),65536),1))
数组公式
同时按 CTRL SHIFT 回车键

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网