首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将员工姓名与主列表进行比较

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

Stack Overflow用户
提问于 2017-03-17 14:15:00
回答 1查看 124关注 0票数 0

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

接收到的列表位于A列中,名称位于C列中-因此,我需要从计数中忽略上面数组中C列中存在的名称。

..。这就是我用来返回count ->的内容,如何修改它以忽略上面列出的名称数组?

代码语言:javascript
复制
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

编辑

示例工作表数据如下所示:

代码语言:javascript
复制
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名孟菲斯员工,不包括。

编辑2

根据@PKatona注释中的建议,看起来我可以使用CountIF()函数来计数“忽略”值,然后从整个计数中减去该值。这个语法似乎一个接一个地起作用,但是,我如何使它适应数组呢?

也就是说,这会让我了解Manager的数量,但我还需要搜索其他一些热门词汇:

代码语言:javascript
复制
iIgnore = Evaluate("=COUNTIF(Range('" & shSetup & "'!A:A,'" & shLookup & "'!A" & i & "),"Manager")")
EN

回答 1

Stack Overflow用户

发布于 2017-03-20 23:08:11

在不进行语法检查的情况下,下面是如何创建忽略值数组,然后对其进行计数:

代码语言:javascript
复制
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现在有了要忽略的值的总数。如果有更多内容,只需将它们添加到拆分行中的字符串中,UBound函数将自动获得循环的上限。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42859846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档