查找分组的最小值并返回条件值
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”,然后对标记求和。
大家好,非常感谢您查看此要求。
这是问题所在:
假设我们有两列,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”,然后对标记求和。