一位朋友留言,说他们项目部所有的人,每五人为一小组,完成了很多项目。现在,要论功行赏,按分组名单,统计每人参与了哪些项目。
他问有没有公式,一次完成统计。
为了好述,将数据简化如下:
最终要完成:按照表一项目分组,完成二人员参与项目统计。
公式实现
在H2单元格输入公式:
=IFERROR(INDEX($A$1:$A$7,SMALL(($G2<>$B$2:$D$7)*100 ROW($B$2:$D$7),COLUMN(A$1))),””),以Ctrl Shift Enter三键组合结束,然后公式向右向下填充,即可得到结果。
如下图:
公式实现
公式解析
{=($G2<>$B$2:$D$7)*100}
将G2的人员“王一”,依次与B2:D7姓名相比较,如果不同,返回TURE,如果相同,返回FALSE。再将结果一一乘以100,凡是不等于“王一”的,返回100,等于“王一”的,返回0。
结果如下:
{0,100,100;100,100,100;100,100,100;100,100,100;100,0,100;0,100,100 }(为方便描述,称为数组一)
如果行数较多,可以乘以更大的10000等。
{=($G2<>$B$2:$D$7)*100 ROW($B$2:$D$7)}
Excel图表N多产品月销售报表,提取销售量最大的月份
做电商数据分析的朋友,提出的问题: 他们有很多产品,要分析每种产品哪个月销售量最多,以改进明年的销售计划。 简化数据如下: 用公式提取每种产品销量最大的月份。 公式实现 在N2单元格输入公式: =OFFSET($A$1,,MATCH(MAX(B2:M2),B2:M2,0)) 公式向下填充,即得所有产品
将数组一结果依次与所在行相加,
返回结果:
{2,102,102;103,103,103;104,104,104;105,105,105;106,6,106;7,107,107 }(为方便描述,称为数组二)
SMALL(($G2<>$B$2:$D$7)*100 ROW($B$2:$D$7),COLUMN(A$1))
在数组二中,取第“COLUMN(A$1)”小的数值。A1是第一列,也就是取数值二中第1小的数值2;当公式向右填充一列,变为取第“COLUMN(B$1)”小的数值,即第2小的数值6;当公式再向右填充一列,变为取第“COLUMN(C$1)”小的数值,即第3小的数值7。
这样,得到数组:
{2;6;7;102;……}
INDEX($A$1:$A$7,SMALL(($G2<>$B$2:$D$7)*100 ROW($B$2:$D$7),COLUMN(A$1)))
当此公式在H2时,在A1:A7内,取出第2行的项目一;
公式向右填充一列,到I列,在A1:A7内,取出第6行的项目五;
公式再向右填充一列,到J列,在A1:A7内,取出第7行的项目六;
再往后取第102……行,是不存在的。
=IFERROR(INDEX($A$1:$A$7,SMALL(($G2<>$B$2:$D$7)*100 ROW($B$2:$D$7),COLUMN(A$1))),””)
用IFFERROR函数,如果查找错误,返回空值。
此公式,理解起来有一定难度,建议大家下载素材,一步一步写出来。
写的时候,注意使用“公式求值”功能对公式进行一步一步的运算,公式求值能够帮助你一步一步分析公式,如下动图:
LOOKUP函数——合并单元格拆分与查找计算的利器
这个问题来也来自我们的微信群。我们的群里经常会有爱动脑筋的朋友,时不时提出新颖的题目,大家商榷方便的解法。相信,我们群友们在不久的后来,都会成为所向披靡的Office高手! 今天题目是这样的: 关键在于:不能增加辅助列! 其实,数据量小,增加辅助列,还可以,如果数据量大,手工增加辅助列,终究不可行! 视频解