Power BI创建度量值:移除resourceGroupName列末尾的rg字符
问题分析与解决方法
你的三个公式错误点逐一解析
- 公式URL_test1
- 错误1:DAX中不存在
Text.Start函数,截取文本前N位需用LEFT函数;Text.Start是M语言函数,但你这里用的是DAX表达式(用到了SELECTEDVALUE)。 - 错误2:拼写失误,
Text.Lengh应为Text.Length。 - 错误3:DAX的参数分隔符是逗号
,,而非分号;。
- 错误1:DAX中不存在
- 公式URL_test2
- 错误1:参数分隔符用错,需替换为逗号。
- 错误2:
RIGHT函数是提取文本右侧N位,和你“移除末尾字符”的需求完全相反,应使用LEFT截取前面的内容。
- 公式URL_test3
- 错误:你用
LEN包裹了SUBSTITUTE,导致返回的是处理后文本的字符数而非文本本身;另外SUBSTITUTE会替换所有匹配的-rg,若资源组名称中间出现该字符串会误修改,安全性不足。
- 错误:你用
正确的DAX公式写法
根据你的需求,分两种场景提供方案:
场景1:确定所有名称末尾是-rg(移除最后3个字符)
如果资源组名称统一以-rg结尾,直接截取长度减3的部分:
URL_correct = LEFT(SELECTEDVALUE('Usage details'[resourceGroupName]), LEN(SELECTEDVALUE('Usage details'[resourceGroupName])) - 3)
场景2:仅移除末尾的rg字符(移除最后2个字符)
若只需去掉最后两位的rg(保留前面的横杠):
URL_correct = LEFT(SELECTEDVALUE('Usage details'[resourceGroupName]), LEN(SELECTEDVALUE('Usage details'[resourceGroupName])) - 2)
更安全的写法(仅替换末尾的-rg)
如果担心名称中间可能出现-rg,可先判断末尾内容再处理:
URL_correct = VAR rg_name = SELECTEDVALUE('Usage details'[resourceGroupName]) RETURN IF(RIGHT(rg_name, 3) = "-rg", LEFT(rg_name, LEN(rg_name) - 3), rg_name)
内容的提问来源于stack exchange,提问作者Francesco Mantovani
相关产品推荐
相关产品推荐

