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

Excel 查找分组的最小值并返回条件值,excel,dax,powerpivot,Excel,Dax,Powerpivot,大家好,我真的很感谢你们来看看这个要求 问题是: 假设我们有两列,A列包含一个编码ID,B列有一个完成百分比 这些项目中的每一项都可能有或可能没有超过字母后缀(I1234.AAA.9999)的“扩展名”,但这些项目将与“其他”一起分组。换句话说,I1234.AAA是一个对象,E5678.BBB是另一个对象,C4321.CCC是另一个对象。我需要计算“一直”完成/未完成的对象 我想的是如何利用最小值,但我需要一些启发。使用该示例,其中两个对象是不完整的。最终目标是要有一个显示“2”的单细胞计数器

大家好,我真的很感谢你们来看看这个要求

问题是:

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

这些项目中的每一项都可能有或可能没有超过字母后缀(I1234.AAA.9999)的“扩展名”,但这些项目将与“其他”一起分组。换句话说,I1234.AAA是一个对象,E5678.BBB是另一个对象,C4321.CCC是另一个对象。我需要计算“一直”完成/未完成的对象

我想的是如何利用最小值,但我需要一些启发。使用该示例,其中两个对象是不完整的。最终目标是要有一个显示“2”的单细胞计数器。我已经将每个度量输出为自己的透视表,以便在工作表中排列这些类型的计数器


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

您需要从数据中删除字母后缀(例如,您可以有两列,一列带有后缀,另一列不带后缀)。通常,它要么在源代码处完成,要么在Power查询中完成

您还可以使用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 )
)
不完整对象计数=
萨姆克斯(
总结(
表名,
TableName[对象],
“完成”、[最小完成],
如果([完成]<1,1,0)
)
工作原理:
我们使用summary按对象对表进行分组。然后,对于每个对象,我们找到最小完成(例如,I1234.AAA将有34个)。然后,SUMX将按对象循环,用“1”标记那些完成率<100%的对象,然后将标记相加

您需要从数据中删除字母后缀(例如,您可以有两列,一列带有后缀,另一列不带后缀)。通常,它要么在源代码处完成,要么在Power查询中完成

您还可以使用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 )
)
不完整对象计数=
萨姆克斯(
总结(
表名,
TableName[对象],
“完成”、[最小完成],
如果([完成]<1,1,0)
)
工作原理:
我们使用summary按对象对表进行分组。然后,对于每个对象,我们找到最小完成(例如,I1234.AAA将有34个)。然后,SUMX将按对象循环,用“1”标记那些完成率<100%的对象,然后将标记相加

工作得很有魅力。多年来,我在一些地方看到过这个函数,但从未了解它的使用。这将是非常宝贵的。非常非常感谢你,我真的很感谢你的帮助。工作得很有魅力。多年来,我在一些地方看到过这个函数,但从未了解它的使用。这将是非常宝贵的。非常非常感谢你的帮助。