头部广告

Excel制作参会人员清单实现自动移除已签到的人员姓名,一个公式轻松搞定!

昨天有个朋友私信问了一个问题,他说:“在WPS中如何通过excel制作一个参会人员清单,分为参会名单、已签到、待签到这三列,然后手动在已签到这一列填写姓名,待签到这一列人员名单会自动移除已签到的人员姓名”,看到这个问题后我通过使用FILTER函数和XLOOKUP函数组合以及设置条件格式的方法基本实现了这个功能。具体效果如下图所示

1.gif


具体操作步骤如下:

直接上干货公式=FILTER(B2:B9,XLOOKUP(B2:B9,D:D,ROW(D:D)*0,1))

1、首先,在待签到这一列选择跟“参选名称”一样多的行数,因为WPS中的函数当前不支持数组自动溢出,所以尽量多选择一些应用区域,然后直接输入公式=FILTER(B2:B9,XLOOKUP(B2:B9,D:D,ROW(D:D)*0,1)),然后通过【Ctrl+Shift+Enter】组合键完成数组公式的输入,就可以获得待签到人员名单了,如下图所示:

2.gif


2、因为FILTER是一个数组函数,它返回的是一个数组,如果应用区域选择行数多于返回数值的行数,会出现“#N/A”,如下图所示

3.gif


因为由于WPS目前不支持动态数值,IFERROR函数在数组中也不能实现功能,如果不想出现#N/A,我们可以通过条件格式去掉函数错误值。

①选择数据区域,然后点击【开始】-【条件格式】-【新建规则】,如下图所示

4.jpg


②在弹出的“新建格式规则”对话框中,规则类型选择【只为包含以下内容的单元格设置格式】,下方选择“错误”,接着点击格式,在弹出的对话框中选择“字体”,颜色选择白色,也就是设置错误值的字体颜色为白色(即和单元格底色一致即可),最后点击确定即可,如下图所示

5.gif


公式解释

公式=FILTER(B2:B9,XLOOKUP(B2:B9,D:D,ROW(D:D)*0,1))

6.jpg


1、XLOOKUP(B2:B9,D:D,ROW(D:D)*0,1)主要是返回待签到人员的信息,如果是待签到人员返回1(True),已签到返回0(False)

①第一参数(查找值):B2:B9是所有参会名单,因为第一参数是个数组,也就意味着XLOOKUP函数成了一个数组函数,就是返回一个数组

②第二参数(查找数组):D:D已签到的名单这一列就是要查找的数组区域

③第三参数(返回数组):如果B2:B9参会名单的数据在D:D已签到的名单找到了,那就返回在已签到名单中的行号乘以0就是ROW(D:D)*0,也就是已经签到的人员都会返回0,没有签到的话会返回“#N/A”

④第四参数(未找到值):未找到值返回1,这样的话XLOOKUP函数返回的数组就是由0(已经签到人员)和1(代签到人员)组成的数组了

2、FILTER函数,B2:B9这是查找数组,XLOOKUP函数返回的待签到的人员返回值都是1,那么就把待签到人员给筛选显示出来了,已签到的人员返回是0,就不会被筛选出来。

也许大家觉得公式逻辑比较复杂,其实大家可以直接套用公式,把对应位置改成自己的就可以。


底部广告