查找最小分组并返回条件值

时间:2019-07-11 20:21:22

标签: excel dax powerpivot

大家好,我非常感谢您关注此要求。

问题出在这里

假设我们有两列,列A包含编码ID,列B包含完成百分比。

enter image description here

每个项目的字母扩展名(I1234.AAA.9999)都可以带有'扩展名',也可以不带'扩展名',但是这些项目应与'其他'一起分组。换句话说,I1234.AAA是一个对象,E5678.BBB是另一个对象,而C4321.CCC是另一个对象。我需要计算“一路”完成/未完成的对象。

我一直在想如何利用MINIMIUM,但是我需要一些启发。使用示例,其中两个对象是不完整的。最终目标将是使单个单元格计数器显示“ 2”。我一直在将每个度量输出为自己的数据透视表,以在工作表中安排这些类型的计数器。

谢谢大家,欢迎提出任何想法。

1 个答案:

答案 0 :(得分:0)

您需要从数据中删除字母后缀(例如,您可以有2列-一列带有后缀,另一列没有后缀)。通常,它是在源代码或Power Query中完成的。

您还可以使用DAX并创建一个计算列,我们将其称为“对象”,如下所示:

Object = LEFT(TableName, 9)

该公式假定您的所有对象都有9个符号。如果不正确,则需要更详细的代码来删除后缀。

接下来,创建一个度量以查找最小完成:

Min Completion = MIN(TableName[Column B])

接下来,创建一个测量不完整对象的度量:

Incomplete Objects Count  =
SUMX (
    SUMMARIZE ( 
       TableName, 
       TableName[Object], 
       "Completion", [Min Completion] ),
    IF ( [Completion] < 1, 1, 0 )
)

工作原理: 我们使用SUMMARIZE按对象对表进行分组。然后,对于每个对象,我们找到MIN完成(例如,I1234.AAA将具有34)。然后,SUMX将按对象循环,将完成度小于100%的对象标记为“ 1”,然后对这些标志求和。