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

如何在DAX中基于Package下全部软件状态创建条件列

按分组判断所有子项状态的解决方案

以下是几种常见工具下的简便实现方法:

Excel 公式实现

直接在第四列首行输入公式,下拉填充即可:

=COUNTIFS($A:$A,A2,$C:$C,"<>Complete")=0
  • 逻辑:统计当前Package(A列)分组下,Status(C列)不等于"Complete"的条目数,若数量为0则返回TRUE(所有子项都完成),否则返回FALSE。
  • 也可以用SUMPRODUCT实现相同逻辑:
    =SUMPRODUCT(($A:$A=A2)*($C:$C<>"Complete"))=0
    

Python Pandas 实现

通过分组+广播的方式快速生成新列:

import pandas as pd

# 假设你的数据表存储在DataFrame df中
df['All_Complete'] = df.groupby('Package')['Status'].transform(lambda x: (x == 'Complete').all())
  • 逻辑:按Package分组后,对每组的Status列判断是否全部为"Complete",transform方法会将分组结果广播到每一行,生成对应新列。

SQL 实现

利用窗口函数实现分组判断:

SELECT 
    Package,
    Software,
    Status,
    CASE 
        WHEN COUNT(CASE WHEN Status <> 'Complete' THEN 1 END) OVER (PARTITION BY Package) = 0 
        THEN 'TRUE' 
        ELSE 'FALSE' 
    END AS All_Complete
FROM your_table;
  • 逻辑:通过PARTITION BY Package按分组分区,统计每个分区内状态不为"Complete"的条目数,若数量为0则标记为TRUE,否则为FALSE。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 04:19:57