我几乎已经让这个功能完成了我想要的功能,但我一生都无法弄清楚为什么它不排除比较工作中使用的材料。 (下面的公式)
我想获取两个作业编号并比较它们的材料,然后创建第一个作业(公式中名为“jorb1”)中所有材料的列表,这些材料在第二个作业(公式中为“jorb2”)中不存在但无论我做什么,我似乎都能得到这两项工作所需材料的完整清单。 正如您在屏幕截图中看到的,我有一些材料出现在两个列表中的两个作业中,即使我将过滤器的结果乘以第一个作业中的“jobs<>jorb2”和“jobs<>”第二个是 jorb1”。
=LET(
jorb1,JORB1,
jorb2,JORB2,
jobs,Firm___Released_Job_Mats[Job-Suff],
opernum,Firm___Released_Job_Mats[oper_num],
materials,Firm___Released_Job_Mats[item],
filt,FILTER(materials,jorb1=jobs),
unsharedmats,UNIQUE(FILTER(materials,(ISNUMBER(MATCH(materials,filt,0)))*(jobs<>jorb2)*(opernum>19)*(opernum<28))),
sharedoper,BYROW(unsharedmats,LAMBDA(a,INDEX(Firm___Released_Job_Mats[oper_num],MATCH(1,((a=Firm___Released_Job_Mats[item])*(Firm___Released_Job_Mats[Job-Suff]=jorb1)),0)))),
HSTACK(unsharedmats,sharedoper))
如果您想要 Jorb 1 中的内容但不想要 Jorb 2 中的内容:
=FILTER(Jorb1Material,ISERROR(MATCH(Jorb1Material,Jorb2Material,0)))
这只会返回 Jorb1 中不在 Jorb2 中的项目