首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >功率比计算比

功率比计算比
EN

Stack Overflow用户
提问于 2020-05-13 00:22:55
回答 1查看 1.3K关注 0票数 2

我有一张桌子:

代码语言:javascript
复制
Group   IP  Technology  Status
G1  IP1 T1  Passed
G1  IP1 T1  Passed
G1  IP1 T1  Failed
G1  IP1 T2  Failed
G1  IP1 T2  Failed
G1  IP1 T2  Passed
G1  IP2 T3  Passed
G1  IP2 T3  Failed
G2  IP3 T4  Passed
G2  IP3 T4  Passed
G2  IP3 T5  Passed
G2  IP3 T5  Passed
G2  IP4 T5  Passed
G2  IP4 T5  Passed
G2  IP4 T5  Passed
G2  IP2 T6  Passed
G2  IP2 T6  Passed
G2  IP2 T6  Passed
G2  IP2 T6  Passed

我必须排除某些技术(T2和T6),并计算以下内容:

代码语言:javascript
复制
100%Passed =
(# unique IPs that have 100% passed) /
    (total # unique IPs I need to be able to cut it in different ways)

我把失败的列留作参考。

IP:结果:

代码语言:javascript
复制
IP  Failed  Passed  Passed flag
IP1 33% 67%     No
IP2 50% 50%     No
IP3 0%  100%    Yes
IP4 0%  100%    Yes

技术成果:

代码语言:javascript
复制
Technology  Failed  Passed  Passed flag
T1  33% 67%     No
T3  50% 50%     No
T4  0%  100%    Yes
T5  0%  100%    Yes

技术成果:

代码语言:javascript
复制
Group   Failed  Passed  Passed flag
G1  40% 60%     No
G2  0%  100%    Yes

我的想法是创建两个列来计数唯一的is,然后创建一个度量来计算%Passed

我创建了以下列:

代码语言:javascript
复制
Numerator =
IF (
    AND (
        'Table'[Status] = "Passed",
        'Table'[Technology] IN { "T1", "T3", "T4", "T5" }
    ),
    'Table'[IP],
    ""
)
代码语言:javascript
复制
Denominator =
IF ( 'Table'[Technology] IN { "T1", "T3", "T4", "T5" }, 'Table'[IP], "" )

这个公式在本例中有效,但是当我将它应用于我的工作数据时,我会得到以下错误消息:

无法确定表“表”中“IP”列的单个值。当度量公式引用包含多个值的列而不指定聚合(如min、max、count或sum )以获得单个结果时,就会发生这种情况。

你知道我为什么会收到这条错误信息吗?

如果您有更好的解决方案来获得100%Passed100% Passed Flag,请告诉我(是/否)。

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-13 03:49:40

这里有几件事出了问题。首先,您所得到的错误表明您试图创建一个度量,而不是一个计算的列。第二,您的IP列不是一个数字,因此该部门无论如何都无法工作。

实际上,我假设您正在尝试进行一项度量,该度量将进入可视化列而不是计算列。

使用切片器和对列上的行和Status进行计数的度量:

您可以计算通过的百分比(仅包括特定技术)如下:

代码语言:javascript
复制
Passed% = 
CALCULATE (
    DIVIDE (
        CALCULATE ( COUNTROWS ( Table1 ), KEEPFILTERS ( Table1[Status] = "Passed" ) ),
        CALCULATE ( COUNTROWS ( Table1 ), ALL ( Table1[Status] ) )
    ),
    KEEPFILTERS ( Table1[Technology] IN { "T1", "T3", "T4", "T5" } )
)

(注意:我使用克帕皮尔特来添加过滤器上下文,而不是完全替换它。)

那么编写100%Passed标志度量就很容易了:

代码语言:javascript
复制
100%Passed = 
IF ( NOT ISBLANK ( [Passed%] ), IF ( [Passed%] = 1, "Yes", "No" ) )

既然我们已经将Technology过滤器添加到度量中,那么即使没有使用切片器,表也应该看起来像我们期望的那样:

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61764266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档