Level: Beginners
Original: Feb 2016
It has been many years since Matt wrote his first take on Calculated Columns vs Measures, back in 2014 when he wrote the blog post 5 common mistakes of self taught DAX students at PowerPivotPro.com. Since then Matt expanded his ideas with the original release of this article back in Feb 2016, yet this topic continues to be relevant today. Here, at Excelerator BI, we train a lot of people in Power BI and Fabric at our training courses, including Matt’s Supercharge Power BI online training course, and also help many more understand DAX and Power BI on various forums. The number 1 mistake we see self-taught DAX students with an Excel background make is the inappropriate use and over use of Calculated Columns when they should be using Measures! That is why I am updating this article for the current audience.
Moths to a Flame
Through no real fault of their own, Power BI developers coming from an Excel background are typically attracted to Calculated Columns like “moths to a flame” with sometimes equally dangerous side effects.
This is likely because Excel users feel very comfortable working in the table structure that exists in an Excel Spreadsheet. In addition, self-taught DAX authors normally don’t know any better.
Take a look at the Table View window below (Adventure Works Sales Table). When an untrained DAX user who is used to working in Excel looks at this table (which looks a lot like an Excel spreadsheet), the “natural thing to do” is to think “I’ve got Sales (1 below), I’ve got Cost (2), but I need Margin $ (Sales minus Cost)”. So then they jump in and write a simple Calculated Column for Margin (3 below).
But this is 100% the wrong thing to do. Please, please don’t do this! Use Measures instead.
Calculated Columns are Evil
Matt was very critical of Calculated Columns in the past, to the extent that he suggested they are evil (as implied in the graphic below), but since then his (and my) opinion has mellowed. Calculated Columns are not evil, in fact there are modeling challenges that are best solved using Calculated Columns (more on that later), but they certainly can be bad in the hands of the uninitiated, which is why we warn new DAX authors to steer clear of them unless they are absolutely certain it is the right approach.
Here is a list of reasons that Calculated Columns can be bad.
- The results of your formula are calculated and stored in the table for every row in the table. This takes up space on disk when you save your report and also uses space in memory when your report is open, and this will make your report less performant. If your table is 100 rows then it probably doesn’t matter. If your table is 100 million rows, then it can be a big problem!
- The compression of Calculated Columns may not be as good as compression of imported columns. This is because Calculated Columns are not able to be calculated until the imported columns’ data is available to use, as a result they are the last columns to be stored, and thus the last to compress. The VertiPaq engine (Power BI’s column store database) therefore doesn’t give Calculated Columns the same prioritisation consideration it gives imported columns.
- Calculated Columns are recalculated every time the workbook is refreshed against the data source. This will slow down the refresh process (increasingly so for every additional Calculated Column).
- You can unwittingly create circular reference conflicts in your tables (particularly data tables) for reasons that are very difficult for learners to understand (and beyond the scope of this article).
Write Measures Instead
The most practical reason you shouldn’t write Calculated Columns is that you simply don’t need to. Power BI was built for Measures. If Calculated Columns are Evil, then Measures are Angelic. Here are the benefits of using Measures instead of Calculated Columns.
- Your workbooks will be smaller and faster. You are not “materialising” the results of every possible calculation in your table and storing it in memory and on disk (like with a Calculated Column). Instead Measures are calculated on demand, and Measure calculations are normally lightening fast. The only results that are materialised are the results that need to be displayed inside the report visual.
- Power BI visuals naturally filter your data (semantic model) before calculations are completed. This means that Measures only need to be calculated over the filtered subset of data, further reducing the number of calculation iterations required.
Take the Calculated Column mentioned earlier (Total Margin). You can get the exact same outcome much more efficiently by writing the following measures. Note the calculations below are Measures, not Calculated Columns.
Total Sales = SUM(Sales[SalesAmount]) Total Cost = SUM(Sales[TotalProductCost]) Total Margin = [Total Sales] - [Total Cost]
When Calculated Columns are OK
I still believe Calculated Columns are extremely dangerous in the wrong hands, however as I have built depth of knowledge I have learnt more about the specific conditions when it is okay to use Calculated Columns. Here are the general rules for when it is okay to use Calculated Columns. For Excel users that are still learning; if you don’t know which to use, then it is recommend that you assume you should use a Measure at least until you are sure in your mind why you must use a Calculated Column. With that in mind, it is generally OK to use Calculated Columns in the following circumstances.
- When you need to use the results of your formula to filter your data model. Measures can only ever be placed on a Values field well. You can’t add a Measure to a Categorical field well (i.e. Rows and Columns of a Matrix, Slicers or the Filters Pane, or X-Axis of a Column Chart). If you want or need to do this, then you need a Column and not a Measure. Most of the time, it is preferable to get the column added in your data source rather than use a Calculated Column. The benefits of loading it from the source include:
- that you can re-use the source column in other workbooks without re-writing the calculated column
- there is the potential for improved compression on import
- the refresh of your workbook will be faster.
But for times when that is not possible to import from the source, and it doesn’t make sense to build it using Power Query, then a Calculated Column is your friend.
- When it doesn’t make sense to build it using Power Query. The most common reason you should choose to add a Calculated Column (using DAX) is if you need to leverage existing parts of the model to create the new data. Again an Adventure Works example here should help. Imagine you want to classify your customers in bands, of high sales, medium sales, or low sales. You need a new column in your Customer table (lookup table) so you can use that column on a slicer in one of your reports. If you tried to do this task inside Power Query, it would be quite some additional work. You would have to work out the total sales for each customer in Power Query, and that would require you to
- Create a join between the Customer table and the Sales table
- Pre-aggregate the sales data for each customer
- Group the customers into the size bands using the business logic you need.
- Add the column (high, medium, low).
The important point here is that items 1 and 2 will most likely already exist in the data model itself. In the case of Adventure Works, the model already has a Customer table, a relationship to the Sales table, and a measure that aggregates the sales. These features of the model can be used to easily add the new Calculated Column using DAX. So in short, you should prefer a Calculated Column when it leverages the logic of your model (measures and relationships) so that you don’t have to repeat this logic inside Power Query.
- When you are enhancing a Lookup (Dimension) table. Lookup tables are normally smaller (less rows) and hence the negative impacts associated with Calculated Columns are not as significant.
- When the results of the Calculated Column have a low cardinality. Uniqueness of values in a column is the enemy of compression in Power BI. So if your Calculated Column returns 2 possible unique values (eg Yes or No) and this column helps you with writing a complex Measure, then there are no problems with the Calculated Column. Calculated Columns with a low cardinality compress really well.
- When you have a very complicated formula that is very taxing on your report to the point where run time performance of a Measure calculation is so bad that it is preferable to “pre-calculate” and store the result in a column. It is unlikely that a self taught Excel user will be writing such a complex formula in the early days of learning DAX, but it is worth noting that this is an acceptable and valid use case.
Where to learn more
- Subscribe to Blogs and read all you can.
- Read a book. Matt’s book Supercharge Power BI covers the right way to use Calculated Columns as well as all the other topics that you need to learn to be good at Power BI, and any other tool that utilises the VertiPaq engine, such as Power Pivot for Excel. Matt’s book focuses on giving you the theory as well as hands on practice. We also keep a curated list of other great Power BI and Power Query books in our Knowledge Base.
- Do some live training. Students from our live training courses in Australia walk away with depth of knowledge that is difficult to replicate in other learning environments. If you really want to gain deep understanding, then consider attending one of our live training courses.
- If you prefer self-paced online training, you can enroll in Matt’s Supercharge Power BI Online Training for guided learning.
cialis no prescription overnight delivery – buying cialis without prescription cialis bodybuilding
can you drink wine or liquor if you took in tadalafil – https://strongtadafl.com/# canadian no prescription pharmacy cialis
I wish I had read this sooner!
Your breakdown of the topic is so well thought out.
This was incredibly useful and well written.
It’s refreshing to find something that feels honest and genuinely useful. Thanks for sharing your knowledge in such a clear way.
Such a simple yet powerful message. Thanks for this.
I love how well-organized and detailed this post is.
I’ll definitely come back and read more of your content.
I enjoyed your take on this subject. Keep writing!
This content is really helpful, especially for beginners like me.
Great points, well supported by facts and logic.
Your writing style makes complex ideas so easy to digest.
I appreciate the honesty and openness in your writing.
I really needed this today. Thank you for writing it.
I love the clarity in your writing.
You have a real gift for explaining things.
Thank you for sharing this! I really enjoyed reading your perspective.
This was really well done. I can tell a lot of thought went into making it clear and user-friendly. Keep up the good work!
Your content always adds value to my day.
Your content never disappoints. Keep up the great work!
I’ve bookmarked this post for future reference. Thanks again!
I agree with your point of view and found this very insightful.
Great article! I’ll definitely come back for more posts like this.
This gave me a whole new perspective on something I thought I already understood. Great explanation and flow!
Your articles always leave me thinking.
Your writing style makes complex ideas so easy to digest.
This is one of the best explanations I’ve read on this topic.
I’ve gained a much better understanding thanks to this post.
Great points, well supported by facts and logic.
I hadn’t considered this angle before. It’s refreshing!
Such a refreshing take on a common topic.
I love how well-organized and detailed this post is.
You have a real gift for explaining things.
So simple, yet so impactful. Well written!
You write with so much clarity and confidence. Impressive!
The way you write feels personal and authentic.
Thank you for putting this in a way that anyone can understand.
It’s refreshing to find something that feels honest and genuinely useful. Thanks for sharing your knowledge in such a clear way.
Very useful tips! I’m excited to implement them soon.
This is one of the best explanations I’ve read on this topic.
You really know how to connect with your readers.
I agree with your point of view and found this very insightful.
Thanks for making this so reader-friendly.
Very relevant and timely content. Appreciate you sharing this.
You’ve sparked my interest in this topic.
Thanks for making this easy to understand even without a background in it.
uses for cialis – https://ciltadgn.com/ cialis generic timeline 2018
I wish I had read this sooner!
Your writing always inspires me to learn more.
Your thoughts are always so well-organized and presented.
I’ll definitely come back and read more of your content.
What I really liked is how easy this was to follow. Even for someone who’s not super tech-savvy, it made perfect sense.
I really needed this today. Thank you for writing it.
cialis online no prescription – ciltad generic cialis substitute
I enjoyed your take on this subject. Keep writing!
I enjoyed your perspective on this topic. Looking forward to more content.
Your breakdown of the topic is so well thought out.
I never thought about it that way before. Great insight!
Your passion for the topic really shines through.
You explained it in such a relatable way. Well done!
buy voucher for cialis daily online – https://ciltadgn.com/ cialis 5mg best price
This gave me a whole new perspective. Thanks for opening my eyes.
This article came at the perfect time for me.
Thank you for covering this so thoroughly. It helped me a lot.
What a great resource. I’ll be referring back to this often.
This gave me a whole new perspective on something I thought I already understood. Great explanation and flow!
This was so insightful. I took notes while reading!
Keep educating and inspiring others with posts like this.
What an engaging read! You kept me hooked from start to finish.
Your tips are practical and easy to apply. Thanks a lot!
generic cialis – https://ciltadgn.com/ what is cialis used to treat
cialis and blood pressure – https://ciltadgn.com/# where can i buy cialis online in canada
cialis commercial bathtub – sanofi cialis generic cialis 20 mg from india
side effects cialis – https://ciltadgn.com/ cialis price canada
overnight cialis delivery – https://ciltadgn.com/# buying cialis without prescription
cheap cialis with dapoxetine – https://ciltadgn.com/# cialis as generic
canada cialis – ciltad generic cialis with out a prescription
order cenforce 100mg online cheap – https://cenforcers.com/# cenforce 50mg brand
cenforce canada – click cenforce oral
order cenforce 50mg generic – on this site cenforce 50mg ca
buy cenforce – https://cenforcers.com/# cenforce for sale
buy cenforce pills – cenforcers.com purchase cenforce generic
buy cenforce tablets – order cenforce 50mg generic cenforce 50mg cheap
buy cheap cenforce – https://cenforcers.com/ order cenforce 100mg online
cenforce pills – https://cenforcers.com/ cheap cenforce 50mg
order cenforce 50mg – https://cenforcers.com/ cenforce sale
order cenforce 100mg for sale – https://cenforcers.com/# buy cenforce pill
escitalopram order online – https://escitapro.com/ buy escitalopram 10mg generic
Share your link and rake in rewards—join our affiliate team! https://shorturl.fm/KlXSy
The way you write feels personal and authentic.
You’ve clearly done your research, and it shows.
buy forcan sale – site fluconazole uk
The way you write feels personal and authentic.
I wish I had read this sooner!
I appreciate the real-life examples you added. They made it relatable.
This topic is usually confusing, but you made it simple to understand.
This article came at the perfect time for me.
where to buy forcan without a prescription – https://gpdifluca.com/ buy fluconazole pill
I love how clearly you explained everything. Thanks for this.
This post cleared up so many questions for me.
I appreciate your unique perspective on this.
This is one of the best explanations I’ve read on this topic.
You write with so much clarity and confidence. Impressive!
forcan tablet – https://gpdifluca.com/ forcan cost
I’m definitely going to apply what I’ve learned here.
This was very well laid out and easy to follow.
This gave me a lot to think about. Thanks for sharing.
This was really well done. I can tell a lot of thought went into making it clear and user-friendly. Keep up the good work!
This was very well laid out and easy to follow.
This was really well done. I can tell a lot of thought went into making it clear and user-friendly. Keep up the good work!
Your writing always inspires me to learn more.
This post cleared up so many questions for me.
This is exactly the kind of content I’ve been searching for.
Great article! I’ll definitely come back for more posts like this.
Thank you for putting this in a way that anyone can understand.
This is one of the best explanations I’ve read on this topic.
Your writing always inspires me to learn more.
Keep educating and inspiring others with posts like this.
I’ve bookmarked this post for future reference. Thanks again!
I’ll be sharing this with a few friends.
I feel more confident tackling this now, thanks to you.
Thanks for taking the time to break this down step-by-step.
You made some excellent points here. Well done!
This is one of the best explanations I’ve read on this topic.
This topic is usually confusing, but you made it simple to understand.
order diflucan generic – flucoan buy cheap fluconazole
order forcan online – https://gpdifluca.com/# where to buy forcan without a prescription
buy diflucan cheap – site purchase fluconazole pills
fluconazole 100mg canada – https://gpdifluca.com/ purchase diflucan pill
order diflucan 200mg online cheap – click buy generic fluconazole
diflucan online order – flucoan buy diflucan online
diflucan 100mg usa – https://gpdifluca.com/# purchase fluconazole online
Monetize your audience with our high-converting offers—apply today! https://shorturl.fm/zPazR
Your network, your earnings—apply to our affiliate program now! https://shorturl.fm/aQ8hJ
Calculated columns and measures both use DAX, but they serve different purposes. Columns add extra data to your table, while measures are made for calculations in visuals like charts and reports. Use columns for row level data and measures for summary insights.
This is exactly the kind of content I’ve been searching for.
Thank you for putting this in a way that anyone can understand.
This post gave me a new perspective I hadn’t considered.
I wish I had read this sooner!
You always deliver high-quality information. Thanks again!
Thank you for offering such practical guidance.
Your passion for the topic really shines through.
I love how clearly you explained everything. Thanks for this.
Thanks for sharing your knowledge. This added a lot of value to my day.
Your content always adds value to my day.
I appreciate how genuine your writing feels. Thanks for sharing.
Very relevant and timely content. Appreciate you sharing this.
Thank you for making this topic less intimidating.
I appreciate your unique perspective on this.
Thank you for offering such practical guidance.
This was a great reminder for me. Thanks for posting.
Such a simple yet powerful message. Thanks for this.
Keep writing! Your content is always so helpful.
Your breakdown of the topic is so well thought out.
I never thought about it that way before. Great insight!
I’m definitely going to apply what I’ve learned here.
This was very well laid out and easy to follow.
This content is gold. Thank you so much!
Your content always adds value to my day.
I wasn’t expecting to learn so much from this post!
This gave me a whole new perspective on something I thought I already understood. Great explanation and flow!
Your thoughts are always so well-organized and presented.
What an engaging read! You kept me hooked from start to finish.
Posts like this are why I keep coming back. It’s rare to find content that’s simple, practical, and not full of fluff.
This gave me a lot to think about. Thanks for sharing.
Thank you for making this topic less intimidating.
Thanks for making this easy to understand even without a background in it.
This gave me a whole new perspective on something I thought I already understood. Great explanation and flow!
This is exactly the kind of content I’ve been searching for.
This gave me a whole new perspective. Thanks for opening my eyes.
What an engaging read! You kept me hooked from start to finish.
Thanks for addressing this topic—it’s so important.
This gave me a lot to think about. Thanks for sharing.
This gave me a whole new perspective. Thanks for opening my eyes.
This post cleared up so many questions for me.
The way you write feels personal and authentic.
What I really liked is how easy this was to follow. Even for someone who’s not super tech-savvy, it made perfect sense.
amoxicillin medication – cheap amoxil generic purchase amoxicillin online
Thanks for taking the time to break this down step-by-step.
You write with so much clarity and confidence. Impressive!
Thanks for taking the time to break this down step-by-step.
Keep writing! Your content is always so helpful.
You really know how to connect with your readers.
Your writing style makes complex ideas so easy to digest.
Thank you for being so generous with your knowledge.
I wish I had read this sooner!
Great article! I’ll definitely come back for more posts like this.
Your writing always inspires me to learn more.
cheap amoxicillin online – https://combamoxi.com/ amoxicillin order
It’s great to see someone explain this so clearly.
I’m definitely going to apply what I’ve learned here.
I appreciate the honesty and openness in your writing.
I’ll definitely come back and read more of your content.
This was very well laid out and easy to follow.
Great points, well supported by facts and logic.
It’s great to see someone explain this so clearly.
Thank you for being so generous with your knowledge.
I enjoyed your take on this subject. Keep writing!
Your writing always inspires me to learn more.
This article came at the perfect time for me.
amoxil pills – https://combamoxi.com/ how to buy amoxil
This article came at the perfect time for me.
order amoxicillin for sale – combamoxi.com order amoxil pill
buy generic amoxicillin – comba moxi cheap amoxil for sale
purchase amoxicillin generic – https://combamoxi.com/ purchase amoxil for sale
buy amoxil tablets – https://combamoxi.com/ buy amoxil online
amoxil order online – buy amoxil medication amoxil cheap
buy amoxicillin cheap – comba moxi buy generic amoxil online
buy amoxicillin generic – buy amoxicillin pill cheap amoxil sale
You bring a fresh voice to a well-covered topic.
You’ve clearly done your research, and it shows.
I’ll definitely come back and read more of your content.
You’ve built a lot of trust through your consistency.
Great job simplifying something so complex.
This was easy to follow, even for someone new like me.
This was easy to follow, even for someone new like me.
I learned something new today. Appreciate your work!
It’s great to see someone explain this so clearly.
I like how you kept it informative without being too technical.
You write with so much clarity and confidence. Impressive!
Thanks for taking the time to break this down step-by-step.
This topic really needed to be talked about. Thank you.
Your articles always leave me thinking.
Thank you for covering this so thoroughly. It helped me a lot.
So simple, yet so impactful. Well written!
I appreciate how genuine your writing feels. Thanks for sharing.
Keep writing! Your content is always so helpful.
I’ve bookmarked this post for future reference. Thanks again!
You made some excellent points here. Well done!
This is now one of my favorite blog posts on this subject.
This content is gold. Thank you so much!
Posts like this are why I keep coming back. It’s rare to find content that’s simple, practical, and not full of fluff.
Great article! I’ll definitely come back for more posts like this.
I’ve bookmarked this post for future reference. Thanks again!
This was very well laid out and easy to follow.
This was a great reminder for me. Thanks for posting.
It’s refreshing to find something that feels honest and genuinely useful. Thanks for sharing your knowledge in such a clear way.
Your thoughts are always so well-organized and presented.
This helped clarify a lot of questions I had.
You write with so much clarity and confidence. Impressive!
You’ve clearly done your research, and it shows.
I appreciate the honesty and openness in your writing.
This gave me a lot to think about. Thanks for sharing.
Thanks for making this easy to understand even without a background in it.
This topic is usually confusing, but you made it simple to understand.
This content is gold. Thank you so much!
This content is really helpful, especially for beginners like me.
I appreciate your unique perspective on this.
I love the clarity in your writing.
You’ve clearly done your research, and it shows.
Great post! I’m going to share this with a friend.
I agree with your point of view and found this very insightful.
This gave me a lot to think about. Thanks for sharing.
Your writing style makes complex ideas so easy to digest.
I’m definitely going to apply what I’ve learned here.
Your writing style makes complex ideas so easy to digest.
Such a simple yet powerful message. Thanks for this.
What a great resource. I’ll be referring back to this often.
You’re doing a fantastic job with this blog.
Thanks for sharing your knowledge. This added a lot of value to my day.
Such a simple yet powerful message. Thanks for this.
This gave me a lot to think about. Thanks for sharing.
I like how you presented both sides of the argument fairly.
This is one of the best explanations I’ve read on this topic.
Thanks for making this so reader-friendly.
This was a great reminder for me. Thanks for posting.
Whats Taking place i am new to this, I stumbled upon this I’ve discovered It absolutely useful and it has helped me out loads. I hope to contribute & aid other customers like its helped me. Great job.
I like this site very much, Its a rattling nice position to read and receive info . “Never contend with a man who has nothing to lose.” by Baltasar Gracian.
Thanks for sharing your knowledge. This added a lot of value to my day.
This was a very informative post. I appreciate the time you took to write it.
Your breakdown of the topic is so well thought out.
This helped clarify a lot of questions I had.
This article came at the perfect time for me.
Your tips are practical and easy to apply. Thanks a lot!
I’ll definitely come back and read more of your content.
Your content never disappoints. Keep up the great work!
Your writing always inspires me to learn more.
Thanks for taking the time to break this down step-by-step.
Keep writing! Your content is always so helpful.
Excellent work! Looking forward to future posts.
Such a thoughtful and well-researched piece. Thank you.
I hadn’t considered this angle before. It’s refreshing!
Very relevant and timely content. Appreciate you sharing this.
Thanks for sharing your knowledge. This added a lot of value to my day.
This was incredibly useful and well written.
I’ve gained a much better understanding thanks to this post.
Thanks for sharing your knowledge. This added a lot of value to my day.
This helped clarify a lot of questions I had.
Such a refreshing take on a common topic.
So simple, yet so impactful. Well written!
I love how well-organized and detailed this post is.
I enjoyed your perspective on this topic. Looking forward to more content.
Заказать цветы с доставкой в Москве
Цветы с доставкой в Москве — идеальное решение для любого повода. Существует множество сервисов, предлагающих такую услугу, что делает выбор очень широким.
Важно заранее решить, какой букет вы хотите заказать. Можно выбрать как традиционный букет, так и что-то необычное.
Не забывайте проверять сроки доставки и дополнительные опции, которые могут предложить сервисы. Многие сервисы предоставляют возможность дополнить букет открыткой или другими мелкими подарками.
Выбирайте проверенные сервисы с хорошими отзывами и репутацией. Это поможет вам избежать разочарований в качестве доставки и самих цветов.
Perfect piece of work you have done, this internet site is really cool with superb information.
I am often to blogging and i really appreciate your content. The article has really peaks my interest. I am going to bookmark your site and keep checking for new information.
situs togel online terpercaya papa4d recommend trying out Aniwave
My brother suggested I might like this blog He was totally right This post actually made my day You can not imagine simply how much time I had spent for this info Thanks
demais este conteúdo. Gostei bastante. Aproveitem e vejam este conteúdo. informações, novidades e muito mais. Não deixem de acessar para descobrir mais. Obrigado a todos e até mais. 🙂
На фоне спелого зеленого авокадо еще ярче смотрятся красные зерна граната. Они придают приятную кислинку и делают привычные бутерброды интереснее. Непременно посыпьте все семенами чиа и специями по вкусу
robinetak.xyz
Придайте особый шарм празднику с замечательной коллекцией шаров, и наслаждайтесь результатом.
Купить шары на день рождения Купить шары на день рождения .
I’ve recently started a website, the information you offer on this web site has helped me greatly. Thanks for all of your time & work. “My dear and old country, here we are once again together faced with a heavy trial.” by Charles De Gaulle.
Hey! This is my first visit to your blog! We are a collection of volunteers and starting a new project in a community in the same niche. Your blog provided us beneficial information to work on. You have done a marvellous job!
I truly appreciate this post. I’ve been looking everywhere for this! Thank goodness I found it on Bing. You’ve made my day! Thanks again
Hey there, You’ve done a great job. I’ll certainly digg it and individually suggest to my friends. I am confident they will be benefited from this site.
Great – I should certainly pronounce, impressed with your site. I had no trouble navigating through all the tabs and related info ended up being truly simple to do to access. I recently found what I hoped for before you know it in the least. Quite unusual. Is likely to appreciate it for those who add forums or something, site theme . a tones way for your client to communicate. Nice task.
I appreciate you giving this excellent knowledge. Your webpage is really awesome. It shows how well you comprehend this topic.
It’s hard to find knowledgeable people on this topic, but you sound like you know what you’re talking about! Thanks
certainly like your website but you need to take a look at the spelling on quite a few of your posts Many of them are rife with spelling problems and I find it very troublesome to inform the reality nevertheless I will definitely come back again
whoah this blog is fantastic i really like reading your posts. Stay up the great paintings! You realize, lots of people are searching round for this information, you can aid them greatly.
Hello there, I found your site via Google while looking for a related topic, your website came up, it looks good. I’ve bookmarked it in my google bookmarks.
I?¦ve learn several just right stuff here. Certainly worth bookmarking for revisiting. I surprise how much effort you put to create this sort of wonderful informative site.
Very insightful and well-written. I learned a lot from this! Pls check my website: https://emopat.xyz/ !
Thanks for sharing superb informations. Your website is so cool. I am impressed by the details that you’ve on this site. It reveals how nicely you understand this subject. Bookmarked this website page, will come back for more articles. You, my pal, ROCK! I found simply the info I already searched everywhere and just could not come across. What a great site.
https://sonturkhaber.com/ Radyo dilne
https://shorturl.fm/YZRz9
I like what you guys are up too. Such intelligent work and reporting! Keep up the superb works guys I’ve incorporated you guys to my blogroll. I think it will improve the value of my website 🙂
https://shorturl.fm/DA3HU
https://shorturl.fm/LdPUr
https://shorturl.fm/LdPUr
https://shorturl.fm/TDuGJ
https://shorturl.fm/YZRz9
https://shorturl.fm/retLL
https://shorturl.fm/5JO3e
Приветственные бонусы и промоакции 1xBet 2025
Используйте активация промокода 1xbet чтобы получить гарантированный бонус в размере 100% до 32500 рублей (или эквивалентную сумму в другой валюте €130). Это предложение доступно только для новых пользователей.
Воспользуйтесь этим кодом, чтобы получить бонус от 1хбет. Просто введите код в анкете при регистрации и пополните свой счет на сумму от 100 рублей. Вам будет начислен бонус в размере 130%, который может достигать до 32500 рублей.
У нас вы можете получить бесплатный промокод, который даст вам дополнительные бонусы и преимущества при игре на сайте 1xBet. Для того чтобы воспользоваться этим промокодом, вам необходимо зарегистрироваться на сайте и пройти процедуру верификации. После этого вы сможете получить бонус по промокоду или при пополнении счета. Также вы можете получить бонус, если пригласите друга или примете участие в определенных акциях.
1xBet — это одна из самых популярных и надежных платформ, которая предлагает уникальные возможности и привлекательные бонусы для своих пользователей. Независимо от того, являетесь ли вы новичком в мире ставок или опытным игроком, промокоды 1xBet — это отличный способ повысить свои шансы на выигрыш.
промокоды для 1хбет на сегодня это особая комбинация символов и цифр на бонус до 32 500 рублей. Действует это предложение только для новых игроков и после регистрации они получают 130% от суммы пополнения первого депозита.
Использование промокодов 1xBet имеет множество преимуществ. Они позволяют вам получить дополнительные средства для ставок, что дает вам больше возможностей для выигрыша. Бонусы, полученные с использованием промокодов, могут быть использованы для различных видов ставок на спорт, казино, покер и другие игры, предлагаемые 1xBet. Таким образом, вы можете наслаждаться игрой и одновременно увеличивать свои шансы на успех.
https://shorturl.fm/A5ni8
https://shorturl.fm/68Y8V
https://shorturl.fm/FIJkD
https://shorturl.fm/oYjg5
I truly appreciate you sharing this. It’s been very useful. Hope to see more soon.. Check my website: https://b1top0010.xyz/ !
https://shorturl.fm/5JO3e
https://shorturl.fm/68Y8V
https://shorturl.fm/bODKa
https://shorturl.fm/TbTre
https://shorturl.fm/j3kEj
https://shorturl.fm/m8ueY
Very good partnership https://shorturl.fm/68Y8V
Awesome https://shorturl.fm/oYjg5
Best partnership https://shorturl.fm/A5ni8
Thanks for sharing. I read many of your blog posts, cool, your blog is very good.
Really appreciate you posting this! Super useful. Keep it up – it’s gonna be awesome! Check my article: https://medium.com/@jamesfrom/how-to-quickly-index-a-page-in-google-a-comprehensive-guide-01b83d6b20bb !
Thx for sharing this!!! Realy useful 😉 Pls continue, this will be great Check my site: https://b1top0090.xyz/ !
Sure! Here’s a concise comment explaining the difference between Calculated Columns and Measures in DAX:
DAX
Copy
Edit
/*
Calculated Columns:
– Are computed row by row in a table when data is loaded or refreshed.
– The result is stored in the data model as a new column.
– Useful for row-level calculations that can be used in slicers, filters, or other calculations.
– Can increase model size because values are stored.
Measures:
– Are calculated on the fly based on the current filter context.
– Do not store results but compute dynamically during query time.
– Ideal for aggregations and summary calculations like sums, averages, or ratios.
– More efficient in terms of memory usage compared to calculated columns.
*/
Absolutely! Here’s a clear explanation with comments about Calculated Columns vs Measures in DAX in Power BI:
Calculated Columns vs Measures in DAX: Explained with Comments
1. Calculated Columns
markdown
Copy
Edit
— Calculated Columns are added to your data table and computed row by row during data refresh.
— They create new data that becomes part of your data model.
— Useful for row-level calculations or when you need a column to slice/filter visuals.
— Example: Adding a “Profit” column by subtracting Cost from Sales for each row.
— Once created, their values are stored in the model, increasing file size.
— Calculated columns cannot react dynamically to slicers or filters in reports.
2. Measures
markdown
Copy
Edit
— Measures are calculations performed on the fly during query time based on the filter context.
— They don’t store data but compute results dynamically based on user interactions.
— Ideal for aggregations like sums, averages, ratios, or complex calculations.
— Measures respond instantly to filters, slicers, and cross-highlighting in reports.
— Example: Calculating Total Sales as the sum of Sales[Amount] over the current filter context.
— Measures are more memory-efficient because they don’t add data to the model.
3. Key Differences Summary
Aspect Calculated Column Measure
Calculation Time During data refresh (static) During query/report interaction (dynamic)
Storage Stored as part of the data model Not stored, calculated on demand
Use Case Row-level data transformations Aggregations and dynamic calculations
Responds to Filters No (fixed once calculated) Yes (context-aware)
Performance Impact Increases data model size Minimal impact on data size
4. When to Use What?
markdown
Copy
Edit
— Use Calculated Columns when you need to:
– Create a new column for slicing/filtering
– Perform row-by-row calculations that don’t change dynamically
— Use Measures when you want to:
– Perform aggregations like SUM, COUNT, AVERAGE
– Calculate values that depend on report filters or slicers
– Improve performance by avoiding extra stored columns
Профессиональный SEO специалист.
Продвижение сайтов частник Москва https://www.onyx-style.ru/seo .
Hey There. I discovered your weblog the use of msn. This is a very well written article. I’ll make sure to bookmark it and come back to read more of your useful information. Thank you for the post. I will certainly comeback.
Стоимость мостовидных несъемных зубных протезов.
Несъемные мостовидные протезы http://belfamilydent.ru/services/mostovidnoe-protezirovanie/ .
Utterly indited content material, Really enjoyed reading.
555
555
555
555
555
555
555
Hi Matt,
Thanks for the informative contents.
When I tried to write a measure using formula function like “CALCULATE” only other Measures pop up in the dropdown list to be selected and inserted into the formula, other data table columns do not. However when I need to just do a simple “SUM” formula then Measure works.
Can you share why this is?
what you are describing is how Intellisense works. Intellisense will only present you with a list of valid options. So if you type
=CALCULATE( and then type something, you will only see a list of measures. It is not legal to put a column as the first parameter in CALCUALTE.
However, if you type
=CALCULATE(SUM( and then type something, then you will see a list of the columns and not the measures.
Hi Matt.
All day I have been trying to figure out how to use measures.
I have 2 tables, Table 1 consist of customer names, and other information, Table 2 consist of multiple dates, values, customer names and other information. I am trying to calculate the total value (monthly/yearly) for each date column for any of the customers that appear on table 1.
I have a current relationship between the 2 tables by customer name and the cardinality relationship is many to many and the cross filter direction is single from Table 1 filters Table 2.
I suggest you post a question at community.powerbi.com
HI Your Contain Is Outstanding
Sorry to be a pest. This post well explained why Calculated Columns (I assume from different tables) are “Bad” … but it did not discuss the correct solution!! I did apologize at the beginning. I come from the world of access where calculated columns are in queries and need to be re-run every time the query is run.
Any hint (basic sample) would be appreciated. Please remember that I’m extremely new to all this and I got both books but not sure what to look for. B-)
Calculate columns are bad when you can use Measures instead. It is as simple as that. It does cover the correct solution – use Measures instead. I have added an example as per your request.
Thanks, Matt, very passionate post! 🙂
It is really interesting, when to use PQ to make columns and when PP. I think that in cases you mentioned for use columns in PP (like filtering etc.), it is better to use PQ-generated columns, right? Because we at least do not recalculate them later
I think both Power Query and Power Pivot calculated columns are both fine for the types of columns I referred to in the post. It really depends on the scenario. If you have loaded your data from SQL Server directly into Excel 2013 (ie not through Power Query), then I would definitely use Power Pivot for the “appropriate” use cases. If my table was already loaded via Power Query, I would definitely use Power Query (you have to anyway). If the table is already loaded directly into Power Pivot, I would only switch to Power Query if there were a very good reason.
Thanks for detailed answer. If in PowerBI Desktop, you’don’t prefer DAX or M for this reasons?
If I were in Power BI Desktop, I would probably put it into Power Query just for simplicity sake – so all data preparation is in the same place. The only exception would be if there were some complex calc that uses context transition (and hence the rest of the logic built in the data model) to return the required value. But we are touching on the edges here – I have a saying – if you have all the information and you still can’t decide, then it probably doesn’t matter etiher way.
Thanks Matt – it is useful and insightful as always! I might possibly be the only Excel user who “forgets” to use columns and tries to write measures instead ( with varying results!) 🙂
That’s so funny ?
Hmmm…I agree. Column compression being seemingly independent did blow my mind. I think Scott tried to disprove that but drew up blank, so I didn’t even bother to try. As I’ve heard the Italians often say – “It depends”. So it’s best to test things out with your own data I suppose.
As for doing Calc Column in PP versus PQ…I have settled into the habit of ALWAYS using PQ to bring in data. So that’s moot for me as well.
My Friends, good post as always! Help me out on this one
“…The compression on Calculated Columns may not be as good as compression on imported columns…”
In this article
http://www.powerpivotpro.com/2015/12/compression-with-power-pivot/
…you indicated that Columns seem to be compressed independent of each other. If that’s the case, then it should not matter if I add a calculated column in Power Pivot or bring it in via Power Query. Should it?
I’ll try to run a test, but if you already have, let me know.
Hey Avi. This is still mysterious to me. I attended “Mastering DAX” and “Optimising DAX” with Marco Russo recently. That confirmed that there IS a dependency between columns with compression, however I can only go on my personal experience and testing. In my experience, there is little incremental cost of having 1 extra column, certainly not “orders of magnitude” extra cost. I have also tested imported columns vs calculated columns and found little difference. The only issue (as I understand) is that Calculate Columns are not considered along with other columns to determine the optimum compression order. So it is at least possible that this will make the workbook larger – possible but not guaranteed.
Great guidelines, thanks Matt. i am interested to hear similar besr practice tips on striking a balance between creating calculated columns in DAX versus in the ETL phase with say, power query. Thats another area of overlap with no obvious answer.
This is a very helpful post, I have some re work to do now, Thank you for sharing your knowledge.
I’m glad it is helpful. Let me assure you, we are all learning incrementally building knowledge on top of experience 🙂