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

Finding Minimum of Grouping and returning a conditional value

大家好,非常感谢您查看此要求。

这是问题所在:

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

这些项目中的每一个在字母后缀 (I1234.AAA.9999) 之后可能有也可能没有 'extension',但这些项目将与 'others.' 组合在一起,换句话说, I1234.AAA 是一个对象,E5678.BBB 是另一个对象,C4321.CCC 是另一个对象。我需要计算 'all the way' done/not 完成的对象。

我的想法是以某种方式利用 MINIMIUM,但我需要一些启发。使用该示例,其中两个对象是不完整的。最终目标是拥有一个显示“2”的单细胞计数器。我一直在输出每个度量作为它自己的枢轴 table 以在工作表中排列这些类型的计数器。

谢谢大家,欢迎大家提意见

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

您也可以使用 DAX 并创建一个计算列,我们将其命名为 "Object",如下所示:

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 按对象对您的 table 进行分组。然后,对于每个对象,我们找到 MIN 完成(例如,I1234.AAA 将有 34)。然后,SUMX 将按对象循环,将完成度 < 100% 的对象标记为“1”,然后对标记求和。