首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >问与答92:如何使用公式统计同时在线人数?

问与答92:如何使用公式统计同时在线人数?

作者头像
fanjy
发布2021-02-05 14:38:53
发布2021-02-05 14:38:53
2.5K0
举报
文章被收录于专栏:完美Excel完美Excel

Q:如下图1所示,在列A中是日期,列B中是对应日期上线人名称,同一日期上线人存在重复,要求使用公式统计指定日期上线人数(剔除重复值)。要求:在单元格F2中输入公式,拖拉复制到单元格I2,得到相应的数据。

图1

A:下面使用数组公式实现。

在单元格F2中输入数组公式:

=SUM(--(FREQUENCY(MATCH(IF(A2:A30=F1,B2:B30,""),IF(A2:A30=F1,B2:B30,""),0),ROW(A2:A30)-ROW(A2)+1)>0))-1

拖拉复制至单元格I2即可。

公式中:

IF(A2:A30=F1,B2:B30,"")

获取列A中等于单元格F1中的日期对应的列B中的值,得到数组:

{"A";"A";"B";"C";"C";"B";"B";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";""}

将其作为MATCH函数的lookup_value参数和lookup_array参数的值,同时指定参数match_type值为0(精确匹配),得到上述数组中各值在数组中首次出现的位置组成的数组:

{1;1;3;4;4;3;3;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8}

现在,需要统计上述数组中的不同数字的数量,因为数组中也获得了空值所在的位置值,所以将不同数字数量减去1即为剔除重复值后的数据数量。这里使用FREQUENCY函数来统计上述数组在各区间的数量。

公式中:

ROW(A2:A30)-ROW(A2)+1

得到数组:

{1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24;25;26;27;28;29}

这样,公式中的:

FREQUENCY(MATCH(IF(A2:A30=F1,B2:B30,""),IF(A2:A30=F1,B2:B30,""),0),ROW(A2:A30)-ROW(A2)+1)

转换为:

FREQUENCY({1;1;3;4;4;3;3;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8},{1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24;25;26;27;28;29})

得到数组:

{2;0;3;2;0;0;0;22;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0}

下面是关键的一步,即判断FREQUENCY函数的结果是否大于0,即:

FREQUENCY(MATCH(IF(A2:A30=F1,B2:B30,""),IF(A2:A30=F1,B2:B30,""),0),ROW(A2:A30)-ROW(A2)+1)>0

转换为:

{2;0;3;2;0;0;0;22;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0}>0

得到数组:

{TRUE;FALSE;TRUE;TRUE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE}

其中的TRUE值代表原数组中大于0的值,也就是说,上述数组中TRUE值的个数即为不重复的数值个数。

公式中的双减号将TRUE/FALSE值转换为1/0,即:

{1;0;1;1;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0}

传递给SUM函数将数组中各值相加,得到结果:

4

减去1,即上文中已提到的空格位置代表的数,得到不重复的数为:

3

即为指定日期2020-8-17同时在线的人数。

小结

FREQUENCY函数很神奇,特别是在本示例所处的情形下,好好体会,举一反三,熟练运用,因为你会在很多情形下用到它。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档