Ravindra BagaleCourses & study guides English Track your progress

Power BI मध्ये CALCULATE कसा वापरायचा: Slicer ignore करणारा एका State चा Revenue (Filter Context समजून घ्या)

Filter मध्ये Karnataka निवडा आणि page वरचा प्रत्येक visual Karnataka दाखवतो. सहसा हेच हवं असतं. पण कधी कधी एका card चं काम ठरलेलं असतं: "benchmark म्हणून नेहमी Maharashtra, आपलं सगळ्यात मोठं state, दाखव". हा chapter आधी page filter तुमच्या measures ला काय करतो (filter context) ते दाखवतो, मग CALCULATE, DAX मधला सगळ्यात महत्त्वाचा function, वापरून एका measure ला स्वतःचा state filter देतो. CALCULATE कोणते filters बदलतो, कोणते तसेच ठेवतो, आणि एका न दिसणाऱ्या space मुळे card (Blank) का होतो, हे पण बघाल.

या chapter मध्ये तुम्ही काय शिकाल

  • Filter context: page filter प्रत्येक visual पर्यंत पोचतो
  • CALCULATE(expression, filter)
  • State filter बदलला तरी Maharashtra ठेवणारा card
  • CALCULATE फक्त त्याच column वरचा filter बदलतो
  • इतर columns साठी REMOVEFILTERS
  • सुरुवातीच्या space मुळे (Blank); text matching case ignore करतं

Practice files: blinkit-sales-2025-metrics.csv (800 order lines) आणि blinkit-sales-2025-metrics-raw.csv (त्याच rows, Maharashtra च्या आधी space सकट).

काल्पनिक data: Blinkit सारखी काल्पनिक sales, फक्त practice साठी. Amounts ₹ मध्ये आणि dates DD-MM-YYYY.

1. Problem

Page वर state filter, total revenue card आणि category chart आहे. Manager ला दुसरा card हवा जो कुठलंही state निवडलं तरी नेहमी Maharashtra चा revenue दाखवेल, म्हणजे प्रत्येक state त्याच्याशी compare करता येईल.

2. सोप्या शब्दात idea

Filter context म्हणजे measure calculate होताना लागू असलेले filters: page filters, slicers, आणि visual मधली row किंवा bar. total revenue फक्त त्या filters मधून उरलेल्या rows ची बेरीज करतो.

CALCULATE calculate करण्याआधी हे filters बदलतो:

maharashtra revenue = CALCULATE([total revenue], sales[state] = "Maharashtra")

  • पहिला argument: expression, तुम्हाला काय दाखवायचं (total revenue, total sales, total orders).
  • मग एक किंवा अधिक filters.

sales[state] वरचा filter page कडून येणारा कुठलाही state filter, फक्त या measure साठी, बदलतो. इतर columns वरचे filters (category, date) लागू राहतात. Main course मधले Evaluation Context आणि CALCULATE – The Most Important Function हे lessons दोन्ही गोष्टी सविस्तर सांगतात.

Classroom line

As the filter changes, the revenue I see follows the filter.

3. Data

blinkit-sales-2025-metrics.csv मधला state नुसार revenue:

State Revenue (₹)
Maharashtra 44,763
Karnataka 40,101
Telangana 26,181
Gujarat 20,568
Tamil Nadu 16,608
Total 1,48,221

Category नुसार Maharashtra: Dairy & Bakery ₹13,497, Snacks & Branded Foods ₹13,070, Staples ₹10,690, Beverages ₹7,506.

4. Step by step

Filter context बघा

  1. File load करा (table sales) आणि नसेल तर total revenue = SUM(sales[revenue]) बनवा.
  2. total revenue चा Card add करा: 1,48,221. Stacked column chart add करा: X वर category, Y वर total revenue.
  3. Filters pane › state ला Filters on this page मध्ये drag करा. Karnataka tick करा: card 40,101 दाखवतो, आणि chart फक्त Karnataka च्या rows.
  4. Gujarat add करा: 60,669. Select all: परत 1,48,221.

एका measure ला स्वतःचा state filter द्या

  1. sales वरचे three dots › New measure: maharashtra revenue = CALCULATE([total revenue], sales[state] = "Maharashtra")
  2. maharashtra revenue चा दुसरा Card add करा: 44,763.
  3. Page filter Karnataka, मग Telangana, मग Gujarat + Tamil Nadu करा. total revenue प्रत्येक वेळी बदलतो; maharashtra revenue 44,763 च राहतो.

एक category, त्याच पद्धतीने

  1. dairy revenue = CALCULATE([total revenue], sales[category] = "Dairy & Bakery") filter नसताना 59,124 आणि Karnataka निवडल्यावर 17,048 दाखवतो: state filter लागू राहतो, कारण हा CALCULATE फक्त category set करतो.
Filters on this page: state = KarnatakaCard: total revenue = ₹40,101Column chart: प्रत्येक category साठी फक्त Karnataka rowsCard: maharashtra revenue = ₹44,763 (हलत नाही)चित्र (काल्पनिक data)

आकृती 1. Page filter card आणि chart पर्यंत पोचतो; CALCULATE card स्वतःचं state set करतो (illustration).

Classroom line

By default, the filter we use applies to every visual on this page.

Classroom line

The first argument is what you want to show: total revenue, total sales or total orders.

5. तुमचा result असा दिसायला हवा

total revenue₹40,101page filter (Karnataka) नुसारmaharashtra revenue₹44,763नेहमी Maharashtraचित्र (काल्पनिक data)

आकृती 2. Karnataka निवडल्यावर: total revenue ₹40,101, maharashtra revenue अजूनही ₹44,763 (illustration).

Page filter (state) total revenue maharashtra revenue
काही नाही ₹1,48,221 ₹44,763
Karnataka ₹40,101 ₹44,763
Karnataka + Gujarat ₹60,669 ₹44,763
Telangana ₹26,181 ₹44,763

6. काय झालं

  • total revenue page च्या filter context मध्ये calculate होतो, म्हणून तो state filter नुसार बदलतो.
  • maharashtra revenue साठी CALCULATE ने page चा state filter काढला आणि त्याच्या जागी state = Maharashtra ठेवलं.
  • Filter context मधलं बाकी काहीच बदललं नाही.

Classroom line

However much you change the filter, it won't move, because we told the measure that it sets its own state filter.

7. अजून explore करा

इतर columns लागू राहतात

दुसरा page filter, category = Dairy & Bakery, add करा आणि state = Karnataka ठेवा. maharashtra revenue आता 13,497 दाखवतो: CALCULATE ने state बदललं, पण category filter लागू राहिला.

Page filters: state = Karnataka, category = Dairy & BakeryCALCULATE state filter ला Maharashtra ने बदलतोCategory filter तसाच लागू राहतोResult: Maharashtra, Dairy & Bakery = ₹13,497चित्र (काल्पनिक data)

आकृती 3. CALCULATE फक्त state filter बदलतो; category filter राहतो (illustration).

Card ने category पण ignore करावी असं हवं असेल, तर तो filter पण काढा:

maharashtra revenue all = CALCULATE([total revenue], sales[state] = "Maharashtra", REMOVEFILTERS(sales[category]))

हा परत 44,763 दाखवतो. इथे ALL(sales[category]) पण तसंच काम करतो. बघा ALL, ALLEXCEPT, REMOVEFILTERS, ALLSELECTED.

Case ने फरक पडत नाही, spelling ने पडतो

DAX text comparison case-insensitive आहे: sales[state] = "maharashtra" पण 44,763 देतो. पण "Maharastra" (चुकीचं spelling) (Blank) देतो.

Space मुळे (Blank)

त्याऐवजी blinkit-sales-2025-metrics-raw.csv load करा आणि card (Blank) दाखवतो. State value " Maharashtra" आहे, सुरुवातीला space सकट, म्हणून "Maharashtra" कशाशीच match होत नाही. Source मध्येच fix करा: Transform data › text columns select करा › Transform › Format › Trim, मग Clean › Close & Apply. Card परत 44,763 दाखवतो.

Classroom line

Who is seeing a blank (dashes) on the card?

Classroom line

That is why we always need to trim and clean text columns.

8. नेहमीच्या चुका

चुकीचा result कारण उपाय
(Blank) Value मध्ये सुरुवातीला/शेवटी space Power Query मध्ये Trim आणि Clean
(Blank) Value चं spelling चुकलं Table मधून नेमकी value copy करा
(Blank) किंवा चुकीचा number Filter column sales शी related नसलेल्या table मध्ये sales मधला किंवा related table मधला column वापरा
Card अजून category नुसार हलतो CALCULATE ने फक्त state बदललं REMOVEFILTERS(sales[category]) add करा
CALCULATE मध्ये error Filter आधी लिहिला आधी expression, मग filters

Ravindra Bagale's Tip

CALCULATE card (Blank) दाखवत असेल, तर formula च्या आधी value check करा. Table view उघडा, column filter करा आणि नेमका text बघा. दहापैकी नऊ वेळा formula बरोबर असतो आणि data मध्ये जास्तीची space असते.

Classroom line

Do you know why it happened? The value doesn't match.

9. स्वतः practice करा

Practice task

blinkit-sales-2025-metrics.csv वापरून:

  1. karnataka orders = CALCULATE([total orders], sales[state] = "Karnataka") लिहा (total orders = DISTINCTCOUNT(sales[order_id])). तो काय दाखवतो?
  2. Page filter state = Telangana असताना total revenue आणि maharashtra revenue काय दाखवतात?
  3. Page filters state = Gujarat आणि category = Staples असताना maharashtra revenue काय दाखवतो?
  4. Staples category साठी staples revenue लिहा. Filters नसताना तो किती?
Solution दाखवा
  1. 124.
  2. ₹26,181 आणि ₹44,763.
  3. ₹10,690 (Maharashtra, Staples: category filter लागू राहतो).
  4. CALCULATE([total revenue], sales[category] = "Staples") = ₹30,290.

10. Professional सारखा विचार करा

  • Business दृष्टी. Benchmark cards (सगळ्यात मोठं state, मागचं वर्ष, target region) हे CALCULATE measures असतात.
  • काय बदलताय ते माहिती ठेवा. CALCULATE तुम्ही नाव दिलेल्या column वरचा filter बदलतो; बाकी filters चं काय करायचं ते मुद्दाम ठरवा.
  • आधी text साफ करा. Power Query मध्ये text columns Trim आणि Clean करा; (Blank) शोधण्याचे तास वाचतात.
  • स्पष्ट नाव. maharashtra revenue हे नाव viewers ना सांगतं की हा card filter नुसार बदलत नाही.

Interview questions

  1. CALCULATE काय करतो? बदललेल्या filter context मध्ये expression evaluate करतो.
  2. CALCULATE मधला filter सगळे page filters काढतो का? नाही; फक्त त्याच column वरचा filter. बाकी लागू राहतात.
  3. Category filter पण ignore कसा करायचा? REMOVEFILTERS(sales[category]) (किंवा ALL) add करा.
  4. Formula बरोबर दिसत असताना CALCULATE (Blank) का देऊ शकतो? Value match होत नाही: जास्तीची space, चुकीचं spelling, किंवा unrelated table. Case हे कारण नाही.

Recap

थोडक्यात

  1. Filter context: page filters प्रत्येक visual पर्यंत पोचतात.
  2. CALCULATE([total revenue], sales[state] = "Maharashtra"): आधी expression, मग filters.
  3. तो फक्त state filter बदलतो; category आणि date filters लागू राहतात.
  4. REMOVEFILTERS(column) दुसरा filter काढतो.
  5. (Blank): spaces आणि spelling check करा; DAX text matching case ignore करतं.

या lesson साठी Ravi Sir's Cards

English cards