Ravindra BagaleCourses & study guides English Track your progress

Power BI मध्ये Measures Table कसा बनवायचा आणि DAX Query View मध्ये DAX कसा test करायचा (EVALUATE, SELECTCOLUMNS)

काही chapters measures बनवल्यावर Data pane गोंधळाचा होतो: total revenue sales मध्ये, target color दुसरीकडे, maharashtra revenue parameter table मध्ये, कारण New measure click केलं तेव्हा तोच select होता. Measure शोधणं म्हणजे शोधमोहीम होते. Measures Table सगळे measures एका जागी, Data pane च्या वर, स्वतःच्या icon सकट ठेवतो. या chapter च्या दुसऱ्या भागात तुम्ही DAX query view उघडाल: अशी practice ची जागा जिथे DAX चालवून result table म्हणून बघता येतो, data, model किंवा report न बदलता.

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

  • Measures वेगवेगळ्या tables मध्ये का जातात
  • Enter data: Measures Table नावाचा रिकामा table
  • Measure tools › Home table
  • Column1 delete करणे आणि icon बदलणे
  • DAX query view: EVALUATE, TOPN, पूर्ण table
  • नावांसह आणि नावांशिवाय SELECTCOLUMNS, custom headers
  • SUMMARIZECOLUMNS: 1×1 table विरुद्ध single value, आणि grouping

Practice file: blinkit-sales-2025-metrics.csv (800 order lines), मागच्या दोन chapters मधल्या measures सकट.

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

1. Problem

New measure click करताना जो table select असेल त्यातच measure राहतो. दोन chapters नंतर total revenue, total sales, total orders, total profit आणि dairy revenue sales मध्ये आहेत, तर maharashtra revenue Metric Selector मध्ये गेला. दहा tables असलेल्या मोठ्या model मध्ये कुणालाच काही सापडत नाही.

Classroom line

Suppose my measures right now are all in different tables.

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

Measures Table म्हणजे असा रिकामा table ज्याचं एकच काम measures ठेवणं, folder सारखं. Measure तिथे हलवल्याने फक्त तो कुठे दिसतो ते बदलतं; त्याचा formula आणि result तसाच राहतो.

DAX query view (डावीकडचा चौथा icon, Model view च्या खाली) DAX queries चालवतो आणि result grid म्हणून दाखवतो. तिथे चालवलेलं काहीही tables, data किंवा report बदलत नाही. प्रत्येक query EVALUATE ने सुरू होते, आणि त्यानंतर table देणारी गोष्ट येते.

3. Data

गोळा करायचे measures:

Measure Value (filter नाही) आत्ताचा home table
total revenue ₹1,48,221 sales
total sales 1,431 sales
total orders 496 sales
total profit ₹42,482 sales
maharashtra revenue ₹44,763 Metric Selector

4. Step by step

Measures Table बनवा

  1. Home › Enter data. Grid रिकामी ठेवा. Name: Measures Table. Load. एक रिकामा column, Column1, असलेला table येतो.
  2. Data pane मध्ये total revenue select करा › Measure tools › Home table › Measures Table. तो हलतो.
  3. प्रत्येक measure साठी repeat करा.
  4. Measures Table मध्ये Column1 › three dots › Delete from model › Yes.
  5. Table चा icon measures-table icon होतो आणि तो Data pane च्या वर जातो.
Home › Enter data › रिकामं › नाव "Measures Table" › LoadMeasure select › Measure tools › Home table › Measures Tableप्रत्येक measure साठी repeatColumn1 › Delete from modelIcon measures table चा होतोचित्र (काल्पनिक data)

आकृती 1. रिकामा table बनवा, Home table ने प्रत्येक measure हलवा, मग Column1 delete करा (illustration).

Classroom line

We can't delete the column before adding a measure, because a table must have at least one field.

DAX query view

  1. डावीकडच्या चौथ्या icon वर, DAX query view वर click करा.
  2. EVALUATE TOPN(100, 'sales') type करा › Run. Results grid sales च्या 100 rows दाखवतो.
  3. त्याऐवजी EVALUATE sales › Run: सगळ्या 800 rows.
  4. EVALUATE शब्द काढून sales run करा: Power BI query syntax error दाखवतो. प्रत्येक query ला EVALUATE लागतो.
  5. Run करा:

    EVALUATE SELECTCOLUMNS(sales, sales[category], sales[state])

    Headers table prefix सकट येतात, जसं sales[category]. 11. प्रत्येक column ला नाव द्या:

    EVALUATE SELECTCOLUMNS(sales, "category", sales[category], "state", sales[state])

    आता headers स्वच्छ: category, state. 12. Header म्हणजे तुम्ही लिहिलेला text, column चं नाव नाही: SELECTCOLUMNS(sales, "products", sales[category]) categories products header खाली दाखवतो. 13. EVALUATE SUMMARIZECOLUMNS("Total revenue", SUM(sales[revenue])) run करा. Result एक row आणि एक column असलेला table आहे, Total revenue = 148221. ("Total revenue" नाव सोडलं तर syntax error येतो.) 14. खऱ्या single value साठी EVALUATE { SUM(sales[revenue]) } (एक value, header Value) किंवा EVALUATE ROW("Total revenue", [total revenue]) वापरा. 15. SUMMARIZECOLUMNS चं खरं काम grouping:

    EVALUATE SUMMARIZECOLUMNS(sales[category], "Revenue", [total revenue])

    चार rows: Dairy & Bakery 59,124, Snacks & Branded Foods 35,200, Staples 30,290, Beverages 23,607.

Classroom line

Power BI has given us a place to practise: DAX query view.

Classroom line

We are showing category, but what title did I write? products.

Classroom line

Without EVALUATE, nothing runs in DAX query view.

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

  • Data pane: वर measures-table icon सकट Measures Table, त्यात पाचही measures; cards अजून त्याच values दाखवतात.
  • DAX query view: नावांसह SELECTCOLUMNS category आणि state headers सकट 800 rows देतो; SUMMARIZECOLUMNS("Total revenue", …) 1×1 table (148221) देतो; category नुसार grouping 4 rows देतो.
नावं नसताना: headers मध्ये table prefixsales[category]sales[state]नावांसह: स्वच्छ headerscategorystateDairy & BakeryMaharashtraStaplesKarnatakaBeveragesGujaratचित्र (काल्पनिक data)

आकृती 2. नावांशिवाय headers मध्ये table prefix राहतो; नावांसह ते स्वच्छ असतात (illustration).

6. काय झालं

  • Enter data ने खरा (रिकामा) table बनवला; Home table ने फक्त प्रत्येक measure कुठे दिसतो ते बदललं.
  • Table मध्ये नेहमी किमान एक field असायला हवं, म्हणून पहिला measure आत आल्यावरच Column1 काढता येतो.
  • Table मध्ये फक्त measures उरले की Power BI त्याला measures table मानतो आणि सगळ्यात आधी दाखवतो.
  • Query view मध्ये EVALUATE results grid ला table देतो; model मध्ये काहीच save होत नाही.

Classroom line

Writing here won't change our tables, our data or our report.

7. अजून explore करा

  • नावं unique हवीत. Measures Table नावाचा दुसरा table नाकारला जातो, कारण model मधलं प्रत्येक table नाव unique असायला हवं. नावानुसार पण सगळ्यात वर हवा असेल तर _Measures वापरा.
  • अनपेक्षित result test करा. Measure किंवा column अपेक्षित नसलेला number देत असेल, तर query view मध्ये तो तुकड्या तुकड्याने परत बनवा: EVALUATE ROW("rev", [total revenue], "MH", [maharashtra revenue]), मग number बदलेपर्यंत एक एक filter add करा.
  • Value नाही, table. SUMMARIZECOLUMNS नेहमी table देतो, अगदी 1×1 सुद्धा; single value मागायचे मार्ग म्हणजे { … } आणि ROW.
  • Distinct values. SELECTCOLUMNS प्रत्येक sales row साठी एक row देतो (800). प्रत्येक category–state जोडी एकदा बघायला तो DISTINCT मध्ये wrap करा: 20 rows.
  • अजून. Power BI मध्ये Conditional Column कसा बनवायचा: Weekday आणि Weekend (Power Query आणि DAX IF) मध्ये query view पहिल्यांदा आला; main course मधले DAX Query View आणि Implicit vs Explicit Measures and Measure Tables हे lessons यापुढे जातात.

Classroom line

Sometimes you can't tell where the error is; test it here.

Classroom line

This is simply for practice, for testing.

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

चुकीचा result कारण उपाय
Column1 delete होत नाही अजून एकही measure आत आला नाही आधी एक measure हलवा
"Measures Table" नाव नाकारलं त्या नावाचा table आधीच आहे Unique नाव वापरा
Icon बदलला नाही Column1 अजून आहे Column1 Delete from model
Query syntax error EVALUATE नाही EVALUATE ने सुरुवात करा
Headers मध्ये sales[category] Columns ना नावं दिली नाहीत "category", sales[category]
SUMMARIZECOLUMNS मध्ये syntax error नावाशिवाय expression "Total revenue", SUM(sales[revenue])
एक number अपेक्षित, table मिळाला SUMMARIZECOLUMNS table देतो EVALUATE { SUM(sales[revenue]) } किंवा ROW(…)

Ravindra Bagale's Tip

Project च्या सुरुवातीलाच, पहिल्या measure आधी, Measures Table बनवा. मग New measure click करताना प्रत्येक वेळी तोच select करा, म्हणजे नंतर काहीच हलवावं लागत नाही.

9. स्वतः practice करा

Practice task

blinkit-sales-2025-metrics.csv आणि तुमचे measures वापरून:

  1. सगळे measures Measures Table मध्ये हलवा आणि Column1 delete करा. total revenue बदलतो का?
  2. DAX query view मध्ये sales च्या पहिल्या 5 rows दाखवा.
  3. स्वच्छ headers सकट city आणि state दाखवा, प्रत्येक जोडीसाठी एक row. किती rows?
  4. SUMMARIZECOLUMNS ने state नुसार total orders दाखवा. सगळ्यात जास्त orders कोणत्या state च्या?
Solution दाखवा
  1. नाही: अजूनही ₹1,48,221.
  2. EVALUATE TOPN(5, 'sales').
  3. EVALUATE DISTINCT(SELECTCOLUMNS(sales, "city", sales[city], "state", sales[state])): 10 rows.
  4. EVALUATE SUMMARIZECOLUMNS(sales[state], "Orders", [total orders]): Maharashtra, 178.

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

  • Business दृष्टी. नीटनेटका Data pane report दुसऱ्याकडे देणं सोपं करतो; पुढच्या व्यक्तीला प्रत्येक measure एका जागी सापडतो.
  • एक घर. सगळे measures Measures Table मध्ये ठेवा; तो मोठा झाला की display folders वापरा.
  • Build करण्याआधी test. Measure visual वर ठेवण्याआधी त्याचा number query view मध्ये check करा.
  • Sandbox. Query view experiments साठी सुरक्षित आहे; model मध्ये build करेपर्यंत काहीच बदलत नाही.

Interview questions

  1. Measures table कसा बनवायचा? रिकाम्या table सकट Enter data, Home table ने measures हलवा, मग placeholder column delete करा.
  2. Measure हलवल्याने त्याचा result बदलतो का? नाही; फक्त तो कुठे दिसतो ते.
  3. DAX query view काय करतो? DAX queries चालवतो आणि model किंवा report न बदलता results दाखवतो.
  4. EVALUATE का लागतो? DAX query EVALUATE आणि त्यानंतर table expression ने सुरू व्हायला हवी.
  5. SUMMARIZECOLUMNS("Total revenue", SUM(sales[revenue])) काय देतो? एक row आणि एक column असलेला table, scalar नाही.

Recap

थोडक्यात

  1. Home › Enter data › रिकामा › Measures Table › Load.
  2. Measure tools › Home table प्रत्येक measure हलवतो; results तसेच राहतात.
  3. एक measure आत आल्यावर Column1 delete करा; icon बदलतो.
  4. DAX query view: EVALUATE TOPN(100, 'sales'); EVALUATE नाही तर result नाही.
  5. SELECTCOLUMNS मधली नावं headers ठरवतात (अगदी "products").
  6. SUMMARIZECOLUMNS table देतो (total साठी 1×1); एका value साठी { } किंवा ROW; grouping साठी SUMMARIZECOLUMNS(sales[category], "Revenue", [total revenue]).

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

English cards