PowerPivot / DAX用SQL'WHERE IN'types的限制只有一个值

我正在通过网站报告课程完成情况,使用一个非常简单的DataModel:

在这里输入图像说明

这给了我一个数据透视表,看起来如下所示:

在这里输入图像说明

我正在处理的一个复杂情况是,我只想报告Course1模块的百分比,这个百分比是基于在数据透视表左侧显示的Course1 Audience表中find的职位名称。 目前,我通过将这些职位硬编码到我的措施来实现这一目标:

IF(HASONEVALUE(Completions[Module]), IF(VALUES(Completions[Module])="Course1", CALCULATE(COUNTA(Completions[Email]), OrgChart[Title]="Job Title 1" ||OrgChart[Title]="Job Title 2" ||OrgChart[Title]="Job Title 3" ||OrgChart[Title]="Job Title 4" ||OrgChart[Title]="Job Title 5") /CALCULATE(COUNTA(AllStaff[Email]), OrgChart[Title]="Job Title 1" ||OrgChart[Title]="Job Title 2" ||OrgChart[Title]="Job Title 3" ||OrgChart[Title]="Job Title 4" ||OrgChart[Title]="Job Title 5")) ,COUNTA(Completions[Email])/COUNTA(AllStaff[Email])) ,BLANK()) 

虽然这工作得很好,但它是相当笨拙,我只是讨厌硬编码逻辑到这样的措施。 我宁愿将这些标题从Table中吸取到Course1,以便最终用户可以修改此列表,而不必了解如何编写DAX措施。

有没有什么办法可以参考我的测量中的“课程1观众”表而不是这些位?

 OrgChart[Title]="Job Title 1" ||OrgChart[Title]="Job Title 2" ||OrgChart[Title]="Job Title 3" ||OrgChart[Title]="Job Title 4" ||OrgChart[Title]="Job Title 5" 

请注意,这仅适用于Course1。 所有其他课程的完成率应该根据全体员工计算,而不是排除在课程1受众表中的那些职位上。

您可以使用CONTAINS()函数。 这个小片段应该工作,虽然我没有你的数据,所以我不能testing出来。 确保您的课程1受众群体数据也存储在您的数据模型中。

 FILTER(OrgChart,CONTAINS(VALUES([Course 1 Audience]),[Course 1 Audience],OrgChart[Title])