求高手帮助,如何将EXCEL中,某一列包含特定关键词,其所在的所有行的内容依次都提取出来,到特定区域?

如截图,如何将“数据抓取”区域,首列为长租公寓的全部行依次提取到黄色区域?明天交作业,困惑中。大神帮忙,不胜感激!... 如截图,如何将“数据抓取”区域,首列为 长租公寓的全部行依次提取到黄色区域?明天交作业,困惑中。大神帮忙,不胜感激! 展开
 我来答
匿名用户
2018-03-03
展开全部

我的【C3】单元格公式:{=IFERROR(INDEX(C$21:C$29,SMALL(IF($B$21:$B$29=$B3,ROW($1:$9),""),COUNTIF($B$2:$B3,$B3))),"")},右拉,下拉

追问
麻烦解释下公式原理呗?另外,外面的大括号手输入就行?现在在外面,一会儿用电脑看看。这个公式应该是对的,我就是不会用
追答

大括号是ctrl+shift+enter三键结束的来的,我从内层讲解一下:

  1. IF($B$21:$B$29=$B3,ROW($1:$9),"")判断与查找值相符的所有数据的行号:如果在数据区域首列$B$21:$B$29的数据等于查找值$B3(绝对引用列号,防止向后填充时数据偏移),查找到,就等于1到9的行号(因为index函数引用的行号是数据本身所在的行号,不是实际行号),否则就返回空值

  2. SMALL(IF($B$21:$B$29=$B3,ROW($1:$9),""),COUNTIF($B$2:$B3,$B3)))统计出本次查找为第几次查找并检索出该次查找对应的行号:COUNTIF($B$2:$B3,$B3)这个在small里面做索引值,small函数是查找第几小的函数,放在之前if的运算结果就是1到9的数值顺序查找。countif在这里的意思是统计本次查找是在整个查找中的第几次相同的查找,$B$2:$B3使用的是首格绝对引用向下扩展的活动区域

  3. INDEX(C$21:C$29,SMALL(IF($B$21:$B$29=$B3,ROW($1:$9),""),COUNTIF($B$2:$B3,$B3)))根据已检索到的行号在数据区查找值:small部分已经根据在已知部分查找到对应的行号,就用index在数据里面查找对应的值,查找区域行号绝对引用,在向右填充一列,数据区相应右移一列

  4. IFERROR(……,“”)将没有查找到返回的错误值换成空值,因为数据区只有9行,相同条目查询次数多的有6次,数据区只有3条,那么剩下的3条查询肯定会出错,所以用iferror容错

  5. 因为是数组运算,所以公式结尾ctrl+shift+enter,注意大括号不是手写的!

丨香丨烟
2018-03-03 · TA获得超过178个赞
知道小有建树答主
回答量:358
采纳率:50%
帮助的人:142万
展开全部
排序一下不就行了嘛
追问
我这个下面 数据抓取那里的,是随机变化的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式