Ravindra BagaleCourses & study guides English Track your progress

Power BI Power Query मध्ये अनेक वर्षांचा sales data append कसा करायचा

तुमचा dashboard 2023 च्या orders वर बनलाय. आता 2024 ची file आली, आणि पुढच्या वर्षी 2025 ची पण येईल. दरवेळी dashboard परत बनवायचा नाहीये. आपल्याला एकच sales table हवा जो वाढत जाईल: आधी 2023 चे rows, त्याखाली 2024 चे, मग 2025 चे. Power Query मध्ये हेच Append करतं. या chapter मध्ये आपण दोन वर्षांच्या files append करणार, एका चुकीच्या column नावामुळे total गुपचूप कसा बिघडतो ते बघणार, आणि पुढची file दोन मिनिटांचं काम होईल अशी setting करणार.

या chapter मध्ये काय शिकणार

  • Append काय करतं (rows च्या खाली rows)
  • नवीन file जुन्यासारखी clean करणं
  • Column names exactly match झाले पाहिजेत
  • NA ऐवजी null: null type करून
  • Append Queries as New, नाव sales
  • Source queries चं Enable load बंद
  • Append नंतर rows आणि revenue check

Practice files: blinkit-orders-2023-small.csv आणि blinkit-orders-2024-small.csv (या page वरचे rows), आणि blinkit-orders-2023.csv व blinkit-orders-2024.csv (120 आणि 140 rows, practice task साठी).

Made-up data: सगळे orders, products आणि stores काल्पनिक आहेत, Maharashtra मधल्या शहरांच्या Blinkit-style export सारखे. Amounts ₹ मध्ये आणि dates DD-MM-YYYY.

1. Problem काय आहे

मागच्या वर्षीचा report एकच file वाचतो, blinkit-orders-2023.csv. 2024 च्या file मध्ये तसेच orders आहेत, पण ती दुसऱ्या system ने export केलीय:

2023 file 2024 file
Revenue column revenue revenue (₹)
Delivery date column delivery_date delivery_date_format2 (आणि एक रिकामा delivery_date_format1)
Extra column – promo_bin (रिकामा)
Missing price – NA
Missing order ID – एक blank

दोन्ही files नुसत्या एकाखाली एक लावल्या, तर Power BI revenue (₹) ला revenue समजत नाही. तो वेगळा column म्हणून add होतो, 2024 चा revenue तिथे बसतो, revenue खाली nulls येतात, आणि Total Revenue card 2024 पूर्णपणे सोडून देतो.

2. सोप्या भाषेत idea

Append एका table चे rows दुसऱ्या table च्या rows खाली लावतं, जसं या वर्षीच्या register ची पानं मागच्या वर्षीच्या पानांमागे staple करावीत. Columns नावाने match होतात:

  • नाव same → values त्याच column मध्ये जातात.
  • नाव फक्त एकाच table मध्ये → नवीन column, आणि दुसऱ्या table च्या rows साठी null.

म्हणून append आधी नवीन file जुन्या file सारखीच करा: same column names, same data types, same cleaning rules (blank IDs काढलेले, metrics मधले NA null केलेले).

नावं matchएक नाव वेगळंorder_idrevenueBLK3001240BLK3004999BLK4001480BLK400375order_idrevenuerevenue (₹)BLK3001240nullBLK3004999nullBLK4001null480BLK4003null75Total revenue: 2023 + 2024 चे rowsTotal revenue फक्त 2023 मोजतो20232024चित्र (काल्पनिक data)

Figure 1. Append columns नावाने match करतं: "revenue" एकाच column मध्ये येतो, तर "revenue (₹)" nulls सोबत वेगळा column बनतो (चित्र).

3. Data

2023 file (आधीच clean):

order_id product_id store_id city order_date sales price revenue stock
BLK3001 P101 PUN01 Pune 12-01-2023 2 120 240 30
BLK3002 P102 NSK01 Nashik 03-03-2023 1 450 450 15
BLK3003 P103 SLP01 Solapur 21-07-2023 3 90 270 22
BLK3004 P105 KOP01 Kolhapur 30-11-2023 1 999 999 8

2024 file (raw; delivery date आणि दोन रिकामे columns दाखवले नाहीत):

order_id product_id store_id city order_date sales price revenue (₹) stock
BLK4001 P101 PUN01 Pune 05-02-2024 4 120 480 26
BLK4002 P104 NGP01 Nagpur 18-06-2024 2 NA 120 40
(blank) P102 NSK01 Nashik 02-08-2024 1 450 450 14
BLK4003 P109 PUN02 Pune 09-10-2024 1 75 75 60

बनवायच्या आधी अंदाज लावा: sales मध्ये किती rows येतील, आणि total revenue किती? (Section 5.)

4. Step by step

2023 file load करा

  1. Home › Get data › Text/CSV › blinkit-orders-2023-small.csv › Transform Data.
  2. Query Settings pane मध्ये query चं नाव orders_2023 करा.
  3. Types set करा: order_date आणि delivery_date › Change Type › Using Locale… › Date, English (India); sales आणि stock › Whole Number; price आणि revenue › Decimal Number.

2024 file load आणि clean करा

  1. Home › New Source › Text/CSV › blinkit-orders-2024-small.csv › OK. Query चं नाव orders_2024 करा.
  2. order_id चा filter arrow उघडा. List may be incomplete दिसलं तर Load more वर click करा. (blank) आणि कोणतेही NA untick करा, OK. product_id वर पण हाच check करा.
  3. promo_bin आणि delivery_date_format1 Ctrl+click करा, right-click › Remove Columns.
  4. revenue (₹) header वर double-click करा आणि revenue type करा. delivery_date_format2 चं नाव delivery_date करा. Spelling 2023 query सारखंच हवं: same अक्षरं, same underscores, extra space नाही.
  5. price वर right-click › Replace Values. Value To Find: NA. Replace With: null type करा. OK. Cell मध्ये italics मध्ये null दिसतं.
  6. Step 3 सारखेच types set करा.

Append as New

  1. Home › Append Queries › Append Queries as New.
  2. Two tables निवडा. First table: orders_2023. Second table: orders_2024. OK.
  3. Append1 नावाची नवीन query येते. तिचं नाव sales करा.

फक्त result load करा

  1. Queries pane मध्ये orders_2023 वर right-click करा आणि Enable load untick करा. orders_2024 साठी पण तेच. त्यांची नावं italic होतात: ते sales ला data देत राहतात, पण वेगळे tables म्हणून load होत नाहीत.
  2. Home › Close & Apply.
  3. Table view मध्ये sales निवडा आणि row count बघा. Report view मध्ये revenue आणि sales दोन cards वर टाका.
orders_20234 rows · load बंदorders_20244 → 3 rows · load बंदsales7 rows · load होते₹2,63414 unitsQueries pane मध्ये italic नाव = Enable load बंदचित्र (काल्पनिक data)

Figure 2. orders_2023 (4 rows) आणि orders_2024 (blank ID काढल्यावर 3 rows) एकाच loaded query, sales, ला data देतात: 7 rows; source queries चं Enable load बंद (चित्र).

5. Result असा दिसायला हवा

sales मध्ये 7 rows, आणि Data pane मध्ये फक्त sales:

order_id city order_date sales price revenue
BLK3001 Pune 12-01-2023 2 120 240
BLK3002 Nashik 03-03-2023 1 450 450
BLK3003 Solapur 21-07-2023 3 90 270
BLK3004 Kolhapur 30-11-2023 1 999 999
BLK4001 Pune 05-02-2024 4 120 480
BLK4002 Nagpur 18-06-2024 2 null 120
BLK4003 Pune 09-10-2024 1 75 75
Check Value
Rows 4 + 3 = 7
Total revenue 1,959 (2023) + 675 (2024) = ₹2,634
Total sales 7 + 7 = 14 units
Columns 10, orders_2023 एवढेच (वेगळा revenue (₹) column नाही)

6. काय झालं

  • 2024 मधला blank order ID चा row append आधीच काढला, म्हणून फक्त खरे orders stack झाले.
  • 2024 च्या प्रत्येक column चं नाव आता 2023 च्या column सारखंच आहे, म्हणून Append ने प्रत्येक value matching column मध्ये टाकली. बाजूला काहीच नवीन add झालं नाही.
  • sales दोन source queries पासून बनलीय. नंतर orders_2024 बदलली, तर पुढच्या refresh ला sales पण बदलते.
  • Enable load बंद असल्यामुळे 2023 आणि 2024 चे rows एकदाच load होतात (sales च्या आत), तीनदा नाही.

Classroom line

If there is a spelling mistake in a column name, Power BI adds it as a new column on the side instead.

7. अजून थोडं खोलात

  • पुढच्या वर्षीची file. 2025 ची file आली की ती orders_2025 म्हणून load करा, तशीच clean करा, मग sales निवडा › Home › Append Queries ("as New" नाही) › orders_2025. Close & Apply नंतर dashboard वरचे सगळे visuals update होतात. पुढच्या chapter मध्ये नेमकं हेच करतोय.
  • Columns चा क्रम महत्त्वाचा नाही, नावं महत्त्वाची. 2024 मध्ये revenue price च्या आधी असला तरी Append नावानेच match करतं.
  • Data types पण match हवेत. एका query मध्ये revenue Decimal आणि दुसऱ्यात Text असेल, तर appended column मिक्स होतो आणि sum चालत नाही. दोन्ही source queries मध्ये types set करा.
  • Append Queries आणि Append Queries as New. साधं Append निवडलेल्या query मध्ये step add करतं; as New वेगळी query बनवतं. As New मुळे प्रत्येक वर्षाचं cleaning त्याच्या query मध्ये राहतं आणि result एका स्पष्ट नावाच्या query मध्ये.
  • तीन किंवा जास्त tables एकदम: Append dialog मध्ये Three or more tables निवडा आणि list मध्ये add करा.
  • Power BI Desktop फक्त Windows वर चालतो. Mac असेल तर Windows PC किंवा Windows virtual machine वापरा.

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

चुकीचा result कारण उपाय
Revenue card 2,634 ऐवजी 1,959 दाखवतो 2024 चा revenue वेगळ्या revenue (₹) column मध्ये बसलाय orders_2024 मध्ये column चं नाव exactly revenue करा
sales मध्ये 2023 साठी nulls भरलेला delivery_date_format2 column तो column rename केला नाही त्याचं नाव delivery_date करा
7 ऐवजी 8 rows 2024 मधला blank order ID row काढला नाही orders_2024 मध्ये order_id वर (blank) filter out करा
Data pane मध्ये तीन tables आणि model गरजेपेक्षा मोठं Source queries चं Enable load अजून चालू orders_2023 आणि orders_2024 चं Enable load untick करा
BLK4002 ची price 0 दिसते NA ऐवजी 0 टाकला NA ऐवजी null; 0 मुळे averages खाली येतात
Replace With रिकामं ठेवलं आणि cell मध्ये null ऐवजी empty text Text column मध्ये रिकामं Replace With empty text देतं Replace With मध्ये null type करा

Ravindra Bagale's Tip

Before you append, put the two queries' column lists side by side and read them letter by letter. One extra space or "(₹)" is enough to create a new column, and the total quietly stops including the new year.

9. स्वतः practice करा

Practice task

blinkit-orders-2023.csv आणि blinkit-orders-2024.csv एका sales नावाच्या query मध्ये append करा.

  1. Blank order IDs काढल्यावर orders_2024 मध्ये किती rows?
  2. sales मध्ये किती rows?
  3. Total revenue किती, आणि total sales किती units?
  4. Append नंतर price, revenue आणि stock मध्ये किती nulls?

Hints: 2024 च्या file मध्ये 5 blank order IDs आहेत, आणि price, revenue (₹) आणि stock मध्ये NA.

Solution बघा
  1. 135 rows (140 − 5).
  2. 255 rows (120 + 135).
  3. Revenue ₹1,23,822 (2023 चे 53,186 + 2024 चे 70,636); sales 551 units (263 + 288).
  4. price 11, revenue 8, stock 6 nulls (सगळे 2024 मधले).

Revenue 53,186 आला तर 2024 चा revenue column rename झालेला नाही.

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

  • Business view. प्रत्येक subject साठी एक table (sales), प्रत्येक वर्षासाठी एक नाही. मग reports मध्ये year filter ने वर्षांची तुलना सोपी होते.
  • Performance. Helper queries चं Enable load बंद करा. प्रत्येक loaded table memory आणि refresh time खातो.
  • Maintenance. Queries ना स्पष्ट नावं द्या: orders_2023, orders_2024, sales. पुढच्या वर्षी दुसरं कोणीही View › Query Dependencies मध्ये chain समजू शकेल.
  • खूप वर्षांच्या files? त्या एका folder मध्ये ठेवा आणि Get data › Folder वापरा, म्हणजे नवीन file refresh ला आपोआप येईल.

Interview questions

  1. Append आणि Merge मध्ये फरक काय? Append same columns असलेल्या tables चे rows add करतं; Merge common key वापरून दुसऱ्या table चे columns add करतं.
  2. Append मुळे कधी कधी nulls भरलेले नवीन columns का येतात? Tables मध्ये एखाद्या column चं नाव वेगळं असतं, म्हणून Append त्यांना वेगळे columns समजतं.
  3. Source queries चं Enable load का बंद करायचं? म्हणजे तेच rows दोनदा load होत नाहीत आणि model छोटं राहतं.
  4. पुढच्या वर्षीचा data कसा add करता? नवीन file load करून match होईल अशी clean करायची, मग existing sales query मध्ये append करायची.

Recap

थोडक्यात

  1. Append rows stack करतं आणि columns नावाने match करतं.
  2. नवीन file तशीच clean करा; columns ची नावं exactly match करा.
  3. NA ऐवजी null: Replace With मध्ये null type करा.
  4. Append Queries as New, result चं नाव sales.
  5. Source queries चं Enable load untick करा; rows (4 + 3 = 7) आणि revenue (₹2,634) check करा.

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

English cards