Power BI中FORMAT函数导致度量值列文本排序问题求助
解决Power BI中带货币格式的度量值按文本排序的问题
问题根源是你用FORMAT函数把计算后的数值转换成了文本类型,排序时会遵循文本规则(比如"€100"会排在"€20"前面,因为字符"1"的ASCII码小于"2")。要同时保留带货币符号的显示效果和数值排序逻辑,有两种可行方案:
方案一:拆分数值计算与显示格式(推荐)
不在度量值里用FORMAT转文本,让度量值返回纯数值,再在可视化层设置条件格式:
创建纯数值的转换度量值
先写一个只计算转换后数值的度量值,不做格式处理:转换后收入(数值) = SWITCH( TRUE(), [Valutakurser Selected Currency] = "EUR", [COLUMN NAME] / SELECTEDVALUE(Valutakurser[CurrencyRate], 1), [Valutakurser Selected Currency] = "DKK", [COLUMN NAME] * SELECTEDVALUE(Valutakurser[CurrencyRate], 1), [COLUMN NAME] // 默认返回原收入值 )用
SELECTEDVALUE代替VALUES,可以避免上下文返回多个汇率值时的报错,第二个参数是默认汇率(这里设为1)。在可视化中设置条件格式
- 把
转换后收入(数值)拖到你的可视化组件(表格、矩阵等)中。 - 选中该字段,打开右侧「格式」面板,找到「数据标签」>「格式」,选择「自定义」。
- 在格式表达式里输入:
SWITCH( [Valutakurser Selected Currency], "EUR", "€#,##0.00", "DKK", "#,##0.00 kr.", "#,##0.00" )
这样显示的是带货币符号的格式化内容,但底层仍是数值类型,排序会自动按数值逻辑执行。
- 把
方案二:保留文本显示,指定排序依据
如果你想继续用原来的带格式度量值,只需在可视化中手动指定排序依据:
- 先创建方案一中的纯数值度量值
转换后收入(数值)。 - 设置排序规则
- 在可视化组件中选中你原来的带格式度量值列。
- 点击列标题旁的排序按钮,选择「按列排序」,然后选中
转换后收入(数值)作为排序依据。
这样显示的是带货币符号的文本,但排序会按照对应的数值大小排列。
内容的提问来源于stack exchange,提问作者Casper Jacobsen
相关产品推荐
相关产品推荐

