excel找到关键词后提取本行所有内容

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了excel找到关键词后提取本行所有内容相关的知识,希望对你有一定的参考价值。

如图,我希望在本表(sheet1)I列搜索到含有“制药”这词的所有行,并复制所在行的所有内容。

希望出现的不是这样

而是这样(下图是手动选2行,实际搜索到的有30多行)
求直接点的公式,或者留个Q,我把表传君

    EXCEL中使用高级筛选可以将筛选结果直接复制到其它区域,无须另外手动复制粘贴;

    高级筛选可以使用通配符“*”筛选出含关键字、词的记录,同时满足的条件放在同一行中,只要满足条件之一的,放在不同行中;

    列出筛选条件,选择:数据--排序和筛选--高级;

    打开高级筛选对话框,选择区域和选项,这里选择“将筛选结果复制到其他位置”,即可将筛选结果复制出来,并且可以指定复制到的位置;

    确定后,即可将需要的结果筛选出来。

参考技术A

  1、在J列做辅助列,如图,J2设置公式向下复制:

  =IF(COUNTIF(D2:I2,"机械工程"),MAX(J$1:J1)+1,"")

  2、在Sheet2输入以下公式,即可将包含机械工程的所有行筛选出来:

  =IF(ROW(1:1)>MAX(Sheet1!$J:$J),"",LOOKUP(ROW(1:1),Sheet1!$J:$J,Sheet1!C:C)&"")

  【原理】第1步辅助列,将包含机械工程的行进行编号。第2步按照编号逐行LOOKUP查找出来。

参考技术B

 

上图例子,A3为查找的关键词,在B8:D18区域查找,只要包含这个关键词的行,提取至G8:I18中,G8公式=INDEX(B:B,SMALL(IF(MMULT(1-ISERR(FIND($A$3,$B$8:$D$18)),1;1;1),ROW($8:$18),99),ROW(A1)))&""   数组公式,三键结束,然后横拉,竖拉公式即可。

参考技术C 不用公式,用筛选
I2→筛选→文本筛选→包含,在弹出的框中输入 制药
如果操作正确,你需要的结果会显示在下边,然后:
选中I2单元格,按一下ctrl+a 全选
按一下F5→定位条件→可见单元格
按一下ctrl+c,复制筛选结果,
到你需要的地方,粘贴
---------
用高级筛选的方法也可以,加一个条件区域就行。
参考技术D 其实中间这张图简单处理一下就行了
用菜单:数据-分列
然后按顿号“、”分列即可得到第三张图

另外,第一张图筛选时,按指定的关键字进行自定义筛选
然后将得到的筛选结果整行选中并复制
再粘贴到新表中也可以
不需要公式或者宏

Python提取两个字符串之间的内容

比如说文本1的内容为
/begin MEASUREMENT
100
LINK
DISPLAY
SYMBOL
/end MEASUREMENT
有好多类似格式的文本内容,我想把/begin MEASUREMENT和 /end MEASUREMENT之间的内容读取到一个新的文本中,应该怎么写代码

Python提取两个字符串之间的内容步骤如下:

1、截取前6个字符:c='12369abcdefg./.、

'print (c[0:6]) ,注意,c里面第0个字符,就是'1',是从第零个开始数的。

2、截取第六个到倒数第一个之间的字符串:

c='12369abcdefg./.、'

print (c[6:-1]) 

3、截取第9个字符后面所有的字符:

c='12369abcdefg./.、'

print (c[9:]) 

4、翻转字符串:

c='12369abcdefg./.、'

print (c[::-1]) 

5、翻转字符串,但是隔一个字符删掉一个字符:

c='12369abcdefg./.、'

print (c[::-2]) 

6、截取第三个元素和第3+9个元素:

c='12369abcdefg./.、'

print(c[3::9])

参考技术A

1、首先打开Python将字符串定义出来,在定义的字符串后面添加中括号,输入需要提取的字符所在的位置。

2、点击运行程序,可以看到系统打印出来我们定义的字符串中的第一个字符,因为字符串是有空格的,空格也要占用位置。

3、这里可以看到字符显示在程序运行界面下方,按照我们指定的内容输出,这里写的是0输出第一个字符。

4、同样的也可以一次性的输出多个字符,如图所示,将字符串的起始位置用冒号隔开,写在中括号内,这样就会显示多个字符。

5、这里输入的位置是第0到5,可以发现对照我们字符串中内容,相应位置上的字符被打印出来,而其它位置上的字符完全没有显示。

6、如果字符串比较大,内容比较多,从后面数比较方便,也可以直接输出倒数第几个的字符。

7、这时候直接使用负号来说明这是倒数的位置,用起来也特别方便。

参考技术B import re

str = '''/begin MEASUREMENT
100
LINK
DISPLAY
SYMBOL
/end MEASUREMENT'''

regex = r'/begin MEASUREMENT([\\s\\S]*)/end MEASUREMENT'
matches = re.findall(regex, str)
for match in matches:
    print(match)

追问

多谢了,我意思是这些内容是在一个文本文件里,比如1.txt文件,我想把读出来的内容放到2.txt里。麻烦大神了

追答import re
with open('1.txt') as fin, open('2.txt', 'w') as fout:
    text = fin.read();
    regex = r'/begin MEASUREMENT([\\s\\S]*?)/end MEASUREMENT'
    matches = re.findall(regex, text)
    for match in matches:
        fout.write(match)

本回答被提问者采纳
参考技术C

以上是关于excel找到关键词后提取本行所有内容的主要内容,如果未能解决你的问题,请参考以下文章

怎么用python依据多个关键词提取Excel里关键词所在的整行内容?

如何使用word提取文章中的关键词

在EXCEL中,如何根据关键字批量提取单元格所在行的内容?

在 PySpark 中使用 regexp_extract 提取多个单词

求高手帮助,如何将EXCEL中包含某一关键词的所有行都提取出来,单独显示?

awk怎么提取某一关键词后的内容