This is a masterful video. I can't imagine how much work, time, and intentionality went into getting this exact scenario to showcase all the ins-and-outs of the solution. Absolutely excellent in every way, and I cannot thank you enough!
I enjoyed a lot more DAX concepts and problem solving techniques and tools in one video. Can you please do these kind of video series regularly. Thank you so much Albero Ferrari. I am big fan of you.
Love how Alberto teaches: Example > Problem > Theory explaining the problem > Solution > Theory explaining the solution. This way you'll remember why you are doing what you are doing and HOW to solve issues.
That explanation of how to use the measure vs calculation between column aggregation vs row by row iteration was superb! I have a much better understanding why I had so many issues before because I didn't quite understand that concepts. Thank you!!
No idea what to say Alberto. Im really happy to learn from you. One of the best videos. End to End and easy to understand. A pleasure as always! Mille grazieeeeee. Greetings from Germany!
WOW. you guys are real gurus of DAX. I thought 1 hr is long video, but it just went by . so immersive content. understanding everything that is shown in the video and anticipating what comes next made me feel very confident that i am not a novice . Aiming towards GURU :)
Your videos really teach alot of useful techniques and examples of how to apply DAX. Would love to see more of such videos where you teach how to combine different DAX functions to prepare dashboard. The concept explanation is also very important and useful..
This video is an excellent introduction to the DAX language! The presenter does a fantastic job of breaking down the language into understandable concepts and walking through practical examples. I feel much more confident in using DAX after watching this.
This is an amazing video Alberto! one of the best in this field and especially for those who are in the learning phase of this amazing language. Please make more of this kind! Enjoy DAX indeed!
Thanks for this clearly explained approach ., and ..............." you proof your point!" (about learning theory first and NOT to go for "Trail on error" )
Alberto! Thank you so much for this lovely video. I enjoyed every moment and I love the way you deliver information. The line of thought is well presented and takes the audience step by step into the world of DAX in the best way ever. Thank you so much!
Very good full example video! It's longer than normal, but I like the idea of having a solution you need to build for, how to do it, and issues that may arise. Love your content.
great video ! the way of explaining how complex results can be achieved with using simple chunks of dax is awesome! little by little and little became a lot
I followed the free Introducing DAX training offered by SQLBI and I like it very much, but I've to be honest, is because of this video here that I'm very inclined to subscribe to the Mastering DAX training course. I like the approach, that there is not a function for everything but most of the time you've to create it your own one. If Alberto can pls confirm me that Mastering DAX is following the same philosophy, very likely you'll have a new subscriber. Grazie molte
Amazing video ! i am new to Power BI but i really love it and this example (which i replicated by myself) explains very well how DAX works; it will be long bu i will go trough all of the video as i want Power BI to be my next main tool for my next job
This kind of foundational concept walk-thru is incredibly helpful! THANK YOU for not glossing over it. Regarding your use-case at minutes 30 - 32 "Ship Date relying on unique Order #". 1. When determining uniqueness of [Order Number], why not just highlight 'Test'[Order Number] and see that the Count = Distinct Values, rather than bouncing back-n-forth between the Sales counts and Test counts? 2. Side note: I don't agree with your assumption that [Order Number] must be unique for your results to be valid. Partial Shipments are commonplace in nearly every sales shipping enterprise. I believe that if an order were split between 5 shipments, then you'd have to ask the user if that should be treated as 5 orders, or 1 order that aggregates [Date Shipped] as "MAX", "MIN", or "AVERAGE" for that order. After all, just because your small test-case sample doesn't contain duplicates, that assumption can fall apart when you step into Production where there are millions of orders.
Nice to see your long video presentation. Did use dataset from Contoso 10M from Github. There was subtle differences between the data. 1. Sales order table was header table (i.e 1 order per row). 2. When #Orders/#All orders the number of decimal places was not identical to your presentation. This resulted in 100% appearing multiple times. I will work on it. 3. I liked your explanation of creating the table with curly braces and use it for calculation. I had come across similar exercise where shipment (processing time to be calculated was ranging from 15 min, 30 Min, 1 hour, 2 hour, 4 hour, 1 day, 2 day, > 3 days). I had built a customized table, rather than using curly braces table. Also in this exercise i added a new column with concatenating values with number of days as < = 1days,
Thank you for this awesome video. I have a question regarding the SUMMARIZE table. What if the order number has a different order date and a different delivery date? Anyone has a DAX for that? Thank you in advance!
Really nicely explained, layer by layer. Just one question: for the conditional formatting measure, why did you remove ALL filters? Isn't that a bit dangerous? Or in other words, is there a way to find out which filters where actually active? Edit: aha :-) you even mention that at the end. However the second part of my question remains....
I've watched Mastering DAX twice and I've always learned something new. I still have many doubts about DAX and I still struggling to learn it, but when someone comes to me and ask me for some advice how to learn DAX, I always tell to study the theory first. In my opinion there are no shortcuts on learning DAX.
How do you make a slicer as default value, they are all text like A, B, C. How are horizonal arranged and I see many examples for dates as default but text slicers not any. Thanks for this video!
Great video as usual. I have one doubt, for#All orders you used REMOVEFILTERS( sales[delivery days]). Why can't we use REMOVEFILTERS(Sales) only the table name andwhy is it giving different result. It is confusing...
Because REMOVEFILTERS ( Sales ) remove the filters from the expanded table. Check these: www.sqlbi.com/articles/expanded-tables-in-dax/ www.sqlbi.com/tv/expanded-table-the-whiteboard-04/
what to do if we wan order days dynamic as you have created calculated table with manual number of order days... if we have more than 15 delivery days.
Hi Alberto, your video is indeed inspirational, but also very puzzleing. For instance, when you use the SUMMARIZE function you create a new transient table, but this table does not have any relationship with Store anymore. Why does your filter of online store still work? I created the table and saw there is no relationship: Mini-Sales = SUMMARIZE(Sales,Sales[Order Number],Sales[Order Date],Sales[Delivery Date]) Second, when you use the filter expression, in CALCULATE (AVERAGEX (Sales, Sales[Delivery Date] - Sales[Order Date]), Store[Name]= "Online Store") you get the 2.95 avererage for online. Why do I get 23,649 if I use a real FILTER function instead? CALCULATE (AVERAGEX (Sales, Sales[Delivery Date] - Sales[Order Date]), FILTER(Store, Store[Name]= "Online Store") ) It seems I have 8005 orderlines for online and apply the 2.95 to every orderline. But why? I thought FILTER is always used internally when you have a filter expression.
and another puzzle: why is your formula for PCD x Days working with the VAR of xDays, but it fails if I use the SELECTEDVALUE directly in the filter condition?
I'm a bit confused about the Filter and Calculate functions. So they both produce the same results right? Just in different ways if that's how I should look at these 2 functions. BTW great content. I learned a lot
There are few column Order Date is 30 th Nov 2018 and delivery date is 12 jan 2018.....which causes negative values in delivery days..In real life scenario what is the significance of this?
IMPORTANT!!!! At 1:01:22 you have mentioned to use removefilters(sales) to remove all the filters those are related to sales table to obtain the grandtotal of 14.95%. But If all the filters associated with sales are removed then the Store[Name] = "Online Store" should also be removed and that is not happening. This is really bugging me and hard to understand. Can someone please explain this.
Look at the order of evaluation of CALCULATE dax.guide/calculate The REMOVEFILTERS has precedence over the filters specified in the same CALCULATE regardless of the parameters order.