我有两个清单;第一个是基于特定能力的职责分离冲突列表(例如,批准者不能是采购订单的请求者或接收者)。能力可能与其他能力存在许多冲突,而员工可能具有多种能力。目标是比较每个员工的能力是否与每个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
答案 0 :(得分:0)
完整修订。
考虑一下这个截图。
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个唯一的项目无论如何都要避免数组。也许有点脏,但解决了这个问题。