Understanding virtual tables
The concept of virtual tables in DAX is somewhat confusing and misunderstood, yet it is one of the most powerful and important concepts in DAX. When we talk about virtual tables, we refer to in-memory tables that we build using certain DAX functions or constructors. The data in a virtual table is either derived from the data within the data model or the data we construct for specific purposes.
Remember, whenever we use a DAX function that results in a table of values, we are creating a virtual table.
At this point, you may ask, so when I use a DAX function to create a calculated table, am I creating a virtual table? The answer is it depends. If you simply use a set of DAX functions that generate data or selectively load data from other tables into a calculated table, the answer is no: you have not created any virtual tables.
Nevertheless, when generating or loading the data from other tables, taking some table operations, and loading the results...