将员工姓名与主列表进行比较

问题描述:

我将员工列表与主列表进行比较,并获得一个计数。这是应该的,但现在我需要添加一个警告,从计数中忽略某些员工姓名(如Manager, Supervisor, Mgr, Sup)。将员工姓名与主列表进行比较

收到的列表在列A中有位置,在列C中有名字 - 所以我需要忽略列C中存在于计数中的名称。

... 这就是我用来返回计数 - >如何修改忽略上面列出的名称数组?

Const shLookup As String = "Master List" 
Const shSetup As String = "Received" 

With Worksheets(shLookup) 
aData = .Range("a1").CurrentRegion 
End With 
ReDim aOutput(1 To UBound(aData), 1 To 3) 
For i = 2 To UBound(aData) 
iCount = Evaluate("=COUNTIF('" & shSetup & "'!A:A,'" & shLookup & "'!A" & i & ")") 
If aData(i, 2) <> iCount Then 
    n = n + 1 
    aOutput(n, 1) = aData(i, 1) 
    aOutput(n, 2) = aData(i, 2) 
    aOutput(n, 3) = iCount 
End If 
Next 

编辑
样品的工作表数据是这样的:

Master List sheet 
Store EmpCount 
Memphis 23 
Houston 13 
Phili 10 


Received List Sheet 
Store Region EmpName 
Memphis East  Joe 
Memphis East  James 
Memphis East  Jane 
Memphis East  Supervisor 
Memphis East  Manager 

我所追求的是确保在收到名单表有23名员工孟菲斯,排除上面的名字来自伯爵。

EDIT 2
每建议由@PKatona意见 - 它看起来像我可以使用CountIF()函数来计算的“忽略”的值,然后从我的整个计数减去计数。这个语法似乎可以一个接一个地工作,但是,我将如何适应它的数组?

I.E.这会给我的Manager计数,但有我需要寻找其他的流行词汇:

iIgnore = Evaluate("=COUNTIF(Range('" & shSetup & "'!A:A,'" & shLookup & "'!A" & i & "),"Manager")") 
+0

你能给我们一个你的列的样本表吗? – CLR

+0

@CLR - 更新以显示示例数据。 – IcyPopTarts

+0

如何添加“CountIf”命令来计算您不想要的值,然后从iCount中减去该值?像iCount = iCount - Evaluate(CountIf(...))。 – PKatona

把我的头不通过语法检查的顶部,这里是你如何创建忽略值的数组,然后统计它们:

dim ignore() as String 
ignore = Split("Manager,Supervisor,Mgr,Sup", ",") 
dim ignoreCnt as integer 
ignoreCnt = 0 
dim aIdx as integer 

for aIdx = 0 to UBound(ignore) - 1 
    ignoreCnt = ignoreCnt + Evaluate("=COUNTIF(Range('" & shSetup & _ 
      "'!A:A,'" & shLookup & "'!A" & i & "),ignore(aIdx))") 
next aIdx 

ignoreCnt现在具有您要忽略的值的总数。如果你有更多,只需将它们添加到Split行中的字符串,UBound函数就会自动获得循环的上限。