问题由来
我在工作中有时候会遇到这样一种场景:从工作系统中导出一堆数据,其中某一列是包含关键词的,暂且称其为 C 列好了,且 C 列中每条记录中只会包含一个关键词,但这条数据除了关键词外还有其他词汇。比如说,关键词一共有十种,分别是天干的从甲到癸的十个字,但实际数据中可能展现为“7946甲1654”这种形式。现在我需要根据这个数据提取出其中的关键词,比如“7946甲1654”就提取出“甲”。
三种方案图示
闲话少说,先上例图。C 列就是源数据,需要把其中的天干提取出来。I 列就是关键词列表。我一共总结了三种解法,如下图(公式都是假设写在第四行的,三个公式所处单元格分别是 D4,E4,F4。并且为了说明公式的兼容性 C4 单元格内的源数据内出现了两个关键词“辛”和“丁”,之后的源数据都只出现一个关键词):
三种方案详解
第一种方法详解
以 D4 为例,公式一是 {=INDEX($I$8:$I$17,MATCH(1,--ISNUMBER(FIND($I$8:$I$17,C4)),))}
,是数组公式,输入时在键入所有字符后要按 Ctrl + Shift + Enter 进行输入,输入后两边的 {} 花括号会自动生成,不能用手动输入花括号的方式输入公式。
公式中的 FIND($I$