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找到关键词后提取本行所有内容的主要内容,如果未能解决你的问题,请参考以下文章

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

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

查找包含关键字和提取编号的所有行

excel如何提取所需关键字所在行?

根据视频内容提取关键特征 动作 物体 文本 语音 人物等

如何用批处理提取一目录下所有文本文件中的特定字符并同文件名一起输出?