Power Query去重后加载至Power BI时大小写被统一的问题求助
解决Power BI加载时自动修改文本大小写导致唯一值失效的问题
问题场景
将包含Marrick和MARRICK的表格导入Power Query,执行Table.Distinct去重后能正常保留两行(二者ASCII编码不同,属于不同值),但加载到Power BI后,两行文本均被统一为Marrick,原本的唯一值丢失。该问题在6万行维度表(Group By构建)及数据流加载场景中也会出现,直接破坏了数据关系(需将一对多改为多对多)。
解决建议
添加ASCII码辅助列作为唯一标识
在Power Query中新增一列,把文本的每个字符转换为ASCII码后拼接,生成唯一的区分键。这样即使Power BI修改文本显示,底层的ASCII标识仍能保持值的唯一性:let Source = Excel.Workbook(File.Contents("C:\Users\ladeby.klaes\OneDrive - GEA\Desktop\Book3.xlsx"), null, true), Sheet1_Sheet = Source{[Item="Sheet1",Kind="Sheet"]}[Data], #"Added ASCII Identifier" = Table.AddColumn(Sheet1_Sheet, "ASCII_Key", each Text.Combine(List.Transform(Text.ToList([Column1]), each Number.ToText(Character.ToNumber(_))))), #"Removed Duplicates" = Table.Distinct(#"Added ASCII Identifier") in #"Removed Duplicates"开启模型的大小写敏感性设置
在Power BI Desktop中调整模型属性,让系统严格区分文本大小写:- 切换到模型视图
- 右键空白区域选择模型属性
- 在数据加载板块勾选区分大小写
转换为二进制列存储原始编码
如果ASCII辅助列仍不生效,可将文本转换为二进制格式,彻底保留原始编码信息,避免Power BI自动格式化:let Source = Excel.Workbook(File.Contents("C:\Users\ladeby.klaes\OneDrive - GEA\Desktop\Book3.xlsx"), null, true), Sheet1_Sheet = Source{[Item="Sheet1",Kind="Sheet"]}[Data], #"Added Binary Column" = Table.AddColumn(Sheet1_Sheet, "Binary_Key", each Text.ToBinary([Column1], TextEncoding.Ascii)), #"Removed Duplicates" = Table.Distinct(#"Added Binary Column") in #"Removed Duplicates"
内容的提问来源于stack exchange,提问作者Klaes Ladeby
相关产品推荐
相关产品推荐

