Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

View all the Fabric Data Days sessions on demand. View schedule

Reply
TomSinAA
Helper IV
Helper IV

displaying incorrect data

I have a visual displaying data from a MS Access table.  The visual is switching the route field from what is in the MS Access table.

MS Access table source data:

#Route IdRoute No

326284165_Bham Ne 1_0730_M_W
326284165_Bham Ne 1_0730_M_W
326284165_Bham Ne 1_0730_M_W
326284165_Bham Ne 1_0730_M_W
326284165_Bham Ne 1_0730_M_W
326294165_Bham NE 1_0730_M_W
326294165_Bham NE 1_0730_M_W
326294165_Bham NE 1_0730_M_W
326294165_Bham NE 1_0730_M_W
326294165_Bham NE 1_0730_M_W

 

The visual is displaying the route with ID= 32628 as the Route No for ID=32629:

TomSinAA_0-1754959583269.png

The difference is the lower case e in the "Ne" part of the route.  

1 ACCEPTED SOLUTION
danextian
Super User
Super User

Hi @TomSinAA 

This is expected behavior. VertiPaq stores and indexes text in a normalized, case-insensitive way, so APPLE, apple, and Apple are treated as the same value, with only the first encountered version kept. While this improves compression and reduces model size, it also means you cannot store two values that differ only by letter casing. A possible workaround is to append an invisible character to the text, repeated according to a defined sort order, so that VertiPaq treats them as unique - you can create a rank column for that sort order (not available in the GUI).

danextian_0-1754969348749.png

danextian_1-1754969380095.png

M Code:

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjYyM7JQ0lEyMTQzjXfKSMxV8EtVMIw3MDc2iPeND1eK1RmcaixR1bgOajWxAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"#Route Id" = _t, #"Route No" = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"#Route Id", Int64.Type}, {"Route No", type text}}),
    #"Added Route No Index" = Table.AddRankColumn(
   #"Changed Type",
   "Route No Index",
    {"Route No", Order.Ascending},
     [RankKind = RankKind.Dense]
),
    #"Added Custom" = Table.AddColumn(#"Added Route No Index", "Route No2", each [Route No] & Text.Repeat(Character.FromNumber(8203), [Route No Index]), type text),
    #"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Route No"}),
    #"Renamed Columns" = Table.RenameColumns(#"Removed Columns",{{"Route No2", "Route No"}})
in
    #"Renamed Columns"

 

 





Dane Belarmino | Microsoft MVP | Proud to be a Super User!

Did I answer your question? Mark my post as a solution!


"Tell me and I’ll forget; show me and I may remember; involve me and I’ll understand."
Need Power BI consultation, get in touch with me on LinkedIn or hire me on UpWork.
Learn with me on YouTube @DAXJutsu or follow my page on Facebook @DAXJutsuPBI.

View solution in original post

10 REPLIES 10
ryan_mayu
Super User
Super User

@TomSinAA 

not clear about your question. I didn't see 32629 with Ne in your access data. Why it display in your powerbi screenshot?





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!




Hello ryan_mayu,  I believe @danextian  explained why it is happening: This is expected behavior. VertiPaq stores and indexes text in a normalized, case-insensitive way, so APPLE, apple, and Apple are treated as the same value, with only the first encountered version kept.

TomSinAA
Helper IV
Helper IV

Hello @danextian

Here is my query:

let
Source = Access.Database(File.Contents("path to database is here"), [CreateNavigationProperties=true]),
_tbl_StaticRouteDetail = Source{[Schema="",Item="tbl_StaticRouteDetail"]}[Data],
#"Filtered Rows" = Table.SelectRows(_tbl_StaticRouteDetail, each [Active] = "-1")
in
#"Filtered Rows"

 

I am not sure how to modify it to incorporate your code.  I tried a few things but was not successful

v-agajavelly
Community Support
Community Support

Hi @TomSinAA ,

Just checking if you tried the rank + zero-width space fix did it sort out the Route No display issue?

Regards,
Akhil.

v-agajavelly
Community Support
Community Support

Hi @TomSinAA ,

Thanks @danextian  your explanation about VertiPaq being case-insensitive and the rank + invisible character workaround makes perfect sense. This is exactly the kind of insight that clears up why the values were collapsing in my visual, and it’s a solid, working fix.  
@TomSinAA did you get a chance to look into danextian’s solution? It might be worth trying, as it handles the case-only differences in your Route No values and ensures they display correctly in the report. It should resolve the issue if followed step by step. Let us know how it goes and if it works.

Thanks,
Akhil.

danextian
Super User
Super User

Hi @TomSinAA 

This is expected behavior. VertiPaq stores and indexes text in a normalized, case-insensitive way, so APPLE, apple, and Apple are treated as the same value, with only the first encountered version kept. While this improves compression and reduces model size, it also means you cannot store two values that differ only by letter casing. A possible workaround is to append an invisible character to the text, repeated according to a defined sort order, so that VertiPaq treats them as unique - you can create a rank column for that sort order (not available in the GUI).

danextian_0-1754969348749.png

danextian_1-1754969380095.png

M Code:

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjYyM7JQ0lEyMTQzjXfKSMxV8EtVMIw3MDc2iPeND1eK1RmcaixR1bgOajWxAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"#Route Id" = _t, #"Route No" = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"#Route Id", Int64.Type}, {"Route No", type text}}),
    #"Added Route No Index" = Table.AddRankColumn(
   #"Changed Type",
   "Route No Index",
    {"Route No", Order.Ascending},
     [RankKind = RankKind.Dense]
),
    #"Added Custom" = Table.AddColumn(#"Added Route No Index", "Route No2", each [Route No] & Text.Repeat(Character.FromNumber(8203), [Route No Index]), type text),
    #"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Route No"}),
    #"Renamed Columns" = Table.RenameColumns(#"Removed Columns",{{"Route No2", "Route No"}})
in
    #"Renamed Columns"

 

 





Dane Belarmino | Microsoft MVP | Proud to be a Super User!

Did I answer your question? Mark my post as a solution!


"Tell me and I’ll forget; show me and I may remember; involve me and I’ll understand."
Need Power BI consultation, get in touch with me on LinkedIn or hire me on UpWork.
Learn with me on YouTube @DAXJutsu or follow my page on Facebook @DAXJutsuPBI.

Hi danextian,  that worked to make the values unique.  So here is code I used for that: 

let
Source = Access.Database(
File.Contents("C:\Users\SinskiT\OneDrive - American Red Cross\IDA\TMS\Reporting\PBI\TMS Reporting Config Data.accdb"),
[CreateNavigationProperties=true]
),
_tbl_StaticRouteDetail = Source{[Schema="",Item="tbl_StaticRouteDetail"]}[Data],

// Filter only active rows
#"Filtered Rows" = Table.SelectRows(_tbl_StaticRouteDetail, each [Active] = "-1"),

// Add dense rank index based on Route No
#"Added Route No Index" = Table.AddRankColumn(
#"Filtered Rows",
"Route No Index",
{"Route No", Order.Ascending},
[RankKind = RankKind.Dense]
),

// Add invisible characters to make Route No unique
#"Added Custom" = Table.AddColumn(
#"Added Route No Index",
"Route No2",
each [Route No] & Text.Repeat(Character.FromNumber(8203), [Route No Index]),
type text
),

// Replace original Route No with modified version
#"Removed Columns" = Table.RemoveColumns(#"Added Custom", {"Route No"}),
#"Renamed Columns" = Table.RenameColumns(#"Removed Columns", {{"Route No2", "Route No"}})
in
#"Renamed Columns"

 

However, the invisible character causes issues when working with the data outside of PowerBI. For example, if the data in Power BI is exported or if the value is copied it includes the invisible character which make further analysis problematice.  For example, if the data is exported or copied to Excel the value generates error when using formulas such as Exact when comparing it to our source data for QC purposes.  Is there another way that would not add an invisible character to address the issue?

Is there another way that would not add an invisible character to address the issue? -- Well, you can add a repeated characters instead which won't be desirable. 

 

Either you create a macro to remove those in Excel or tell your users to remove them with a formula prior to doing a comparison

=SUBSTITUTE(C2,UNICHAR(8203),"")

Replace the range with the actual one.





Dane Belarmino | Microsoft MVP | Proud to be a Super User!

Did I answer your question? Mark my post as a solution!


"Tell me and I’ll forget; show me and I may remember; involve me and I’ll understand."
Need Power BI consultation, get in touch with me on LinkedIn or hire me on UpWork.
Learn with me on YouTube @DAXJutsu or follow my page on Facebook @DAXJutsuPBI.
Sandip_Palit
Resolver III
Resolver III

This is a one-time setup in the Power Query Editor. Once done, your data will always refresh correctly.

 

Open Power Query: In Power BI Desktop, go to the Home tab and click Transform data.

 

Add a Custom Column: Select your query from the list on the left. Then, go to the Add Column tab on the ribbon and click Custom Column.

 

Enter the Formula: In the Custom Column window, enter the following formula. This appends a "zero-width space" character to the end of each Route No. This character is invisible in your report but makes each string unique to the data model.

New column name: Route No Fixed

Custom column formula:

[Route No] & Character.FromNumber(8203)

 

Replace the Old Column:

You no longer need the original Route No column. Right-click its header and select Remove.

Right-click the header of your new Route No Fixed column, select Rename, and name it Route No.

 

Close & Apply: Click the Close & Apply button on the Home tab to load the changes into your data model.

 

Your visual should now display the correct Route No for each #Route Id because Power BI will no longer be able to group the case-different values together.


If this explanation and solution resolve your issue, please like and accept the solution.

Thanks Sandip_Palit, that did not work.  I applied those steps:

TomSinAA_0-1754961680279.png

and visual still shows the same issue:

TomSinAA_1-1754961723281.png

 

Helpful resources

Announcements
November Power BI Update Carousel

Power BI Monthly Update - November 2025

Check out the November 2025 Power BI update to learn about new features.

Fabric Data Days Carousel

Fabric Data Days

Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.

Top Solution Authors
Top Kudoed Authors