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

PowerBI中如何使用DAX对含文本的HOURS_SPENT对应字符串列求和

DAX计算字符串类型列的数值总和(HOURS_SPENT)

由于ANSWER列是字符串类型且无法修改,直接用SUM函数会因类型不匹配报错。你需要用迭代函数SUMX,在遍历符合条件的行时动态将字符串转换为数值,再进行累加。

基础解决方案

使用SUMX配合VALUE函数,先过滤出ANSWER_NO为HOURS_SPENT的行,再逐行转换并求和:

Sum of hours = 
SUMX (
    FILTER ( FACT_FORMS_ANSWERS, FACT_FORMS_ANSWERS[ANSWER_NO] = "HOURS_SPENT" ),
    VALUE ( FACT_FORMS_ANSWERS[ANSWER] )
)

容错优化方案

如果HOURS_SPENT对应的ANSWER存在非数值内容(比如空值、异常字符串),可以用TRY函数捕获错误,返回0避免报表报错:

Sum of hours = 
SUMX (
    FILTER ( FACT_FORMS_ANSWERS, FACT_FORMS_ANSWERS[ANSWER_NO] = "HOURS_SPENT" ),
    TRY( VALUE ( FACT_FORMS_ANSWERS[ANSWER] ), 0 )
)

说明

  • SUMX是迭代函数,会逐个处理过滤后的行,所以能在每一行完成字符串到数值的转换,这是普通SUM函数做不到的。
  • 该度量值仅在计算时动态转换,不会修改原ANSWER列的类型,完全兼容报表其他部分对该列的使用需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 17:45:20