[英]Powershell, Excel Finding string in cell, Color row, delete others
[英]Finding a string in a row and removing it in excel
我有一张类似于下面的表格
si id a b c d e
1 123 abc bcd abc def efg
2 234 bcd cde def efg fgh
3 345 cde efg efg abc ghi
我想做的是查找字符串“ abc”是否存在于行中,如果存在,请将其删除,然后将后续列复制到其位置,即第一行“ abc”存在于列A中,所以我要删除并将col BE移至Col AD。 在第二行中不存在“ abc”,因此应按原样保留该行,但在第三行中,“ abc”在Col D中,因此应将其删除,并将“ ghi”粘贴到其位置,从而保留列E空。
我能够使用MATCH
做到这一点,但这里的问题是MATCH
仅找到第一个出现的事件,而没有找到后续出现的事件。
有没有一种方法可以使用excel公式而不是vba。
您无法使用公式(在注释中提及)就地退出数据-但是,如果您想要自动删除项目的数据副本,则只要修改原始表就可以更新该表。 我会将结果数据粘贴在输入数据下方,但是如果您愿意,可以将其粘贴在另一张纸上。
我们从这个开始:
| A | B | C | D | E | F | G |
---+-------+-------+-------+-------+-------+-------+-------+--
1 | si id a b c d e
2 | 1 123 abc bcd abc def efg
3 | 2 234 bcd cde def efg fgh
4 | 3 345 cde efg efg abc ghi
5 |
6 |
7 |
8 |
9 |
10 |
步骤1:在A6中放入=A1
步骤2:将A6复制到B6:G6,A7:A10和B7:B10
现在工作表如下所示:
| A | B | C | D | E | F | G |
---+-------+-------+-------+-------+-------+-------+-------+--
1 | si id a b c d e
2 | 1 123 abc bcd abc def efg
3 | 2 234 bcd cde def efg fgh
4 | 3 345 cde efg efg abc ghi
5 |
6 | si id a b c d e
7 | 1 123
8 | 2 234
9 | 3 345
10 |
步骤3:在C7中输入以下数组公式(请记住按Alt-Shift-Enter而不是仅按Enter):
=IFERROR(INDEX($C2:$G2,1,SMALL(IF($C2:$G2<>"abc",COLUMN($C2:$G2)-2),COLUMN(A1))),"")
步骤4:将C7复制到D7:G7和C8:G9
现在工作表如下所示:
| A | B | C | D | E | F | G |
---+-------+-------+-------+-------+-------+-------+-------+--
1 | si id a b c d e
2 | 1 123 abc bcd abc def efg
3 | 2 234 bcd cde def efg fgh
4 | 3 345 cde efg efg abc ghi
5 |
6 | si id a b c d e
7 | 1 123 bcd def efg
8 | 2 234 bcd cde def efg fgh
9 | 3 345 cde efg efg ghi
10 |
这个怎么运作:
=IF($C2:$G2<>"abc",COLUMN($C2:$G2)-2)
生成一个值数组,该数组的数值为非abc的值,而数值为FALSE的值为abc。 -2
很重要,因为数据左侧有两个标题列。
=SMALL(IF($C2:$G2<>"abc",COLUMN($C2:$G2)-2),COLUMN(A1))
返回返回数组中的第n个最小数字-跳过所有FALSE价值观。
=INDEX($C2:$G2,1,SMALL(IF($C2:$G2<>"abc",COLUMN($C2:$G2)-2),COLUMN(A1)))
返回该值的位置第n个Smallestst数字-如果由于过滤出的项目而没有值,则返回错误
=IFERROR(INDEX($C2:$G2,1,SMALL(IF($C2:$G2<>"abc",COLUMN($C2:$G2)-2),COLUMN(A1))),"")
返回值并将错误替换为空单元格。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.