Excel数组确定职责分离的冲突

时间:2015-06-09 20:12:09

标签: arrays excel

我有两个清单;第一个是基于特定能力的职责分离冲突列表(例如,批准者不能是采购订单的请求者或接收者)。能力可能与其他能力存在许多冲突,而员工可能具有多种能力。目标是比较每个员工的能力是否与每个1列的SOD冲突相匹配(SOD冲突1与冲突1匹配,SOD冲突2与冲突2匹配)。将员工的姓名/ ID循环回来以查看该特定名称/ ID的后续实例是否与先前的名称存在冲突非常重要。这样就可以计算出所有员工的能力。

目前我的下面的公式只显示CONFLICT,如果实例是我的职责分离冲突表的顶行。

{=IF(($A$2:$A$7=$A11)*($B$12:$B$17=$B11)*($A12:$A$17=B$2:B$7),"CONFLICT","")}

你能帮我解决这个问题吗?所以我可以将它拖到员工能力列表中,以确定第一个实例之外是否存在冲突?布朗尼指出,如果你可以列出职责冲突列出:) TIA。仅供参考,我的VBA技能并不存在,但如果你冒险尝试这条道路的话,我很乐意学习ELI5。

以下是使用Google文档的完整文件的链接...

https://docs.google.com/spreadsheets/d/1kzFB1qfARoqK53ZFeEXRjuHQMN00Fs3quL6Jc73NPqQ/edit?usp=sharing

   A             B               C              D           E
1  Type          SOD Confict 1   SOD Confict 2
2  PO request    Test            Test       
3  PO approval   PO request      PO receive     
4  PO receiv     PO request      PO approval        
5  PO Purchase   Test            PO Test 2      
6  PO Placement  Test 3          PO Test 4      
7  Test          PO Test 5       PO Test 6      
8               
9               
10 Ability       Person          Employee ID    Conflict 1  Conflict 2
11 PO request    John            1              CONFLICT    CONFLICT
12 Test          John            1      
13 PO receive    John            1      
14 PO receive    Jake            2      
15 PO request    Jake            2      
16 PO approval   Jimmy           3      
17 PO receive    Jimmy           3  

2 个答案:

答案 0 :(得分:0)

完整修订。

考虑一下这个截图。

enter image description here

D11和E11返回空单元格。

D12:"测试"是一个SOD冲突1 in rows 2 and 5. In these cases, column A has the values PO请求',它匹配John在A11中的第一个能力。因此PO request是一种冲突。 E12也是如此。

D13:A13中的PO receive不是SOD Conflict 1。案件结案。

E13:A13中的PO receive位于第3行的SOD Conflict 2中。在该行的A列中,PO approval与约翰在A11中的第一个能力不匹配。没有冲突。

D15:A15中的PO request位于SOD Conflict 1,而A4中的值与杰克的第一个异能PO receive相符,因此冲突为PO receive。 E15为空,因为PO request不是SOD Conflict 2

D17:Jimmy的PO receive不是SOD Conflict 1,因此该单元格为空白。

E17:PO receive位于SOD conflict 2,而A3中的相应值为PO approval,这是吉米的第一个能力。因此与PO approval冲突。

D11中的公式是

=IFERROR(INDEX($A$2:$A$7,SUMPRODUCT((B$2:B$7=$A11)*(($A$2:$A$7=INDEX($A$11:$A$30,MATCH($B11,$B$11:$B$30,0)))*ROW($A$1:$A$6)))),"")

它不是数组公式。复制到E11并向下。

答案 1 :(得分:0)

以下是使用Google文档的完整文件的链接...

https://docs.google.com/spreadsheets/d/1kzFB1qfARoqK53ZFeEXRjuHQMN00Fs3quL6Jc73NPqQ/edit?usp=sharing

我最终在vlookup中使用嵌套的vlookup到我将员工ID和能力汇总的范围,因此只有1个唯一的项目无论如何都要避免数组。也许有点脏,但解决了这个问题。