Bidirectional relationships and ambiguity

Поделиться
HTML-код
  • Опубликовано: 9 июл 2024
  • Learn how to avoid ambiguity caused by bidirectional relationships in a Tabular model with Power BI or Analysis Services.
    Article and download: sql.bi/75696?aff=yt
    How to learn DAX: www.sqlbi.com/guides/dax/?aff=yt
    The definitive guide to DAX: www.sqlbi.com/books/the-defin...
  • НаукаНаука

Комментарии • 179

  • @atanasprodatanasov9233
    @atanasprodatanasov9233 2 года назад +8

    Brutal! I spent 4 sleepless nights because of that... thank you so much!

  • @teunkruijer
    @teunkruijer 3 года назад +51

    I can't even begin to describe how happy I am that i found this video. I was about to redesign my whole model to only use one fact table, and all I had to do to get the filters to sync was add a measure. Thank you so much! Great video.

    • @karannchew2534
      @karannchew2534 Год назад

      Hi, Would you mind sharing more please? What type of measure did you create to get the filters to sync please?

  • @vithaitang6492
    @vithaitang6492 2 года назад +3

    Thank you Mr. Ferrari, I love the way you raise the problem, analyze it and give the solution. Very clear and useful!

  • @rick_.
    @rick_. 3 года назад +7

    "Welcome to Hell!" I was laughing so much that I had to pause the video to put in this comment! I think the real key to understand why adding the filter to the slicer works is that a slicer is just another visual. All the usual cross-visual filtering rules apply. It's one of those things that is obvious if you think about it at all, but it is easy to fall into the trap of thinking a slicer is just a different way to show a filter. I did.

  • @huseyinburaktasci1638
    @huseyinburaktasci1638 7 месяцев назад +2

    I noticed the name of the final tab called "Welcome to hell" :D
    Clearly explains the issue! Thanks for the content, very useful!

  • @hasnainhaider8191
    @hasnainhaider8191 3 года назад +15

    man wow, how beautifully he explains and all the tools he uses. a true master.

    • @harfshortshayari3340
      @harfshortshayari3340 2 года назад

      could you please help me in understanding why it worked after applying the visual filter?

  • @kevinlabore1726
    @kevinlabore1726 8 месяцев назад +1

    in Summation WOW -- the really explains why you should ALMOST never use bi-directional relationships for purposes of filtering and why you probably should ALMOST NEVER trust a model that does .. in the back of my mind I was trying to figure out how the ambiguity impact things -- great walk through THANK YOU

  • @Jackassik
    @Jackassik 3 года назад +5

    My company created a bunch of data models where every possible relationship is bi-directional before hiring me...
    I told them that I won't touch them and I won't take responsibility for the numbers they display and your video will be a very good example why you need people who knows how to build data models as it's not simply drag and drop.
    Thank you very much for a very informative and well presented video :)

  • @bactran7799
    @bactran7799 2 года назад +3

    While looking for a solution for my model that has a lot of bidirectional relationships, I meet Alberto with the amazing video and the answer for my big question. Thank you for your great works, I always appreciate your contribution to make DAX easier to use

  • @albinlabelle
    @albinlabelle 3 года назад +2

    Thank you for this clear explanation (love the handwritten arrows on top of the modeling view !). Aside from the ambiguity arising from the use of a bidirectional relationship (which I manage to keep away from), I discovered a neat way to show only relevant choices in slicers !

  • @Broadmoore
    @Broadmoore 3 года назад +2

    This is the best video I’ve ever seen on ambiguity and relationships. Thank you!

  • @florin-danielpop3183
    @florin-danielpop3183 3 года назад +4

    Really easy to understand, as always great job. Thank you SQLBI team for your amazing work.

  • @diederikvankolfschoten47
    @diederikvankolfschoten47 3 года назад +4

    This is a very neat trick to avoid ambiguity!! Thanks! SQLBI is on top of my top 5 resources!

  • @preethul1
    @preethul1 2 года назад +2

    Excellent. So well explained. I would have never understood the consequences of bidirectional if I didn't bump into this video. Thanks a lot.

  • @brianligat9493
    @brianligat9493 6 месяцев назад +1

    Just as I was looking at this, I found this video and it answered everything. Thanks Alberto.
    I think PBI should give a warning if it detects alternate fllter paths.
    If it would be difficult to explain such ambiguity to a non-technical person, then the design should be changed. The stakeholders/consumers will lose trust and confidence if something is happening that cannot be understood.

  • @dsfshshfhgsghs
    @dsfshshfhgsghs 2 года назад +3

    What a good teacher you are, Alberto! Fantastic explanation! Tante grazie!

  • @Bharath_PBI
    @Bharath_PBI 3 года назад +2

    Amazing explanation. Self service BI report developers MUST watch this video. I had to explain this to lot of people and now I can just guide them here 👍 Thank you.

  • @MichelMetran
    @MichelMetran 11 месяцев назад +1

    I discovered the channel today and... congratulations on such quality content! Learning a lot here!

  • @rafaelmiralha5995
    @rafaelmiralha5995 2 года назад +1

    Thank you very much for these videos Alberto and SQLBI! Learning a lot about DAX!

  • @Istion2991
    @Istion2991 2 года назад +1

    Amazing explanation. Fixed the problem I didn't even know how to frame a question around.

  • @rawalkarnikita2947
    @rawalkarnikita2947 6 месяцев назад +3

    Thank you so much Sir for posting this valuable video. I can't express my gratitude towards you that how much I was needed this video.
    Thank you again 😊

  • @fadwa2413
    @fadwa2413 2 года назад +1

    I LOVE YOU Alberto !!
    YOU ARE THE LEGEND

  • @Robay146
    @Robay146 2 года назад +2

    This is a classic lesson. Thank you! Big up!

  • @click-ue3kc
    @click-ue3kc 5 месяцев назад +1

    Awesome! I am working on a model and I am happy I found this.

  • @ExplorandoDatos
    @ExplorandoDatos 3 года назад +3

    Fantástico! Thank you MAESTRO!

  • @gborka
    @gborka 2 года назад +1

    Thank you a lot. Really happy to find this channel.

  • @JawadAli-nv9mr
    @JawadAli-nv9mr 3 года назад +2

    I always had issues with ambiguous models. and what I concluded from my report is to never use bi directional filter. I never knew what was the reason.
    now I got
    I must appreciate your efforts 👍👍

  • @tuliofernandopinillosalegr3799
    @tuliofernandopinillosalegr3799 2 года назад +2

    Excelente exposición!!! Eres lo máximo Alberto Ferrari.

  • @bluesage1528
    @bluesage1528 2 года назад +2

    Fantastic explanation and presentation! Thank you so much.

  • @monicaosetkowski1542
    @monicaosetkowski1542 3 года назад +1

    Mind blown! I need to try this. Thank you

  • @MahmoudSamir7oda
    @MahmoudSamir7oda 3 года назад +1

    Thank you Alberto i have been looking at that trick for weeks since i have similar business problem. Glad i came a croos the video. 🤗

  • @Hurairahgiri
    @Hurairahgiri 2 года назад +1

    Wow. I am taken aback by the explanation. Much love!

  • @AnhTuan-fv2kn
    @AnhTuan-fv2kn 2 года назад +1

    Thank you very much for these videos Alberto and SQLBI

  • @evalang4435
    @evalang4435 2 года назад +1

    Absolutely perfect, thank you so much for this video

  • @Nura853
    @Nura853 2 года назад +1

    Thank you for clear and precise explanation!

  • @joseaugustocarvalhofilho3506
    @joseaugustocarvalhofilho3506 4 месяца назад +1

    Excellent explanation! Congrats for such a great work!

  • @RACHIMSAJA
    @RACHIMSAJA 3 года назад +1

    Very insightful! Thanks for the knowledge master🙏

  • @ongkamsiong
    @ongkamsiong 2 месяца назад

    You provided much better insight about bidirectional filter than Microsoft documentation / training.

  •  3 года назад +1

    Love this one, a true best pratice that can change life and model design

  • @DanielADamico
    @DanielADamico 3 года назад +1

    Excellent Video as Always!!

  • @Zenith40450
    @Zenith40450 Год назад +2

    Really loved the tab you named "Welcome to Hell" 😀😀😀😀

  • @rachitgoyal521
    @rachitgoyal521 3 года назад +1

    Amazingly explained such a complex scenario.. Kudos!

  • @TrungNguyen-jy2bc
    @TrungNguyen-jy2bc 2 года назад +1

    Amazing sir! The solution is so elegant that I have to clap when I saw it!

  • @olgaitskova8542
    @olgaitskova8542 Год назад +1

    This is amazing, thank you so much for this video!

  • @djl8710
    @djl8710 3 года назад +1

    Excellent Video! Thanks!

  • @phoenixsandy74
    @phoenixsandy74 3 года назад +2

    Wow. This is so informative and useful.

  • @gpdoc4699
    @gpdoc4699 3 года назад +1

    Very well explained. Thanks Alberto.

  • @sukoi2113
    @sukoi2113 3 года назад +1

    Very nicely explained. Thank you so much.

  • @vijaynrao2499
    @vijaynrao2499 Год назад +1

    Great! Really really great examples and explanation!

  • @mau_lopez
    @mau_lopez 3 года назад +5

    Great video, very clear and well done, thanks Mr. Ferrari. I would just emphasise that that the problem presented doesn't come only from using the bidirectional relationship, but it comes form using the bidirectional relationship IN a loop, because in a purely star schema no ambiguity is created when using bidirectional relationships. This would be just to reinforce what is already a great explanation!

    • @SQLBI
      @SQLBI  3 года назад +4

      True - but you have to be sure you'll not add other fact tables to the same model sharing the same dimensions... in the future

  • @nishanthvarmas8568
    @nishanthvarmas8568 Год назад +1

    Oh my goodness, such a beautiful explanation. Wow Man!

  • @New2you09
    @New2you09 3 года назад +1

    Your videos are amazing.

  • @kashifhaque2085
    @kashifhaque2085 Год назад +1

    This is very helpful, thanks!

  • @marilenadonofrio9787
    @marilenadonofrio9787 3 года назад +1

    Grazie! Chiarissimo come sempre.

  • @MohamedHassan-fo3no
    @MohamedHassan-fo3no 5 месяцев назад +1

    Finally understood it right!!

  • @berkayozkan5509
    @berkayozkan5509 Год назад +1

    Very clear. Thanks!!

  • @dhiraj3933
    @dhiraj3933 Год назад +1

    This is a great! I need to try this next time I come across situation like this.

  • @RoORou
    @RoORou Год назад +1

    Great video, thanks!

  • @kennynguyennz
    @kennynguyennz 3 года назад +1

    It's really cool. Thanks for sharing.

  • @inerasmodellfornyttokalkyl1201
    @inerasmodellfornyttokalkyl1201 Год назад +1

    Fantastic video!

  • @shantanudeshmukh4390
    @shantanudeshmukh4390 3 года назад +1

    Such a nice explanation !!

  • @tomreborns5739
    @tomreborns5739 2 года назад +2

    Thanks you to make it so clear and easy ! without avoiding to dig in detail :)
    Make times fresher to me haha

  • @raitup00
    @raitup00 2 года назад +1

    Omg! Good problem, great explanation and excellent solution

  • @ivanovdmitry770
    @ivanovdmitry770 3 года назад +1

    Thank you for a great lesson

  • @sachin.tandon
    @sachin.tandon 3 года назад +2

    Very elegantly explained. Using the side Filter Pane would not have occured to me. I would have edited the Sales Measure by using CROSSFILTER. But I think the Filter Pane, does the job just as well!

    • @alessandrocadenelli5849
      @alessandrocadenelli5849 3 года назад +1

      yes, but you have to do anyway the 'trick of filter pane' if you want to "synchronize" the two slicers...so two birds with one stone..

  • @ovidlwwebsco
    @ovidlwwebsco 2 месяца назад +1

    awesome explanation, thank U

  • @wexwexexort
    @wexwexexort 2 года назад +1

    Great explanation. You just earned a new sub sir.

  • @future62
    @future62 2 года назад +1

    Thanks a ton for this

  • @RonaldPostelmans
    @RonaldPostelmans 3 года назад +1

    Nice explanation, i now finally understand ambiguity and now why i can not use bidrectional filters

  • @marliearcellia1289
    @marliearcellia1289 3 года назад +1

    well explained. Thank you.

  • @StephanOnisick
    @StephanOnisick 3 года назад +1

    Excellent Example of Crossfilter

  • @ahamedyasar4722
    @ahamedyasar4722 2 года назад +1

    wonderful explanation... thank you...😀

  • @27sreeni
    @27sreeni Год назад +2

    Really Really Superb explanation, I love your videos .. one request if any monthly enable SQLBI its really helpful to me

  • @lovebites4098
    @lovebites4098 4 месяца назад +1

    I was facing the same issue and was stuck trying to figure out how bidirectional works from the last 2 days. I tried to check if it works like sql joins but still the result was ambiguous showing a greater value than that in sql. Thanks a lot for making this content. For slicer u used 'is not blank' filter. but i have direct column from 2 unrelated table(not connected directly, although connected through other tables, but flow non-unidirectional) and that too numerical(sum of amount). But now i hope i will figure it out how is it working in my case. thanks a lot lot sir. its much much informative and helpful.

  • @bandaralqahtani4356
    @bandaralqahtani4356 2 года назад +1

    thank you so much for this incridable video :)

  • @CharudattaAmbekar
    @CharudattaAmbekar 3 года назад +1

    Thanks! This quick solution of visual filters is possible only in Power Bi. In Excel, we use 'Crossfilter' in the measure formula.

  • @oliveroshea5765
    @oliveroshea5765 3 года назад +1

    Alberto is the "data monster"!

  • @elakkiyaselavngovindasamy596
    @elakkiyaselavngovindasamy596 3 года назад +2

    Great stuff 👍

  • @ThePasserby76
    @ThePasserby76 3 года назад +2

    Hello Alberto. Have just found your channel. Awesome video. Just one request - pleaseeee do more examples on ambiguity. Really helps us the beginners.

  • @barishazar5908
    @barishazar5908 3 года назад +1

    Useful content, poetic explanation...Suberb teacher

  • @gabrielkn
    @gabrielkn 3 года назад +1

    Very, very well explained!
    *standing applause

  • @khaledtellopalacios3072
    @khaledtellopalacios3072 10 месяцев назад +1

    Great video

  • @ooooFISCHERoooo
    @ooooFISCHERoooo 3 года назад +12

    Cool. And yet so simple.
    Love the sheet name “Welcome to hell” 😂

  • @smithp3302
    @smithp3302 2 года назад +1

    Hello Alberto, thanks for putting this video together. Very helpful!
    I do have a question about the sales measure you used and the calculation it performs. Would you be able to share?

  • @danielhowe4460
    @danielhowe4460 2 месяца назад +1

    Thank you for providing this detailed video on ambiguous models. There isn't a lot of information out there, so this is very much appreciated.
    Though, I only see a problem if you have a model with two fact tables. If you keep things simple (single fact table, multiple dimension tables), there should be no opportunity for multiple paths, correct? Therefore the model wouldn't be ambiguous?

  • @kg1610
    @kg1610 3 года назад +1

    Thanks for explaining this, much appreciated.

    • @kg1610
      @kg1610 3 года назад

      Alberto, can you read this thread on the same topic. If you have any thoughts please comment.
      www.reddit.com/r/PowerBI/comments/kqsy0v/filter_direction/
      Thanks for all the insight you have been sharing.

    • @SQLBI
      @SQLBI  3 года назад +1

      You should avoid bidirectional filters in the model, use them in the measures only if possible.
      Best practices, workarounds, and explanations here:
      www.sqlbi.com/articles/syncing-slicers-in-power-bi/
      www.sqlbi.com/articles/bidirectional-relationships-and-ambiguity-in-dax/

  • @tameraziz2104
    @tameraziz2104 3 года назад +1

    Thanks for sharing...

  • @macilakertous8041
    @macilakertous8041 3 года назад +1

    Thank you Alberto 🇮🇹🇮🇹🇮🇹

  • @DanielTavares29
    @DanielTavares29 3 года назад +2

    Ciao, friends! Enjoy DAX! Thanks for sharing

  • @Mrglasshalfempty
    @Mrglasshalfempty 3 года назад +2

    Holy crap I never would have thought of that in a million years! Thanks!!

  • @goolamfareedbangie510
    @goolamfareedbangie510 Год назад +1

    This video is great but I'm not allowed to apply the measure on a visual if the visual is a card

  • @ajkrishna001
    @ajkrishna001 2 года назад +1

    Excellent very useful

  • @juanortega4963
    @juanortega4963 6 дней назад

    AMAZING! THANKS

  • @nikakalichava8012
    @nikakalichava8012 Год назад +1

    great! thanx!

  • @rashmiveena315
    @rashmiveena315 2 года назад

    thank you so much for this video. It was of great help. What if the "Color" is not in the slicer but in the visual and the user wants the visual filtered based on selection in "customer" slicer? how do i achieve that?

  • @dariuszspiewak5624
    @dariuszspiewak5624 3 года назад +1

    Hi Alberto. I think it would stand to reason to also mention that if someone uses USERELATIONSHIP and/or CROSSFILTER, they should always make sure that such a manipulation does not transforms the model into an ambiguous one.

  • @wasserslasken
    @wasserslasken Год назад +1

    Thank you for a great video. I'm a newbie and am a bit confused as to how the direction of filtering goes when you apply a filter on the visual in the end of the video. It seems the cross filter direction does not affect that, since a filter on sales has an effect on product.

  • @muhammadraza3290
    @muhammadraza3290 2 года назад +1

    Thanks a ton for the great explanation!! I tried it out and worked perfectly! However, if I want to influence from lets say the customer dimension, a measure in the products table, then this does not seem to work. Would you be so kind to help?

  • @OneNI83
    @OneNI83 9 месяцев назад

    Good video.Actually what happen in the behind when you add sales measure to the filters as not blank.Can you elaborate?

  • @Ronnet
    @Ronnet 3 месяца назад +2

    Would've liked to see the "welcome to hell" calculated metrics before and after removing the both directions relationship.