Order of Evaluation in CALCULATE Parameters
DAX is the new language used by PowerPivot and Analysis Services in Tabular mode and it resembles the syntax of Excel formula and it can be considered a functional language. You do not have iterative...
View ArticleOptimize Many-to-Many Calculation in DAX with SUMMARIZE and Cross Table...
PowerPivot and Analysis Services 2012 Tabular do not support many-to-many (M2M) relationship directly in the data model. However, you can obtain the desired result from a many-to-many relationship by...
View ArticleBest Practices Using SUMMARIZE and ADDCOLUMNS
Everyone using DAX is probably used to SQL query language. Because of the similarities between the Tabular data modeling and the relational data modeling, there is the expectation that you can do the...
View ArticleParallelize ProcessAdd with AMO
In this article we see a function to enable parallelism in commands sent to Analysis Services by using the AMO library even when you need to use the change the QueryBinding. This function is useful...
View ArticleRules for DAX Code Formatting
With the modern editors that have automatic code formatting features, each one has its own code formatting style. Usually there are a few “common rules” for code formatting depending on the language,...
View ArticleImport Data from Tabular Model in Excel Using a DAX Query
When you use Excel to connect to a Tabular database in Analysis Services, you get a PivotTable as a result. In this article, you learn how to import data in a table writing a DAX query than runs on...
View ArticleWeek-Based Time Intelligence in DAX
The DAX language provides several Time Intelligence functions that simplify writing calculations such as year-to-date (YTD), year-over-year (YOY) and so on. However, if you have special calendar...
View ArticleChecklist for Memory Optimizations in PowerPivot and Tabular Models
This article contains a short checklist of what you have to do in order to optimize the memory used by a data model in PowerPivot or in Analysis Services Tabular, including links to tools and resources...
View ArticleGrouping Transactions by Age of Customers in DAX
Grouping transactions by customers’ age requires a computation made row by row at transaction level. DAX offers an elegant solution using calculated columns, which is described in this article. This...
View ArticleOrganizing Measures and Attributes in Folders with Tabular
When you create a Tabular model in Microsoft SQL Server Analysis Services (SSAS), you have to define all of the measures that the user will be able to use. All the measures defined in the measure grid...
View ArticleInventory in Power Pivot and DAX: Snapshot vs. Dynamic Calculation
You can implement the calculation of stock inventory over time in several ways in DAX. The xVelocity technology in Power Pivot and Analysis Services Tabular is so fast that you might considerboth...
View ArticleYearly Customer Historical Sales in DAX
With DAX you can calculate the sales of the first, second and third year of a new customer without any ETL. In this article you see how to implement this calculation with good performance. Consider the...
View ArticleHandling Wrong or Missing Dates in Tabular
In the traditional star schema design of a Data Mart, you replace a missing, unknown or wrong date in the fact table with a dummy value in the Date dimension table. In Tabular, handling a Date table...
View ArticleUSERELATIONSHIP in Calculated Columns
In a Power Pivot or Tabular model that has inactive relationships, you can use the USERELATIONSHIP function to apply an inactive relationship to a particular DAX expression. Its usage is simple in a...
View ArticleSemi-Additive Measures in DAX
Values such as inventory and balance account, usually calculated from a snapshot table, require the use of semi-additive measures. In Multidimensional you have specific aggregation types, like...
View ArticleNatural Hierarchies in Power Pivot and Tabular
Creating a hierarchy in a Power Pivot or Tabular data model is very easy, but you might experience performance issues if the hierarchy is not “natural”. This article explains how to create hierarchies...
View ArticleLast Process Date in SSAS Tabular
How do you get the last process date for an SSAS Tabular Database? This article shows the techniques you can use and explains how to interpret the information available. Last Process Date in a...
View ArticleFILTER vs CALCULATETABLE: optimization using cardinality estimation
A common best practice is to use CALCULATETABLE instead of FILTER for performance reason. This article explore the reasons of that and explain when FILTER might be better than CALCULATETABLE. Please...
View ArticleCheck Empty Table Condition with DAX
In DAX there are different ways to test whether a table is empty. This test can be used in complex DAX expressions and this short article briefly discuss what are the suggested approaches from a...
View ArticleUsing Tabular Models in a Large-scale Commercial Solution
Analysis Services Tabular can be used in large-scale solutions and SQLBI already helped several companies in the challenging effort of defining a reliable and scalable architecture, designing the right...
View ArticleSSAS Tabular as Analytical Engine
This article describes pros and cons of using SQL Server Analysis Services Tabular as the analytical engine in a service or application, based on the experience of companies who have adopted it. Many...
View ArticleAutoExist and Normalization
The autoexist feature used by MDX queries sent to an Analysis Services or Power Pivot data models can have different behaviors depending on the normalization level. This article describes these...
View ArticleTools for DAX and Tabular Developers
This page contains descriptions and links to necessary tools and resources for DAX and Tabular developers. DAX Studio http://daxstudio.codeplex.com/ DAX Studio is a free tool for running DAX queries...
View ArticleFrictionless Renaming in Tabular Models with Analysis Services
The names used for table, columns, and measures in DAX cannot be renamed without breaking existing DAX formulas. This article describes how to leverage translations to decouple user interface from...
View ArticleHeap Memory Settings for Analysis Services Tabular 2012 / 2014
The default memory settings for Analysis Services Tabular might be less than optimal. This article describes why this might happen, and guides you choosing the right configuration. A Tabular model in...
View ArticleChoose the Right Hardware for Analysis Services Tabular
Choosing the right hardware is critical for a solution based on Analysis Services Tabular. Spending more does not always mean having a better machine. This short article describes how to choose the...
View ArticleParameters in DAX Measures
DAX is a functional language that does not allow you to create functions. However, if you need to pass a parameter to an algorithm, you can use a measure passing a value through a filter argument in...
View ArticleData Model Size with VertiPaq Analyzer
Analyzing table and column size is an important step in optimizing a data model for Power Pivot, Power BI, or Analysis Services Tabular. This article describes VertiPaq Analyzer, an Excel workbook to...
View ArticleCosts of Relationships in DAX
The relationships in a data model queried by DAX are a fundamental part of the engine and simplify the query itself. This article examines the cost of relationships in a data model, providing hints to...
View ArticleCalculated Columns and Measures in DAX
One of the first concepts to learn in DAX is the difference between calculated columns and measures. This article shortly recap the differences and describes when to use each one. Calculated columns...
View Article