You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power Pivot中基于布尔度量计算符合条件的唯一POS数量问题

Power Pivot计算符合条件的POS数量解决方案

问题根源

你之前的公式无效,是因为FILTER('TableName';[measure1]=TRUE())是逐行扫描整张表,但你的布尔度量是基于单个Point of sales(POS)的所有行数据计算的。逐行应用度量时,上下文是单一行而非整个POS组,无法正确判断该POS是否满足条件。

正确度量写法

以下是三种条件对应的度量公式,你可以直接使用,也可以基于已创建的布尔度量调整:

1. 统计至少有一个“1”答案的POS数量

直接通过聚合判断的写法:

Meet cond1 := 
CALCULATE(
    DISTINCTCOUNT('TableName'[Point of sales]),
    FILTER(
        VALUES('TableName'[Point of sales]),
        CALCULATE(MAX('TableName'[Answer])) = 1
    )
)

基于你已创建的measure1的写法:

Meet cond1 := 
CALCULATE(
    DISTINCTCOUNT('TableName'[Point of sales]),
    FILTER(
        VALUES('TableName'[Point of sales]),
        [measure1] = TRUE()
    )
)

2. 统计无“1”但至少有一个“2”答案的POS数量

直接聚合判断的写法:

Meet cond2 := 
CALCULATE(
    DISTINCTCOUNT('TableName'[Point of sales]),
    FILTER(
        VALUES('TableName'[Point of sales]),
        CALCULATE(MAX('TableName'[Answer])) = 2 && CALCULATE(MIN('TableName'[Answer])) <> 1
    )
)

基于已创建的measure2的写法:

Meet cond2 := 
CALCULATE(
    DISTINCTCOUNT('TableName'[Point of sales]),
    FILTER(
        VALUES('TableName'[Point of sales]),
        [measure2] = TRUE()
    )
)

3. 统计仅含“0”答案的POS数量

直接聚合判断的写法:

Meet cond3 := 
CALCULATE(
    DISTINCTCOUNT('TableName'[Point of sales]),
    FILTER(
        VALUES('TableName'[Point of sales]),
        CALCULATE(MAX('TableName'[Answer])) = 0
    )
)

基于已创建的measure3的写法:

Meet cond3 := 
CALCULATE(
    DISTINCTCOUNT('TableName'[Point of sales]),
    FILTER(
        VALUES('TableName'[Point of sales]),
        [measure3] = TRUE()
    )
)

核心逻辑说明

通过VALUES('TableName'[Point of sales])获取所有唯一的POS分组,再对每个分组单独计算条件(无论是直接聚合判断还是调用已有的布尔度量),最后统计符合条件的分组数量,这样就能确保上下文是整个POS组,而非单一行数据。

内容的提问来源于stack exchange,提问作者Stan Stryzh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 07:15:04