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.
Class मधलं वाक्य
समजा आत्ता माझे जे measures आहेत, ते सगळे वेगवेगळ्या tables मध्ये आहेत.
Classroom line – हिंदी
"Suppose abhi mere jo measures hain na, ye sab alag alag table mein hain."
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 बनवा
- Home › Enter data. Grid रिकामी ठेवा. Name:
Measures Table. Load. एक रिकामा column, Column1, असलेला table येतो. - Data pane मध्ये total revenue select करा › Measure tools › Home table › Measures Table. तो हलतो.
- प्रत्येक measure साठी repeat करा.
- Measures Table मध्ये Column1 › three dots › Delete from model › Yes.
- Table चा icon measures-table icon होतो आणि तो Data pane च्या वर जातो.
आकृती 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.
Class मधलं वाक्य
Measure add केल्याशिवाय आपण column delete करू शकत नाही, कारण table मध्ये किमान एक field असायलाच हवं.
Classroom line – हिंदी
"Bina measure add kiye hum column delete nahi kar sakte, kyunki ek table ke andar kam se kam ek column to hona chahiye."
DAX query view
- डावीकडच्या चौथ्या icon वर, DAX query view वर click करा.
EVALUATE TOPN(100, 'sales')type करा › Run. Results grid sales च्या 100 rows दाखवतो.- त्याऐवजी
EVALUATE sales› Run: सगळ्या 800 rows. - EVALUATE शब्द काढून
salesrun करा: Power BI query syntax error दाखवतो. प्रत्येक query ला EVALUATE लागतो. -
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.
Class मधलं वाक्य
"Power BI ने आपल्याला practice करण्यासाठी एक जागा दिली आहे, ती आहे DAX query view."
Power BI ने आपल्याला practice करण्यासाठी एक जागा दिली आहे, ती म्हणजे DAX query view.
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.
Class मधलं वाक्य
आपण category दाखवतोय, पण मी title काय लिहिलं? products.
Classroom line – हिंदी
"Bhale hi hum log category dikha rahe hain, lekin maine title kya likha hai? products."
Classroom line
Without EVALUATE, nothing runs in DAX query view.
Class मधलं वाक्य
"बिना EVALUATE आपण काहीही लिहू शकत नाही DAX query view वर."
EVALUATE शिवाय DAX query view वर आपण काहीही चालवू शकत नाही.
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 देतो.
आकृती 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.
Class मधलं वाक्य
"इथे लिहिल्याने आपल्या table मध्ये changes होणार नाहीत, आपला data change होणार नाही, आपला report change होणार नाही."
इथे लिहिल्याने आपल्या table मध्ये changes होणार नाहीत, data बदलणार नाही, report बदलणार नाही.
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.
Class मधलं वाक्य
कधी कधी error कुठे आहे ते कळत नाही; तेव्हा इथे test करा.
Classroom line – हिंदी
"Kabhi kabhi samajh mein nahi aata ki error kahan pe hai..."
Classroom line
This is simply for practice, for testing.
Class मधलं वाक्य
"हे simply practice साठी आहे, testing साठी आहे."
हे फक्त practice साठी आहे, testing साठी आहे.
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 करा, म्हणजे नंतर काहीच हलवावं लागत नाही.
Ravindra Bagale's Tip – मराठी
Project च्या सुरुवातीलाच, पहिल्या measure आधी, Measures Table बनवा. मग New measure click करताना प्रत्येक वेळी तोच select करा, म्हणजे नंतर काहीच हलवावं लागत नाही.
Ravindra Bagale's Tip – हिंदी
Project की शुरुआत में ही, पहले measure से पहले, Measures Table बनाएँ. फिर हर बार New measure click करते समय उसी को select करें, ताकि बाद में कुछ भी move न करना पड़े.
9. स्वतः practice करा
Practice task
blinkit-sales-2025-metrics.csv आणि तुमचे measures वापरून:
- सगळे measures Measures Table मध्ये हलवा आणि Column1 delete करा. total revenue बदलतो का?
- DAX query view मध्ये sales च्या पहिल्या 5 rows दाखवा.
- स्वच्छ headers सकट city आणि state दाखवा, प्रत्येक जोडीसाठी एक row. किती rows?
- SUMMARIZECOLUMNS ने state नुसार total orders दाखवा. सगळ्यात जास्त orders कोणत्या state च्या?
Solution दाखवा
- नाही: अजूनही ₹1,48,221.
EVALUATE TOPN(5, 'sales').EVALUATE DISTINCT(SELECTCOLUMNS(sales, "city", sales[city], "state", sales[state])): 10 rows.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
- Measures table कसा बनवायचा? रिकाम्या table सकट Enter data, Home table ने measures हलवा, मग placeholder column delete करा.
- Measure हलवल्याने त्याचा result बदलतो का? नाही; फक्त तो कुठे दिसतो ते.
- DAX query view काय करतो? DAX queries चालवतो आणि model किंवा report न बदलता results दाखवतो.
- EVALUATE का लागतो? DAX query EVALUATE आणि त्यानंतर table expression ने सुरू व्हायला हवी.
- SUMMARIZECOLUMNS("Total revenue", SUM(sales[revenue])) काय देतो? एक row आणि एक column असलेला table, scalar नाही.
Recap
थोडक्यात
- Home › Enter data › रिकामा › Measures Table › Load.
- Measure tools › Home table प्रत्येक measure हलवतो; results तसेच राहतात.
- एक measure आत आल्यावर Column1 delete करा; icon बदलतो.
- DAX query view: EVALUATE TOPN(100, 'sales'); EVALUATE नाही तर result नाही.
- SELECTCOLUMNS मधली नावं headers ठरवतात (अगदी "products").
- SUMMARIZECOLUMNS table देतो (total साठी 1×1); एका value साठी { } किंवा ROW; grouping साठी SUMMARIZECOLUMNS(sales[category], "Revenue", [total revenue]).
उजळणी card