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

Enhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.

Reply
ronrsnfld
Super User
Super User

Excel Rich data types

Five years ago it was the case that Power Query could not access Excel Rich Data Types (eg Stock, Geography) directly.

Reading a table would result in   "DataFormat.Error: Invalid cell value '#VALUE!'." in the column containing those values.

 

There is a workaround whereby the data from that column is extracted into another column. It will appear as text and could be read directly by Power Query.

 

While I can add the column in Excel, for appearance sake I'd rather not, but is there any method to allow Power Query to access that column directly?

Sample Data showing "Ticker" column in Excel as a stock data type

 

ronrsnfld_0-1736602903491.png

 

Reading table into PQ showing Error for that column

ronrsnfld_1-1736602975394.png

 

 

 

1 ACCEPTED SOLUTION

Yes, it is very complicated, and I don't think I can explain it to you in English (even with the help of translation software). It probably indexes the values ​​in the following order:

  1. In the file xl/worksheets/sheet1.xml, find the vm attribute value of the c tag and go to the next step.
  2. In the file xl/metadata.xml, the rc tag under valueMetadata>bk has attributes t and v. According to t attribute value, go to the metadataTypes tag to determine the metadata type (find the name attribute value). Find the futureMetadata tag corresponding to the previous name, and then find the i attribute value of the xlrd:rvb tag under this tag.
  3. Each rv tag index under the file xl/richData/rdrichvalue.xml corresponds to the previous i attribute value. Each v tag in the rv tag just displays the value, and you also need to find the corresponding s tag under the file xl/richData/rdrichvaluestructure.xml through the s attribute value of the rv tag. Each k tag here corresponds to the v tag mentioned above.

It should be noted that when searching, some indexes start from 0 (such as the s attribute value under the rv tag), and some start from 1 (such as the vm attribute value).

I am very busy at this time. If I have time later, I think I will draw a more understandable diagram to explain this process.

View solution in original post

4 REPLIES 4
ZhangKun
Super User
Super User

This question is similar to reading hyperlinks from text in xlsx file, you need to read the original content of xlsx file.

If you plan to delve deeper, you need to read the ISO/IEC 29500 standard carefully.


@ZhangKun wrote:

This question is similar to reading hyperlinks from text in xlsx file, you need to read the original content of xlsx file.


By that, do you mean getting directly into the zip archive which represents the excel file?

One of those zipped files is the only place I am seeing the relevant data.

Yes, it is very complicated, and I don't think I can explain it to you in English (even with the help of translation software). It probably indexes the values ​​in the following order:

  1. In the file xl/worksheets/sheet1.xml, find the vm attribute value of the c tag and go to the next step.
  2. In the file xl/metadata.xml, the rc tag under valueMetadata>bk has attributes t and v. According to t attribute value, go to the metadataTypes tag to determine the metadata type (find the name attribute value). Find the futureMetadata tag corresponding to the previous name, and then find the i attribute value of the xlrd:rvb tag under this tag.
  3. Each rv tag index under the file xl/richData/rdrichvalue.xml corresponds to the previous i attribute value. Each v tag in the rv tag just displays the value, and you also need to find the corresponding s tag under the file xl/richData/rdrichvaluestructure.xml through the s attribute value of the rv tag. Each k tag here corresponds to the v tag mentioned above.

It should be noted that when searching, some indexes start from 0 (such as the s attribute value under the rv tag), and some start from 1 (such as the vm attribute value).

I am very busy at this time. If I have time later, I think I will draw a more understandable diagram to explain this process.

Thank you for that information.

I took a look at a zip connector and opened the file. The process is doable but, as you write, complicated. But I think I can take it from here.

 

Thank you for your input.

Helpful resources

Announcements
July PBI25 Carousel

Power BI Monthly Update - July 2025

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

Join our Fabric User Panel

Join our Fabric User Panel

This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.

June 2025 community update carousel

Fabric Community Update - June 2025

Find out what's new and trending in the Fabric community.

Top Solution Authors