Power Query मध्ये Column From Examples कसं वापरायचं (Date वरून Day Name काढणं)
"आपण weekdays ला जास्त विकतो की weekend ला?" प्रश्न सोपा वाटतो, पण data उघडला की फक्त order date दिसते. आठवड्याचा वार त्या date मध्येच लपलेला असतो. या chapter मध्ये आपण तो Column From Examples ने बाहेर काढणार: एका row चं उत्तर तुम्ही type करता आणि Power Query सगळ्या rows चा rule शोधतो. Menu चा shortcut, chart A ते Z ऐवजी Monday ते Sunday कसा चालवायचा, आणि examples ने बनणारे अजून काही columns पण शिकणार.
या chapter मध्ये काय शिकणार
- Power Query मधले added columns चे प्रकार
- Column From Examples: From Selection आणि From All Columns
- Example ने day name, आणि Name of Day ने
- Day Number आणि Sort by column (Mon ते Sun)
- Example ने IDs: prefix काढा, दोन IDs जोडा
- Delivery days आणि Age: Duration › Total Days
- Day नुसार revenue chart
Practice files: blinkit-sales-2025-days-small.csv (या page वरचे 8 orders) आणि blinkit-sales-2025-days.csv (2025 मधले 1,200 orders).
Made-up data: 2025 मधले काल्पनिक Blinkit-style orders, फक्त practice साठी. Amounts ₹ मध्ये आणि dates DD-MM-YYYY.
1. Problem काय आहे
बऱ्याच दुकानांचा weekend ला जास्त sale होतो; काहींचा कमी. आपल्यासाठी काय खरं ते कळायला प्रत्येक order चं day name हवं. File मध्ये order_date (आणि delivery_date) आहे, पण day column नाही. 1,200 day names हाताने type करणं शक्य नाही.
2. सोप्या भाषेत idea
Power Query आधीच्या columns वरून नवीन columns add करू शकतो. Add Column tab मध्ये नेहमी लागणारे चार प्रकार:
| प्रकार | काय करतो |
|---|---|
| Custom Column | तुमचा स्वतःचा formula, उदा. [price] * 0.18 |
| Column From Examples | तुम्ही एक-दोन rows चा result type करता; Power Query rule शोधतो |
| Conditional Column | if … then … else, dialog मध्ये भरायचं |
| Index Column | 1, 2, 3 … प्रत्येक row वर unique number |
Column From Examples म्हणजे Excel चा Flash Fill (Ctrl+E). त्यात दोन options:
- From Selection: फक्त select केलेले columns बघतो (इथे order_date).
- From All Columns: table मधले कुठलेही columns जोडू शकतो.
हे नवीन columns data refresh होताना calculate होतात आणि model मध्ये store होतात, म्हणजे memory घेतात. (Power BI मध्ये calculated column म्हणजे सहसा Table view मध्ये DAX ने लिहिलेला column. Power Query चे added columns तेच काम एक step आधी करतात; दोन्ही store होतात.)
आकृती 1. Power Query मधले चार प्रकारचे added columns: Custom, From Examples, Conditional आणि Index (चित्र).
Classroom line
Making new columns from the data you were given is what we call calculated columns.
Class मधलं वाक्य
"दिलेल्या data वरून नवीन columns तयार करणे यालाच आपण calculated columns म्हणतो."
दिलेल्या data वरून नवीन columns तयार करणं यालाच आपण calculated columns म्हणतो.
Classroom line
Making new columns from the data you were given is what we call calculated columns.
3. Data
blinkit-sales-2025-days-small.csv मधले 8 orders (columns: order_id, order_date, delivery_date, store_id, product_id, sales, price, revenue):
| order_id | order_date | delivery_date | product_id | revenue (₹) |
|---|---|---|---|---|
| BLK12001 | 01-01-2025 | 06-01-2025 | P206 | 132 |
| BLK12002 | 02-01-2025 | 05-01-2025 | P201 | 330 |
| BLK12006 | 03-01-2025 | 05-01-2025 | P214 | 198 |
| BLK12009 | 04-01-2025 | 09-01-2025 | P201 | 220 |
| BLK12013 | 05-01-2025 | 07-01-2025 | P211 | 190 |
| BLK12019 | 06-01-2025 | 09-01-2025 | P209 | 480 |
| BLK12024 | 07-01-2025 | 10-01-2025 | P212 | 300 |
| BLK12032 | 09-01-2025 | 12-01-2025 | P206 | 66 |
4. Step by step
Example ने day name
- Get data › Text/CSV › file › Transform data. order_date आणि delivery_date ला calendar icon (Date) आहे का बघा. Text असतील तर बघा: Power Query मध्ये Using Locale ने US dates fix करणं, ID columns Text ठेवणं आणि Fixed decimal number वापरणं.
- order_date select करा. Add Column › Column From Examples › From Selection.
- उजवीकडे एक रिकामा column उघडतो. त्याच्या पहिल्या cell वर double-click करा: suggestions ची list येते (Year, Month, Day of Week, Age, End of Month…).
- 01-01-2025 शेजारी
Wednesdaytype करून Enter दाबा. Power Query प्रत्येक row साठी Thursday, Friday, Saturday… भरतो आणि वर सापडलेला formula दाखवतो. - एखादा row चुकीचा वाटला तर त्या row वर पण बरोबर उत्तर type करा; जास्त examples ने rule स्पष्ट होतो.
- Column header वर double-click करून नाव
Day Nameद्या. OK click करा.
Menu चा मार्ग (same result)
- order_date select › Add Column › Date › Day › Name of Day. हे
Date.DayOfWeekName([order_date])लिहितं. जो सोपा वाटेल तो वापरा; Day Name column एकच ठेवा.
Sorting साठी Day Number
- Add Column › Custom Column. Name:
Day Number. Formula:Date.DayOfWeek([order_date], Day.Monday) + 1. OK, मग type Whole Number करा. Monday 1 आणि Sunday 7.
Example ने IDs (From All Columns)
- Add Column › Column From Examples › From All Columns. पहिल्या row मध्ये (product_id P206, store_id 102)
206type करा. Power Query प्रत्येक row मधून "P" काढतो. नावproduct_noद्या. - अजून एक करून बघा:
P206-102type करा. Power Query product_id, hyphen आणि store_id जोडतो. Examples तुम्ही जसं type करता तसंच copy करतात, capitals सकट:p206-102type केलं तर वेगळा (lowercase) rule मिळतो, किंवा काहीच नाही.
Delivery days
- Add Column › Custom Column. Name
delivery days, formula[delivery_date] - [order_date]. Result Duration असतो, 5.00:00:00 असा दिसतो (days.hours:minutes:seconds). - तो select › Transform › Duration › Total Days. आता तो number 5 आहे.
Chart
- Close & Apply. Table view मध्ये Day Name select › Column tools › Sort by column › Day Number.
- Clustered column chart टाका: X-axis Day Name, Y-axis revenue. More options (…) › Sort axis › Day Name, मग Sort ascending. Bars Monday ते Sunday चालतात.
आकृती 2. Column From Examples वरून खाली: date select करा, From Selection, एक day name type करा, बाकी Power Query भरतो (चित्र).
Classroom line
Double-click the first row and many suggestions start to appear.
Class मधलं वाक्य
"पहिल्या row ला double click करायचा ... भरपूर examples दिसायला लागतात."
पहिल्या row ला double click करायचं, मग भरपूर examples दिसायला लागतात.
Classroom line
Double-click the first row and many suggestions start to appear.
5. Result असा दिसायला हवा
| order_date | Day Name | Day Number | delivery days |
|---|---|---|---|
| 01-01-2025 | Wednesday | 3 | 5 |
| 02-01-2025 | Thursday | 4 | 3 |
| 03-01-2025 | Friday | 5 | 2 |
| 04-01-2025 | Saturday | 6 | 5 |
| 05-01-2025 | Sunday | 7 | 2 |
| 06-01-2025 | Monday | 1 | 3 |
| 07-01-2025 | Tuesday | 2 | 3 |
| 09-01-2025 | Thursday | 4 | 3 |
1,200-row file ने day नुसार revenue: Monday 43,652, Tuesday 46,675, Wednesday 44,315, Thursday 49,584, Friday 45,393, Saturday 56,940, Sunday 73,041 (total ₹3,59,600).
आकृती 3. Day Name नुसार revenue, Day Number column ने Monday ते Sunday sort (चित्र).
6. काय झालं
- एका example वरून Power Query ने ओळखलं की तुम्हाला order_date चं day name हवंय, आणि तुमच्यासाठी
Date.DayOfWeekNameलिहिलं. Menu option पण तेच function लिहितो. - Text A ते Z sort होतो, म्हणून मदत केली नाही तर chart Friday ने सुरू झाला असता. Sort by column Power BI ला सांगतो की Day Name, Day Number नुसार लाव.
Date.DayOfWeek0 पासून मोजतो. दुसरा argument सांगतो कुठला दिवस 0;Day.Mondayने Monday 0, म्हणून 1 add केल्यावर 1 ते 7.- दोन dates वजा केल्या की Duration मिळतो, number नाही. Total Days त्याचा number करतो, ज्याची sum किंवा average करता येते.
Classroom line
Once we have the day names, we can build the graph from them.
Class मधलं वाक्य
"एकदा आपल्याला day चे name भेटले मग आपण त्याच्यावरून graph बनवू शकतो."
एकदा आपल्याला day चं name मिळालं, की मग त्यावरून graph बनवू शकतो.
Classroom line
Once we have the day names, we can build the graph from them.
7. अजून थोडं खोलात
- DAY() म्हणजे वार नाही. DAX मध्ये
DAY([order_date])महिन्यातली तारीख देतो (1 ते 31). नावासाठीFORMAT([order_date], "dddd"); number साठीWEEKDAY([order_date], 2)(Monday = 1). - Age. Age नावाची suggestion आजच्या date मधून order date वजा करते. तो पण Duration असतो (Total Days वापरा), आणि प्रत्येक refresh ला बदलतो, कारण "आज" पुढे सरकतो.
- Replacement window. Delivery नंतर 8 दिवस replacement allowed असेल, तर Custom Column
Date.AddDays([delivery_date], 8)add करा. delivery_date नसलेल्या orders ना null मिळतो: अजून deliver नाही, किंवा हरवली, ज्याचा वेगळा check करायला हवा. - Delivery delay. delivery days ने उशिरा deliveries लगेच दिसतात; delivery days विरुद्ध orders चा bar chart हा e-commerce data चा नेहमीचा interview task आहे.
- Examples कधी फसतात. Column From Examples तुमचं स्वतःचं गणित करू शकत नाही: 6.5*0.18 type केलं तर ते text समजतं. Formulas साठी Custom Column वापरा (पुढचा chapter).
Classroom line
Replacement is allowed only for the first eight days.
Class मधलं वाक्य
"फक्त सुरुवातीचे आठ दिवसच replacement allowed असतो."
फक्त सुरुवातीचे आठ दिवसच replacement allowed असतो.
Classroom line
Replacement is allowed only for the first eight days.
8. नेहमीच्या चुका
| चुकीचा result | कारण | Fix |
|---|---|---|
| Chart Friday ने सुरू होतो | Day Name A ते Z sort | Sort by column › Day Number, मग axis Day Name ascending sort |
| DAX column 1, 2 … 31 दाखवतो | वारासाठी DAY() वापरलं | FORMAT([date], "dddd") किंवा Power Query मध्ये Name of Day |
| delivery days 5.00:00:00 दाखवतो | तो Duration आहे | Transform › Duration › Total Days |
| Examples विचित्र formula देतात | एक example पुरला नाही | दुसऱ्या row वर पण उत्तर type करा |
| जोडलेला ID चुकीच्या case मध्ये | Examples तुम्ही type केलेला case copy करतात | Example हवा तसाच type करा |
| order_date साठी suggestions नाहीत | order_date Text आहे | आधी type Date करा |
Ravindra Bagale's Tip
Column From Examples नंतर OK करण्याआधी वर दाखवलेला formula नेहमी वाचा. Formula तुम्हाला हवं तेच सांगत असेल, तर विश्वास ठेवा. साध्या गोष्टीसाठी text functions ची लांबलचक साखळी दिसली, तर column delete करून menu option वापरा.
Ravindra Bagale's Tip – मराठी
Column From Examples नंतर OK करण्याआधी वर दाखवलेला formula नेहमी वाचा. Formula तुम्हाला हवं तेच सांगत असेल, तर विश्वास ठेवा. साध्या गोष्टीसाठी text functions ची लांबलचक साखळी दिसली, तर column delete करून menu option वापरा.
Ravindra Bagale's Tip – हिंदी
Column From Examples के बाद OK करने से पहले ऊपर दिखाया formula हमेशा पढ़िए. Formula वही कहे जो आप चाहते हैं, तो भरोसा कीजिए. आसान काम के लिए text functions की लंबी कड़ी दिखे, तो column delete करके menu option इस्तेमाल कीजिए.
Classroom line
If it doesn't get it, type another example in the next row as well.
Class मधलं वाक्य
"नाही समजलं, तर परत खालच्या row ला बी लिहायचं."
नाही समजलं, तर खालच्या row ला पण परत लिहायचं.
Classroom line
If it doesn't get it, type another example in the next row as well.
9. स्वतः practice करा
Practice task
blinkit-sales-2025-days.csv load करा आणि Day Name, Day Number आणि delivery days add करा.
- कुठल्या दिवशी सगळ्यात जास्त revenue आहे, आणि कुठल्या दिवशी सगळ्यात कमी?
- Sundays ला किती orders आल्या?
- किती orders deliver व्हायला 3 पेक्षा जास्त दिवस लागले?
- किती orders ना delivery_date नाही?
- BLK12001 ची replacement ची शेवटची date कुठली?
Solution बघा
- सगळ्यात जास्त Sunday, 73,041; सगळ्यात कमी Monday, 43,652.
- 246 orders.
- 170 orders (सगळ्यांना 5 दिवस लागले).
- 31 orders: त्यांचे delivery days null आहेत.
- 14-01-2025 (06-01-2025 ला delivered + 8 दिवस).
10. Professional सारखा विचार करा
- Business view. वारानुसार staffing, delivery slots आणि offers ठरतात. Sunday ला peak म्हणजे Sunday ला जास्त riders.
- सगळ्यात स्पष्ट formula निवडा. Name of Day आणि Column From Examples same result देतात; team ला नंतर कळेल तो निवडा.
- Helper column ठेवा. Day Number फक्त sorting साठी आहे. Report view मध्ये hide करा (right-click › Hide), म्हणजे field list मध्ये पसारा होत नाही.
- Domain समजून घ्या. Order date विरुद्ध delivery date, return windows आणि delays हेच प्रश्न e-commerce companies चे interviewers विचारतात.
Interview questions
- Column From Examples म्हणजे काय? Add Column चा option, जिथे अपेक्षित result type केला की Power Query formula लिहितो, Flash Fill सारखा.
- Day names Monday ते Sunday कसे sort करायचे? Day Number column add करा आणि Day Name वर Sort by column वापरा.
- DAX मध्ये DAY() काय देतो? महिन्यातली तारीख, 1 ते 31.
- Duration चे दिवस कसे करायचे? Transform › Duration › Total Days.
Recap
थोडक्यात
- Add Column मध्ये Custom, From Examples, Conditional आणि Index columns आहेत.
- Column From Examples: एक उत्तर type करा, Power Query rule शोधतो.
- Day name: example ने किंवा Add Column › Date › Day › Name of Day.
- Day Number = Date.DayOfWeek([order_date], Day.Monday) + 1, मग Sort by column.
- Date वजा date म्हणजे Duration: Total Days वापरा.
- या data मध्ये Sunday ला revenue सगळ्यात जास्त.
उजळणी card