大家好,今天我们进行问题答疑。这是一位微信群里的小伙伴咨询提问的,问题大致是这样的:已知问题的答案,如何从ABCD四个选项中,将答案所对应的字母选项提取记录下来。我们自制数据源,还原真实的办公场景,并寻求找到答案。C2:F2区域各个单元格内容是问题答案的四个选项,四个选项的格式均一致:“(字母)答案”,比如:(B)北京。A2单元格是已知的问题答案“北京”,我们想要根据A2单元格已知的答案,在C2:F2区域的四个选项中,将答案对应的字母选项“B”,提取出来,显示在H2单元格内。使用FIND函数,查找A2单元格中的字符,在C2:F2区域各个单元格内出现的位置。因为“北京”,在C2、E2与F2单元格内均未出现过,故返回错误值。“北京”只有在B2单元格中的第4个字符位置处出现了,故B2单元格处返回数字“4”。{#VALUE!,4,#VALUE!,#VALUE!}由错误值和数字构成,只有当返回是数字的时候,其对应的单元格才是问题答案所在的选项位置。为了方便后续步骤的具体实现,我们外嵌ISNUMBER函数:=ISNUMBER(FIND(A2,C2:F2))ISNUMBER是判断所选参数是否为数字的函数。将上一步数组溢出的结果进行是否为数字的判断,若数组元素为数字,返回逻辑值TRUE,若数组元素不是数字,返回逻辑值FALSE。{FALSE,TRUE,FALSE,FALSE}元素TRUE的位置就是答案所在正确选项的位置D2单元格。=FILTER(C2:F2,ISNUMBER(FIND(A2,C2:F2)))使用FILTER具有筛选作用的函数,将C2:F2区域内,条件满足当逻辑值为TRUE时,将对应位置的值筛选出来。所以D2单元格是正确选项所在的单元格,就被FILTER函数筛选出来了,显示内容为:“(B)北京”。=REGEXP(FILTER(C2:F2,ISNUMBER(FIND(A2,C2:F2))),"A|B|C|D")正则表达式部分:"A|B|C|D",则表示A或B或C或D。REGEXP函数省略的第3参数,默认“提取”模式。整体的意思就是:提取上一步返回结果“(B)北京”中的,含有A或B或C或D的值,因为“(B)北京”中含有“B”,故正确答案所对应的字母选项“B”就被提取到啦!学习Excel,如果你没有天赋,那就一直重复,当你快到本能反应的时候,你的重复就是别人眼中的天赋,冲破捆绑,展翅翱翔。回顾关键内容,善用图片表达,学会建立联系,拓展深度广度,浓缩关键概念,应用到行动中,善于归纳总结,尝试进行分享。
|