March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early bird discount ends December 31.
Register NowBe one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now
I work in an bilingual organization. Many of our spreadsheets have a VBA function that translates the table headers on request. These tables need to be data sources for various queries. But a query fails when the source headers are different (ie translated) from what they were when the query was built.
What is the best way to query an Excel table with dynamic column headers?
Here is some toy data:
TableX (with English headers)
Colour | Name |
blue | Bob |
green | Jill |
TableX (with French headers after VBA swaps in the translations)
Couleur | Nom |
blue | Bob |
green | Jill |
Solved! Go to Solution.
Add the following step custom after your source step (replace ... with your other columns):
Table.RenameColumns(Source, List.Zip({Table.ColumnNames(Source), {"Colour", "Name", ...}}))
To translate back, at the end of your query add (replace previousStepName with your last step):
Table.RenameColumns(previousStepName, List.Zip({Table.ColumnNames(previousStepName), Table.ColumnNames(Source)}))
Add the following step custom after your source step (replace ... with your other columns):
Table.RenameColumns(Source, List.Zip({Table.ColumnNames(Source), {"Colour", "Name", ...}}))
To translate back, at the end of your query add (replace previousStepName with your last step):
Table.RenameColumns(previousStepName, List.Zip({Table.ColumnNames(previousStepName), Table.ColumnNames(Source)}))
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!
Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions.
Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.