代码之家  ›  专栏  ›  技术社区  ›  Thimi11

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

  •  0
  • Thimi11  · 技术社区  · 6 年前

    简介

    我有一个表,其中有50多个用户和他们安装的软件,其中有180多个不同的软件名称。我还列出了70个标准软件。我想知道最好的方法是找出每个用户的标准旁边安装了哪些软件。

    问题

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

    实例

    我已经做了一个简单的例子来解释。

    • 已安装的软件

    Installed software

    • 标准软件

    Standard software

    • 后果

    enter image description here

    1 回复  |  直到 6 年前
        1
  •  1
  •   Pierre44    6 年前

    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