同学们好~,老班今天来分享一个常见的数据提取问题——按关键字提取数据。
如下图所示,是某机关内部食堂的部分菜单,以E2单元格中的关键字,提取出菜名中包含该关键字的所有记录。
方法1 函数公式
G2输入以下数组公式,按住Shift和Ctrl键不放,按回车。再将公式向右向下复制。
=IFERROR(INDEX(A:A,SMALL(IF(ISNUMBER(FIND($E$2,$A$2:$A$85)),ROW($2:$85)),ROW(A1))),"")
提取结果如下:
公式大致的意思是,使用FIND函数在数据区域中查询关键字,如果包含关键字就返回表示位置的数字,否则返回错误值。然后使用ISNUMBER函数判断FIND函数的结果是不是数值,就相当于是判断是不是包含关键字。接下来使用IF函数,如果包含关键字就返回对应的行号。再使用SMALL函数从小到大提取出这些包含关键字的行号,并用INDEX函数返回A列对应位置的内容。
如果你使用的是Office 365,公式会简单很多:
G2单元格输入以下公式,按回车即可。
=FILTER(A2:B85,ISNUMBER(FIND(E2,A2:A85)))
使用公式的优点是,当关键字变化后,结果能自动更新,但是第一个公式在处理的数据量比较多时,不留神Excel就会卡死。
方法2 高级筛选
公式看起来眼花缭乱,咱们再试试高级筛选。
使用高级筛选时,条件区域的字段标题要和数据源的标题一样,所以先修改一下E1单元格的标题为“菜名”。再将E2单元格的关键字前后加上星号。
接下来单击数据区域任意单元格,再依次单击【数据】→【高级】,在高级筛选对话框中选中“将筛选结果复制到其他位置”,再分别选择条件区域和存放结果的起始单元格。
最终效果:
1天1块钱,500+节课程任你学!
365天带你玩转三茅
4楼 有公主病的猫
学到了,最后一个筛选最快,谢谢分享
George77288
@有公主病的猫:但是筛选的话,如果换一个关键词,筛选的动作得重新做一次。方便的话还是公式。
有公主病的猫
@George77288:恩恩,有道理
3楼 三木一子
说的有些匆忙!
2楼 三木一子
说的有些匆忙!
1楼 菁苹果
一个都不会,该如何学习?