在Excel工作表中保留特定的值,并删除其他人,并获得多less次重复的VBScript的计数

我想删除Excel中的所有数据,除了“包含”名称“abc”的行。我试图更新Excel表,然后得到每个副本重复的次数。输出应该是另一个Excel表其中我有浓缩的重复值以及我以前得到的计数。

我做了什么:为了得到重复值的计数,我用这个:

=COUNTIF($A$1:$A$8, A1 

但是,我怎样才能删除其他值,并将其余的一个新的Excel工作表。

添加行号或任何其他行ID的“RowNo”列。 接下来在输出的Excel文件中使用Microsoft Query ,例如:

 SELECT S1.Val, COUNT(S1.Val) FROM `C:\Book1.xls`.`Sheet1$` as S1 INNER JOIN `C:\Book1.xls`.`Sheet1$` as S2 WHERE S1.Val = S2.Val and S1.RowNo > S2.RowNo GROUP BY S1.Val 

另外,为了移除不包含例如'abc'的数据,你可以在WHERE子句中添加另一个条件:S1.Val NOT LIKE“ abc ”。 见下文:

  SELECT S1.Val, COUNT(S1.Val) FROM `C:\Book1.xls`.`Sheet1$` as S1 INNER JOIN `C:\Book1.xls`.`Sheet1$` as S2 WHERE S1.Val = S2.Val and S1.RowNo > S2.RowNo AND S1.Val NOT LIKE "*abc*" GROUP BY S1.Val 

随意用我的AddIn: 链接testing不同的SQL。

通过VBscript设置:

  1. 第1步:使用此Microsoft Query创buildExcel

  2. 步骤2:创build一个将在Excel文件中刷新Microsoft Query的VBscript(请参阅此处的示例以了解如何从VBscript 链接连接到Excel文件)。