Forum Discussion

KumbharM's avatar
KumbharM
Regular Visitor
6 days ago

Power BI automatically normalizing text casing during data load

Hello everyone,

I am building a Power BI connector that loads data from a server and have observed an unexpected behavior with text values.

For example, the source data contains the following values in the City column:

  • PunE
  • Pune
  • pune
  • PUNE

However, after loading the data into Power BI, all values are displayed as PunE, matching the casing of the first occurrence.

It appears that Power BI treats text values as case-insensitive and preserves the casing of the first occurrence of a particular text value.

My questions are:

  1. Is this the expected behavior of Power BI during data loading/modeling?
  2. If this is expected behavior, is Microsoft/Power BI working on any changes or improvements to preserve the original casing of text values?
  3. Is there any way to preserve the exact casing of each source value?
  4. Since I am developing a connector that retrieves data directly from a server, are there any connector-side measures or transformations I can apply to prevent this behavior?

I have attached screenshots illustrating the source data and the resulting Power BI output.

Excel Table - 

NameAgeCity
Bhargav22PunE
Dhairya22Pune
Abhishek22pune
Gautam22PUNE

Power BI Table which is loaded from above excel file - 

NameAgeCity
Bhargav22PunE
Dhairya22PunE
Abhishek22PunE
Gautam22PunE

Any guidance on how this can be handled at the connector level would be appreciated.

2 Replies

  • v-abhinavmu's avatar
    v-abhinavmu
    Icon for Community Support rankCommunity Support

    Hi KumbharM​,
    Thanks for reaching out to the Microsoft Fabric Community forum.

    Yes, the behavior described is documented for Power BI.
    The Power BI engine that stores and queries data is case insensitive, so it treats text values that differ only by capitalization as the same value. In contrast, Power Query is case sensitive, so it can display the casing as stored in the source before the data is loaded into the Power BI model.

    Microsoft also explains that, when data is loaded, the Power BI engine evaluates rows from top to bottom and maintains a dictionary of unique text values. When it encounters values that differ only by case, they are treated as the same value and the existing variation is referenced. Therefore, the capitalization displayed in the model can correspond to the first variation encountered during loading.

    This explains the behavior in the example where PunE, Pune, pune, and PUNE are loaded and subsequently displayed using the casing of the first occurrence.

    For a connector scenario, once the values are loaded into the Power BI engine, case-only variations are treated as the same value. The Microsoft documentation specifically recommends, for DirectQuery with a case-sensitive data source, normalizing casing in the source query or in Power Query Editor.

    For more details, please refer to the below Official Microsoft Documentation:
    Data types in Power BI - Power BI | Microsoft Learn
    DirectQuery in Power BI: When to Use, Limitations, Alternatives - Power BI | Microsoft Learn

    I hope this helps. Please feel free to reach out if you have any further questions.
    Thank you.