Theory
वह कितने समय से member है?
Meera एक loyalty scheme चलाती है और हर customer का सटीक tenure चाहती है: सिर्फ 'लगभग 2 साल' नहीं बल्कि '2 साल, 3 महीने'। वह supplier invoices को days overdue से flag भी करना चाहती है।
दोनों date गणित हैं, और दोनों आसान हैं एक तथ्य की वजह से जो आप पहले से जानते हैं: Excel हर date को एक serial number के रूप में store करता है (BCA105)। वह एक idea मतलब dates को किसी भी number की तरह घटाया, तुलना और मापा जा सकता है।
यह lesson उस तथ्य को practical tools में बदलता है: TODAY, NOW, सादा घटाव, और सटीक DATEDIF।
Theory
Dates बस दिन-numbers हैं
एक विशाल रूलर की कल्पना कीजिए जहाँ हर दिन का एक number है (दिन 1 = 1 जन 1900, आज ~46,000 तक)। एक बार एक date उस रूलर पर एक number है, 'बीच में कितने दिन?' बस घटाव है, और 'कितना पुराना?' दूरी मापना है। Excel इन numbers को आपके लिए calendar dates के रूप में सजाता है, पर नीचे, date गणित रूलर पर सादा arithmetic है। यही वजह है कि नीचे सब कुछ काम करता है।
At a glance
Date toolkit
| Function | लौटाता है | इस्तेमाल |
|---|---|---|
| TODAY() | मौजूदा date (live) | Days overdue, age |
| NOW() | मौजूदा date AUR time | Timestamps |
| date2 - date1 | बीच के days | Invoice age |
| DATEDIF(a, b, "Y") | बीच के complete years | Age, tenure |
| DATEDIF(a, b, "M") | बीच के complete months | Months of service |
Theory
DATEDIF: सटीक age और tenure
सादा घटाव days देता है; years और months के लिए आपको DATEDIF(start, end, unit) चाहिए:
"Y"-> dates के बीच complete years।"M"-> complete months।"D"-> days।"YM"-> पूरे years के बाद बचे months ('2 साल 3 महीने' के लिए)।
तो =DATEDIF(joindate, TODAY(), "Y") membership के पूरे years देता है, और "Y" तथा "YM" जोड़ना सटीक '2 साल 3 महीने' देता है। और क्योंकि TODAY() live है, tenure समय बीतने के साथ ख़ुद को update करता है। (DATEDIF एक छिपा रत्न है, Excel इसे autocomplete भी नहीं करता, पर यह पूरी तरह समर्थित है।)
Quiz
Aryan एक member की age के लिए =DATEDIF(A2, TODAY(), "Y") गणना करता है। अगले साल वह file खोलता है। age का क्या होता है?
- यह अपने-आप बढ़ती है, TODAY() live है तो age फिर से गणना होती है
- यह वही रहती है, DATEDIF value को जमा देता है
- यह एक साल बाद error दिखाती है
- यह zero पर reset हो जाती है
Show the answer
यह अपने-आप बढ़ती है, TODAY() live है तो age फिर से गणना होती है
TODAY() फिर से गणना करता है हर बार जब file खुलती या recalc होती है, तो TODAY() के ख़िलाफ़ मापी गई age या tenure समय के साथ ख़ुद को update करती है, अगले साल यह एक साल ज़्यादा, अपने-आप। यह आम तौर पर वही है जो आप 'मौजूदा age' के लिए चाहते हैं। अगर आपको एक जमा हुआ snapshot चाहिए ('signup पर age'), तो आप एक static date (Ctrl+;) इस्तेमाल करते। live-बनाम-static चुनाव मुख्य exam फ़र्क़ है।
Think first
Days overdue
एक supplier invoice B2 में date पर due थी। Aryan को आज की तारीख़ तक 'days overdue' चाहिए। formula का idea लिखिए, और समझाइए कि यह बिना किसी विशेष date function के क्यों काम करता है।
Show the answer
=TODAY() - B2। क्योंकि दोनों date रूलर पर serial numbers हैं, due date को आज से घटाना बीच के दिनों की संख्या देता है, यानी days overdue (एक negative नतीजा मतलब यह अभी due नहीं है)। कोई fancy function ज़रूरी नहीं, date घटाव बस काम करता है। यह 'dates numbers हैं' का सीधा फल है: रोज़मर्रा व्यापार सवाल एक-line arithmetic बन जाते हैं।
Watch out
Marks कहाँ कटते हैं
यह भूलना कि dates serial numbers हैं (तो घटाव days देता है)। TODAY() (date, live) को NOW() (date+time) और एक static date (Ctrl+;, जमा) से गड्डमड्ड करना। DATEDIF के units ("Y"/"M"/"D"/"YM") सटीक age/tenure के लिए न जानना। और एक date column को जो गुप्त रूप से text है (बाईं-align!) एक असली date की तरह मानना, फिर गणित विफल होता है (data-types lesson याद कीजिए)। alignment जाँचिए, फिर गणना कीजिए।
Theory
Dates असली reports चलाते हैं
Age, tenure, days-overdue, ageing reports (30/60/90 days), यह सब date-as-number arithmetic पर टिका है। एक बार आप dates को एक रूलर पर points के रूप में देखते हैं, यह रटना बंद हो जाता है। अगला lesson financial functions पर जाता है, EMIs के लिए PMT और एक निवेश को आँकने के लिए NPV, असली पैसे का गणित जो एक दुकानदार (और एक BCA graduate) असल में इस्तेमाल करता है।
Summary
Key takeaways
- Excel dates को serial numbers के रूप में store करता है, तो date2 - date1 बीच के days देता है।
- TODAY() मौजूदा date लौटाता है (live); NOW() date और time लौटाता है।
- DATEDIF(start, end, unit) complete years ("Y"), months ("M") या days ("D") में अंतर देता है।
- '2 साल 3 महीने' जैसे सटीक tenure के लिए "Y" और "YM" जोड़िए।
- TODAY() इस्तेमाल करती ages अपने-आप update होती हैं; एक जमे snapshot के लिए एक static date (Ctrl+;) इस्तेमाल कीजिए।
- याद रखने का hook: dates एक रूलर पर दिन-numbers हैं, तो date गणित बस arithmetic है।