CALCULATE in DAX #09: VALUES vs. KEEPFILTERS

Sdílet
Vložit
  • čas přidán 4. 11. 2020
  • Learn the difference between using VALUES and KEEPFILTERS in CALCULATE.
    How to learn DAX: www.sqlbi.com/guides/dax/?aff=yt
    The definitive guide to DAX: www.sqlbi.com/books/the-defin...
    CALCULATE function: dax.guide/calculate/?aff=yt
  • Věda a technologie

Komentáře • 77

  • @dawnkernen3961
    @dawnkernen3961 Před 3 lety +28

    Four days of my life gone. 4 minutes with Alberto - solved. Thank you!

    • @ikar2k
      @ikar2k Před rokem

      You're happy man. I've lost four years to catch how it's works 😅 DAX is enjoying))

  • @tangtom2478
    @tangtom2478 Před 3 lety +7

    This is so advanced, I never figured out how to use values, now finally understand a bit! Thank you!

  • @Jam-Ryu88
    @Jam-Ryu88 Před 3 lety +5

    3 days i've been stuck! you're a genius, thank you!

  • @aburnett04
    @aburnett04 Před 3 lety +3

    Values has been one of the more challenging DAX functions to understand. Thanks for explaining it !!

  • @MrSammy1188
    @MrSammy1188 Před 3 lety +2

    Legend, got stuck with this issue today, luckily remembered this video

  • @danielsiffredi8403
    @danielsiffredi8403 Před 3 lety +3

    That was ... simply put AWESOME! - I personally was wondering how to do something like that , and quite struggled to grasp filters precedence (if any). This is something I'll be implementing on my calculations for sure. Thanks for these great videos.

  • @Kmsbi
    @Kmsbi Před 3 lety +2

    You are awesome Alberto. Thanks for sharing wonderful knowledge.

  • @jaikumardaiya4503
    @jaikumardaiya4503 Před 3 lety +1

    You are the real boss of DAX

  • @aspacsa1
    @aspacsa1 Před 3 lety +1

    Excellent and simple explanation!!!!

  • @user-sb5vf7qq1e
    @user-sb5vf7qq1e Před 3 lety +1

    Thank you so much for the videos. Informative, easy to understand. Big big fan from China !

  • @leonardobrondani924
    @leonardobrondani924 Před 3 lety +1

    Excelente Video Alberto; de esta manera en segundo argumento de calculate "values" actúa como argumento de filtro y "removefilters" actúa como un modificador de la estructura original del contexto de filtro. Saludos desde Argentina

  • @HugoVenturini
    @HugoVenturini Před 3 lety +1

    Bravo, Alberto!!!!!

  • @jameszhou162
    @jameszhou162 Před 3 lety +1

    Thank you so much Master Ferrari

  • @yeraldo05
    @yeraldo05 Před 3 lety +1

    Mind-blowing!!!

  • @user-wx3dn3il2f
    @user-wx3dn3il2f Před 3 lety +1

    this is very helpful for me to understand a applying values fuction in calculate exactly,
    i have been always confused "Values".

  • @mrgreenteatime2987
    @mrgreenteatime2987 Před 3 lety +3

    I found dax to be very powerful, but also quite unintuitive language to grasp.
    Thank you for the video

  • @KR-good
    @KR-good Před 3 lety +1

    I love DAX so much.

  • @kebincui
    @kebincui Před 2 lety +1

    Thanks Alberto 👍👍🌹🌹

  • @Unbox747
    @Unbox747 Před 3 lety +1

    Thank you!

  • @mehdihammadi6145
    @mehdihammadi6145 Před 3 lety +2

    Great demonstration of combining removefilter and values

  • @arnaumartin6700
    @arnaumartin6700 Před 3 lety

    Hi! Amazing lecture! Unfortunately, I'm doing step-by-step your process but, even in the first step (once you remove filters) I get 100% for each row instead the % per the grand Total. Any idea, why this is hapenning? Thanks in advance!

  • @judeLondon
    @judeLondon Před 3 lety +1

    Cool stuff. Thanks for that Mr Russo. Did you create your 'Sales' home table from using the "Enter data" method (remove the dummy col). Or is there a better method these days ?

    • @feucht38
      @feucht38 Před 3 lety +2

      Mr Ferrari I believe :)

  • @deepakbhattacharya6363

    Very nice video. I am actually facing issue with removefilter. It was working just fine, after I close the file and reopen it is not working. It won't ignore the filter, it was working just fine in another file with the same dax. Any idea what could be causing it ?

  • @granand
    @granand Před 2 lety

    Sir, if i have to test this out, I understand this is Contasso table, so which tables do you use for these short videos please

  • @danjarupath
    @danjarupath Před 3 lety +1

    I love your vdo

  • @supersayan9888
    @supersayan9888 Před 3 lety

    Hi Alberto,
    Amazing video! This is advance stuff, but I am learning.
    if you dont add Values(date[year]), you can see that the total is 100 procent. This is not correct because adding all the percentages would not lead to 100 procent. How would you tackle this if you want to show the correct total percentage using remove filters only.

  • @hillarymushi2227
    @hillarymushi2227 Před 3 měsíci

    Please help me understand. If the filters over the date column have been removed why is the sales displaying individual percentages for each row in the matrix visual? Please anyone

  • @szpyrkowski
    @szpyrkowski Před 2 lety +1

    Alberto, I think I'm in love.. wtih DAX

  • @elrevesyelderecho
    @elrevesyelderecho Před 3 lety

    Thanks.
    So, if I want to have correct percentage within each Q - 2007, should I include another line with VALUES ( 'Date' [Quater] )?

    • @SQLBI
      @SQLBI  Před 3 lety +2

      It would be ideal to use VALUES ( 'Date'[YearQuarter] ) like in the demo, if you have a column with just Q1/Q2/Q3/Q4, you don't have a difference between different years and including both VALUES (one for year, one for quarter) might include wrong combinations in complex reports.

  • @LSiebra
    @LSiebra Před 6 měsíci

    Why when you use "RemoveFilters" and in the row context has the Quarter-Year, why all the numberrs aren't the same? Which filter is being applied?

  • @QasimAli-gy3nb
    @QasimAli-gy3nb Před 11 měsíci

    Can you do a detailed video on this topic 4:23 Alberto, please

  • @souhasghaier7797
    @souhasghaier7797 Před 3 lety

    Thank you very much for this video! could you put a link to the report used in this video please ? Thanks.

    • @SQLBI
      @SQLBI  Před 3 lety +2

      This is the standard Contoso example we use in many other demos. Most of the articles on www.sqlbi.com use the same data.

  • @NaraMeerammaTrust
    @NaraMeerammaTrust Před 3 lety

    Excellent. Very good alternative approach. I think we can still get the expected result with the combination of all and keep filters. what do you think?

    • @SQLBI
      @SQLBI  Před 3 lety

      The goal of the video is to explain the semantic difference of the two approaches. However, if you include ALL, it remove the filters so KEEPFILTERS will not have any filter to keep. Check out the order of evaluation of CALCULATE arguments: dax.guide/calculate/

  • @robertocardenosa493
    @robertocardenosa493 Před 3 lety

    In that VALUES argument, could you type ('Date') instead of ('Date'[Year])? Would it work the same?

    • @SQLBI
      @SQLBI  Před 3 lety

      No, it would be a different meaning (more columns and a different cardinality)

  • @sass520
    @sass520 Před rokem

    Can someone help me to understand the value part?

  • @singhrakeshr
    @singhrakeshr Před 3 lety

    In a scenario when all the measures are non additive ( aggregation type = none) is there a way to override filter context of current date to be a date from previous quarter or year? But with all other existing filters applied?

    • @SQLBI
      @SQLBI  Před 3 lety

      Yes, read this article:
      www.sqlbi.com/articles/semi-additive-measures-in-dax/

    • @singhrakeshr
      @singhrakeshr Před 3 lety

      @@SQLBI thanks but my measure is non additive - a percentage field pre calculated and stored in datasource table. So aggregation type is none

    • @SQLBI
      @SQLBI  Před 3 lety

      The approach for overriding the Date column is the same. The difference for a non-additive measure is what you want to do toward other filters - but this is specific to the data model, cannot be described in a generic way.

  • @zxccxz164
    @zxccxz164 Před 5 měsíci

    how can year not be in filter context? If you have a calendar table q1-2007 would be in year 2007

  • @sravankumar1767
    @sravankumar1767 Před 3 lety

    i am not able to understand , why should we use values function here, when you add values function automatically percentage also changed, what is the importance of values function here. values function single column of unique values.

  • @krdhuri
    @krdhuri Před 3 lety

    hi I am using Direct Query mode for almost 1 billion rows , I want to apply filter on a column location here but when i create a measure i need to ignore filter. I have used ALL function like CALCULATE(SUM(Sales[Amount], ALL(Sales[Location])) but it is taking 30-40 seconds. Is there any way i can optimize this DAX?

    • @SQLBI
      @SQLBI  Před 3 lety

      You should look at the SQL query generated - can it be optimized? If yes, you have to figure out whether there is a DAX syntax that can generate a better query plan. If not, you have to optimize SQL. Or just import the data - there are models with a larger amount of rows imported.

    • @krdhuri
      @krdhuri Před 3 lety

      @@SQLBI can you please suggest any optimized dax for this?

    • @SQLBI
      @SQLBI  Před 3 lety +1

      No - read the previous answer - thanks!

  • @Bharath_PBI
    @Bharath_PBI Před 3 lety

    Yes Agree. Thank you.
    Is there any DAX function that compare two tables?
    Scenario:
    Var tbl1 = calculate table( previous month filter applied)
    Var tbl1 = calculate table (current month filter applied)
    Goal is to compare the change in active status and other parameters from previous month to current month. Any suggestion?

    • @SQLBI
      @SQLBI  Před 3 lety

      It depends on many detail - you could use NATURALINNERJOIN or similar functions, and perform the comparison - but you have to carefully manage the data lineage so if you are not comfortable with these concepts, you should rely on easier approaches such as using FILTER functions iterating the table to compare.

    • @Bharath_PBI
      @Bharath_PBI Před 3 lety

      @@SQLBI , yes I will try with natural inner join. I had used it in different scenario, during then it worked perfectly , wasn't sure for this scenario as I had join criteria on more than one column.
      Enjoying DAX with SQLBI. 👍

  • @1yyymmmddd
    @1yyymmmddd Před 3 lety

    Great video. If we were not using REMOVEFILTERS would CALCULATE respect Month - Year filter in the table before calculating sum of sales ?

    • @SQLBI
      @SQLBI  Před 3 lety +1

      If you apply a filter over Date[Date] *AND* the Date table is marked as a Date table, a REMOVEFILTERS ( Date ) is applied automatically, otherwise you have to manually remove the filters from the Date columns where you have a filter, if you want to do that.

    • @1yyymmmddd
      @1yyymmmddd Před 3 lety

      @@SQLBI Thanks!

  • @user-yv2fw3cb8p
    @user-yv2fw3cb8p Před 3 lety

    dear teacher , is it like allexcept ?

    • @SQLBI
      @SQLBI  Před 3 lety

      No, there is a difference explained here: www.sqlbi.com/articles/using-allexcept-versus-all-and-values/

  • @noahhadro8213
    @noahhadro8213 Před 3 lety

    could I use "ALL" instead of "Remove filters".... what is the difference?

    • @SQLBI
      @SQLBI  Před 3 lety +1

      no differences, REMOVEFILTERS is more clear when used as a CALCULATE modifier whereas ALL can be used also a table function.

  • @juanpablorvvv
    @juanpablorvvv Před 7 měsíci

    Why VALUES instead of CALENDAR[Year]=MAX(CALENDAR[Year])?

  • @NL-tq1yr
    @NL-tq1yr Před 2 lety

    Yeah... wouldn't allexcept(dates, year) as a filter get you the same result? Or maybe filter(all(dates), Dates[year] = Max (dates[year]))? I usually go for these solutions.

    • @SQLBI
      @SQLBI  Před 2 lety

      Read this article: www.sqlbi.com/articles/using-allexcept-versus-all-and-values/

  • @oybekdavronov5638
    @oybekdavronov5638 Před 3 lety +1

    i think allexcept gives the same result as it is , good to know

    • @wojtekmzks
      @wojtekmzks Před 3 lety

      Yes, but allexcept will not work when you use Date Hierarchy in a table visual. When you use 2 separated columns like Year, Month it works, but with hierarchy it calculates for all time. The one with values works in both cases.

  • @salmanj786
    @salmanj786 Před rokem

    Could we have replaced VALUES with DISTINCT here?
    Can we always use DISTINCT and never use VALUES?

    • @SQLBI
      @SQLBI  Před rokem

      It depends, they are not the same. See www.sqlbi.com/articles/blank-row-in-dax/

  • @stephanweaver1960
    @stephanweaver1960 Před 3 lety +1

    I would explain it very very differently myself - but thanks.

  • @sayananalytics3445
    @sayananalytics3445 Před 3 lety

    It is really disgusting to see 3 dislikes..Just want to see their faces..

  • @sid5201
    @sid5201 Před 3 lety

    ALLEXCEPT

  • @danjarupath
    @danjarupath Před 3 lety +1

    Ciao

  • @Wzxxx
    @Wzxxx Před rokem +1

    I never meet tool which is so counterintitiive and complex to get simple results. Every basic and simple math calculations takes hours to figure out a solution. I really hate dax.
    Values gives a unique years table so how can data be filtered by all years if all are present?

    • @SQLBI
      @SQLBI  Před rokem

      You can use the ALL function, see this article: www.sqlbi.com/articles/using-allexcept-versus-all-and-values/
      In general (because you said you don't like DAX), read this: qr.ae/pvfjDc
      You also may want to watch this: www.sqlbi.com/tv/dax-by-examples/

  • @MentalCycle
    @MentalCycle Před 2 lety

    Putting KEEPFILTERS into the name and not even mentioning it in the video 👎

    • @SQLBI
      @SQLBI  Před 2 lety +2

      KEEPFILTERS is mentioned in the video, the syntax is not shown because it wouldn't be helpful for the purpose of the calculation. The video explains how to use VALUES instead of KEEPFILTERS assuming you already know how to use KEEPFILTERS. You can see a video specific for KEEPFILTERS here: czcams.com/video/Cj6rI0fRCaQ/video.html