如何在Excel中做少量工作?

时间:2015-04-30 16:33:27

标签: excel excel-vba csv excel-formula libreoffice vba

我有两个excel列,一个有7000行,一个有600个。

对于600中的每一个,如果它存在于7000中,我希望它从列表中删除。因此,假设我的600个问题中有200个包含在7000中,我将留下一个包含400的列。我相信这将表示为A / B,一个是600个句子的列表,B是7000。

我确信有一种简单的方法可以做到这一点,但我对Excel不熟悉,过去一小时我的老板一直在喊我,所以很难集中注意力!

非常感谢任何帮助。我对任何语言或工具持开放态度。

由于

2 个答案:

答案 0 :(得分:1)

如果列 A 是短列表,列 B 是长列表,请尝试使用此宏:

Sub PurgeAList()
    Dim rA As Range, rB As Range, nA As Long, nB As Long
    Dim rc As Long, i As Long, v As Variant

    rc = Rows.Count
    nA = Cells(rc, "A").End(xlUp).Row
    nB = Cells(rc, "B").End(xlUp).Row
    Set rA = Range("A1:A" & nA)
    Set rB = Range("B1:B" & nB)

    For i = nA To 1 Step -1
        v = Cells(i, "A").Value
        If Application.WorksheetFunction.CountIf(rB, v) > 0 Then
            Cells(i, "A").Delete shift:=xlShiftUp
        End If
    Next i
End Sub

它将从长列表中显示的短列表中删除项目。

答案 1 :(得分:0)

如果您的600个问题在A1:A600中,而您的7000在D1中:D7000则在B1中输入:

=COUNTIF($D$1:$D$7000,A1)

并填写。 不在较大列表中的问题在该列中将为0