1职场实例
小伙伴们大家好,今天我们来解决一个群里的朋友提出的一个有趣且很有实用性的职场问题:如何根据多选题答案,将缺失的错误选项显示出来?这个问题给小编的第一感觉就是基础性强且思路性强,很有解决它的欲望,没想到通过简单的几个步骤竟然实现了。
如下图所示:
是一张问题以及答案表,每一行为一条问题及其答案,问题为多选题,答案会出现ABCD选项的任意组合,现在我们想要在C列显示缺失的错误选项。如正确答案“ABC”,缺失的错误答案为“D”。
2解题思路
这个问题乍一看感觉并没有什么思路,其实不然,现在小编就赶快将自己的思路告诉大家吧!
第一步:做辅助列标题。
我们在答案列B列后插入4列作为辅助列,并将ABCD四种答案的文本字符作为列标题依次输入,如下动图所示:
第二步:FIND函数寻找缺失的错误答案。
我们在C2单元格输入以下函数公式:
=FIND(C$1,$B2)
回车结束公示后,向右并向下填充公式。
用FIND函数分别查找C1:F1单元格中的“ABCD”四个选项在B2单元格答案文本中出现的起始位置,我们发现一个有趣的规律:只有正确的答案选项才会判断出该选项在答案文本中的起始位置的数值,而不包含在其中的错误答案是判断不出来的,会显示错误值#VALUE!。如下动图所示:
假如我们不想显示错误值#VALUE!,可以用IFERROR函数定义错误值为指定的字符。
我们继续嵌套完善C2单元格中的函数公式:
=IFERROR(FIND(C$1,$B2),"少")
即用IFERROR函数,将返回值错误值#VALUE!显示为“少”,否则显示返回值的本身结果。
第三步:IF函数获取缺失的错误答案对应的列标题。
在G2单元格输入函数公式:
=IF(C2:F2="少",$C$1:$F$1,"")
回车结束公式。
我们发现返回结果是错误值,其实这里运用到的是数组概念,它其实返回的是一个内存数组,我们想要观看它的正确结果,可以通过进入公式编辑状态后选中公式部分,运用经典的F9键,查看内存数据的返回结果,比如G2单元格返回内存数组“{"","","","D"}”。
如果C2:F2单元格区域中哪个单元格为文本“少”,则返回这个单元格在C1:F1单元格区域中对应的单元格列标题文本值,否则返回空值。如F2单元格显示“少”,我们就在G2单元格显示F2单元格对应的F1单元格中的列标题“D”,其余显示空值,结果集会储存在内存数组中。即实现用IF函数获取缺失的错误答案对应的列标题。
第四步:用TEXTJOIN函数合并内存数组中的元素。
我们继续嵌套完善G2单元格中的函数公式:
=TEXTJOIN(,,IF(C2:F2="少",$C$1:$F$1,""))
三键Ctrl+Shift+回车键结束数组公式。
TEXTJOIN函数可以合并数组中的各个元素,我们省略掉了TEXTJOIN函数的第一个和第二个参数。
第一个参数为合并字符之间指定的分隔符,省略即为不需要显示分隔符;第二个参数如果省略或者设置为1,则忽略空白单元格,如果为0,则不忽略空白单元格,通常省略;第三个参数为要合并的字符串。