n个人分组完成m个项目 excel表格统计了每个人都参与了哪些项目
一个朋友留言说他们项目部的人都是五人一组完成了很多项目。现在,根据小组名单,我们应该统计每个人参加了哪些项目。
他问是否有一个公式可以一次性完成统计。
为了便于描述,数据简化如下:
最终完成:根据表1对项目进行分组,完成两人参与项目的统计。
公式实现
在H2单元格中输入公式:
=if error(index(a $ 1: a $ 7,small(G2 $ b $ 2:d $ 7)* 100 row(b $ 2:d $ 7),column (a $1))," ")。
下图:
公式实现
公式分析
{=($G2$B$2:$D$7)*100}
把G2的人“王毅”和TURE中的B2:D7的名字对比一下。如果他们不同,还真;如果它们相同,则返回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)}
将数组1结果依次添加到行中,
返回结果:
{2,102,102;103,103,103;104,104,104;105,105,105;106,6,106;7,107,107}(为描述方便,称为数组2)。
SMALL(($ G2 $ B $ 2: $ D $ 7)* 100 ROW($ B $ 2: $ D $ 7),COLUMN(A$1))
在第二个数组中,取较小的值“COLUMN(A$1)”。A1是第一列,即值2中第一个最小的值2;当公式向右填充一列时,就变成了“COLUMN(B$1)”的较小值,即第二小值6;当公式被右边的另一列填充时,它就成为最小值为“COLUMN(C$1)”的值,即第三小值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行第1项;
将公式右边一栏填到I栏,在A1:A7中,取出第六行第5项;
将公式右边一栏填到j栏,在A1:A7中,取出第七行第6项;
回到第102行.不存在。
=iferor(INDEX(1:澳元$A$7,SMALL)($ G2 $ B $ 2:澳元D$7)* 100 ROW(2:澳元D $ 7),COLUMN(A$1)),"")
如果搜索错误,请使用IFFERROR函数返回空值。
这个公式很难理解。建议你下载素材,一步一步写出来。
写作时注意使用“公式求值”功能,一步一步计算公式。公式评估可以帮助您逐步分析公式,如下图所示:
版权声明:n个人分组完成m个项目 excel表格统计了每个人都参与了哪些项目是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。