从表中删除值的最佳方法是复制到列表

时间:2018-01-19 09:09:25

标签: excel excel-2016

简介

我有一个包含超过50个用户及其安装的软件的表,这些软件包含180多个不同的软件名称。我还有一个包含70个标准软件的列表。我想知道最好的方法是找出每个用户标准旁边安装的软件。

问题

所以基本上我想用软件从表中减去标准软件,并得到额外的软件。我正在使用Excel 2016。

实施例

我做了一个简化的例子来解释。

  • 已安装的软件

Installed software

  • 标准软件

Standard software

  • 结果

enter image description here

1 个答案:

答案 0 :(得分:1)

Excel(无VBA)中的答案是创建一个具有相同标题的新工作表,然后在表格的每个单元格中放置一个公式:

=IF(COUNTIF(Standard!$A:$A;Sheet1!A2)>0;"";Sheet1!A2)

在我的示例中,名为“Standard”的工作表包含您的示例中的标准软件,名为“Sheet1”的工作表是您的第一个工作表。

如果您需要VBA解决方案,以下方法有效:

Sub Extract_Standard()

Dim RowsToProcess As Long
RowsToProcess = ActiveCell.SpecialCells(xlLastCell).Row
Dim LastCol As Long
LastCol = Cells(1, Columns.Count).End(xlToLeft).Column

Dim a As Integer
Dim i As Integer

For i = 1 To LastCol
For a = 1 To RowsToProcess
    If Excel.WorksheetFunction.CountIf(Sheets("Standard").Range("$A:$A"), Cells(a, i).Value) > 0 Then
    Cells(a, i).ClearContents

    End If
Next a
Next i

End Sub