excel找到关键词后提取本行所有内容
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了excel找到关键词后提取本行所有内容相关的知识,希望对你有一定的参考价值。
如图,我希望在本表(sheet1)I列搜索到含有“制药”这词的所有行,并复制所在行的所有内容。
希望出现的不是这样
而是这样(下图是手动选2行,实际搜索到的有30多行)
求直接点的公式,或者留个Q,我把表传君
EXCEL中使用高级筛选可以将筛选结果直接复制到其它区域,无须另外手动复制粘贴;
高级筛选可以使用通配符“*”筛选出含关键字、词的记录,同时满足的条件放在同一行中,只要满足条件之一的,放在不同行中;
列出筛选条件,选择:数据--排序和筛选--高级;
打开高级筛选对话框,选择区域和选项,这里选择“将筛选结果复制到其他位置”,即可将筛选结果复制出来,并且可以指定复制到的位置;
确定后,即可将需要的结果筛选出来。
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])
1、首先打开Python将字符串定义出来,在定义的字符串后面添加中括号,输入需要提取的字符所在的位置。
2、点击运行程序,可以看到系统打印出来我们定义的字符串中的第一个字符,因为字符串是有空格的,空格也要占用位置。
3、这里可以看到字符显示在程序运行界面下方,按照我们指定的内容输出,这里写的是0输出第一个字符。
4、同样的也可以一次性的输出多个字符,如图所示,将字符串的起始位置用冒号隔开,写在中括号内,这样就会显示多个字符。
5、这里输入的位置是第0到5,可以发现对照我们字符串中内容,相应位置上的字符被打印出来,而其它位置上的字符完全没有显示。
6、如果字符串比较大,内容比较多,从后面数比较方便,也可以直接输出倒数第几个的字符。
7、这时候直接使用负号来说明这是倒数的位置,用起来也特别方便。
参考技术B import restr = '''/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 rewith 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找到关键词后提取本行所有内容的主要内容,如果未能解决你的问题,请参考以下文章