Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more
Hello all,
Trying to accomplish what in theory seems like a simple mechanic, but I have not found a way to accomplish this in any of the resources for generates DAX measures via C# Scripts in Tabular Editor!
When generating a basic measure, say SUM of Sales Amount the C# Script is: (thank you @dotykier )
/*
* Title: Auto-generate SUM measures from columns
*
* Author: Daniel Otykier, twitter.com/DOtykier
*
* This script, when executed, will loop through the currently selected columns,
* creating one SUM measure for each column and also hiding the column itself.
*/
// Loop through all currently selected columns:
foreach(var c in Selected.Columns)
{
var newMeasure = c.Table.AddMeasure(
"Sum of " + c.Name, // Name
"SUM(" + c.DaxObjectFullName + ")", // DAX expression
c.DisplayFolder // Display Folder
);
// Set the format string on the new measure:
newMeasure.FormatString = "0.00";
// Provide some documentation:
newMeasure.Description = "This measure is the sum of column " + c.DaxObjectFullName;
// Hide the base column:
c.IsHidden = true;
}
However, this code generates the measure within the Table of the selected column, i.e. the "Sales" table.
I would like to generate the Measure in a seperate table called "Calculations", or move it to a different table after it has been generated but I cannot crack how to achieve this.
Any help would be greatly appreciated.
Thanks.
Aaron
Solved! Go to Solution.
Hi,
Would this do the trick?
var measureTable = Model.Tables["Measure Table"]; // Replace "Measure Table" with your desired table name
foreach(var c in Selected.Columns)
{
var newMeasure = measureTable.AddMeasure(
"Sum of " + c.Name, // Name
"SUM(" + c.DaxObjectFullName + ")", // DAX expression
c.DisplayFolder // Display Folder
);
// Set the format string on the new measure:
newMeasure.FormatString = "0.00";
// Provide some documentation:
newMeasure.Description = "This measure is the sum of column " + c.DaxObjectFullName;
// Optionally, hide the base column:
c.IsHidden = true;
}
Hi,
Would this do the trick?
var measureTable = Model.Tables["Measure Table"]; // Replace "Measure Table" with your desired table name
foreach(var c in Selected.Columns)
{
var newMeasure = measureTable.AddMeasure(
"Sum of " + c.Name, // Name
"SUM(" + c.DaxObjectFullName + ")", // DAX expression
c.DisplayFolder // Display Folder
);
// Set the format string on the new measure:
newMeasure.FormatString = "0.00";
// Provide some documentation:
newMeasure.Description = "This measure is the sum of column " + c.DaxObjectFullName;
// Optionally, hide the base column:
c.IsHidden = true;
}
You godsend!
That's worth writing a small blog on now 🙂
Thank you!
The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!
| User | Count |
|---|---|
| 3 | |
| 2 | |
| 2 | |
| 1 | |
| 1 |
| User | Count |
|---|---|
| 4 | |
| 4 | |
| 4 | |
| 3 | |
| 3 |