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

Power BI中Group By合并字段按数字升序排序异常求助

Power BI Group By 拼接字段排序问题解决思路

问题原因

你当前的公式直接将数字类型的Field1与文本类型的Field2拼接,拼接结果会被自动转为文本格式。List.Sort默认按文本规则排序,文本排序时"10"会因为首字符"1"小于"2"而排在"2"前面,导致不符合预期的排序结果。

解决方法

方法一:先按数字字段排序,再拼接合并

先对分组内的行按Field1(数字类型)升序排序,再生成拼接后的文本列表并合并。修改后的公式如下:

= Table.Group(#"customized column", {"FactorA", "FactorB"}, {
    {"Combined value", 
     let 
         sortedRows = Table.Sort(_, {"Field1", Order.Ascending})
     in 
         Text.Combine(sortedRows[Field1] & sortedRows[Field2], "#(lf)"), 
     type nullable text
    }
})

这里通过let...in先处理分组内的排序,再基于排序后的行生成拼接内容,确保是按数字大小排序。

方法二:自定义排序规则,基于数字字段排序

在List.Sort中指定排序依据为Field1的数值,而非拼接后的文本。修改后的公式如下:

= Table.Group(#"customized column", {"FactorA", "FactorB"}, {
    {"Combined value", 
     Text.Combine(
         List.Sort(Table.ToRecords(_), (a, b) => Value.Compare(a[Field1], b[Field1]))
         |> List.Transform((r) => r[Field1] & r[Field2]), 
     "#(lf)"), 
     type nullable text
    }
})

该方法先将分组内的表转为记录列表,再通过自定义比较函数Value.Compare(a[Field1], b[Field1])按数字大小排序,最后提取拼接内容合并。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 07:51:11