2012-01-05 16 views
7

संदर्भ: मैं एक्सेल में पूर्व वर्ष डेटा दर्ज कर रहा हूं।एक्सेल को वर्तमान वर्ष की बजाय कॉलम में स्वचालित रूप से पहले वर्ष भरने के लिए कैसे मजबूर किया जाए?

हर बार (सितम्बर 16 वीं के लिए "9/16") मैं तारीख स्तंभ में तारीख में टाइप, एक्सेल स्वचालित रूप से इसे प्रारूप करने के लिए "9/16/12", जहाँ 12 2012, चालू वर्ष है।

मैं पिछले वर्ष 2012 से पिछले वर्ष से डेटा दर्ज कर रहा हूं। मैं 2011 के लिए "11" टाइप नहीं करना चाहता हूं। मैं चाहता हूं कि एक्सेल स्वचालित रूप से इसे 2012 के साथ करता है, जैसा कि यह करता है 31 दिसंबर

सरलतम 2011 में किसी भी समय विंडोज़ में घड़ी को सेट करना है, लेकिन यह नेटवर्क के साथ मिलना चाहता है जो मुझे वापस सेट करना चाहता है और मेरे नेटवर्क पासवर्ड के बारे में शिकायत करना चाहता है आदि।

मैं एक कॉलम में रहने की तारीख पसंद करता हूं, इसलिए दिन/महीने/वर्ष के लिए वैकल्पिक कॉलम पर टैबबिंग मेरे लिए एक विकल्प नहीं है।

कोई सोचता है कि यह एक साधारण फिक्स है, लेकिन कुछ घंटों की खोज और मेरा Google-fu मुझे विफल कर रहा है।

+0

आप कुछ घंटों में बहुत से/11'ns टाइप कर सकते हैं, शायद एक ऑटोहोटीकी स्क्रिप्ट आपको इस चाल को करने में मदद कर सकती है। – Arnoldiusss

+0

चार कॉलम कैसे: पहले महीने टाइप करें, दिन का दूसरा प्रकार, और तीसरा "11" है जिसे आप पूरे कॉलम को स्वतः भर सकते हैं। चौथा स्तंभ '= बी 2 और "/" और सी 2 और "/" और डी 2' जैसे सूत्र हो सकता है। एक कोशिश लायक़? – bozdoz

+2

@bozdoz: तो आप बेहतर 'DATE' फॉर्मूला का उपयोग करेंगे जो ** ** ** एक तिथि – JMax

उत्तर

9

एक त्वरित फिक्स केवल 9/16 दर्ज करना है और Excel को इसे 9/16/12 में बदलना है। फिर जब आप सभी अपनी तिथियों में प्रवेश कर रहे हैं, तो नए कॉलम में, फॉर्मूला =A1-365 दर्ज करें, और फॉर्मूला को सभी तरह से कॉपी करें, मान लें कि कॉलम ए में आपके द्वारा दर्ज की गई तिथियां हैं।

इस पर एक घड़ी-आउट: 2012 एक लीप वर्ष है, इसलिए 28 फरवरी के बाद किसी भी तारीख के लिए, आप अपना फॉर्मूला =A1-365.25 होना चाहिए या अन्यथा आपकी तिथियां एक दिन तक बंद हो जाएंगी। यह 365.25 होना चाहिए, 365 से बड़ा और 366 से छोटा कुछ।

यह काम करता है क्योंकि सेल में दिनांक प्रारूप क्या है, एक्सेल वास्तविक तिथि को जनवरी से बीत चुके दिनों की संख्या के रूप में संग्रहीत करता है 0, 1 9 00. (हाँ, जनवरी 0 वास्तविक तिथि नहीं है, लेकिन एक्सेल सोचता है कि यह है।)

+0

धन्यवाद; यह सबसे सरल फिक्स लगता है और सेल में संग्रहीत चीज़ों पर कुछ अच्छी जानकारी है। – JoshDM

+0

16 सितंबर 2012 की तारीख से 365.25 घटाकर 16 सितंबर 2011 को 6 बजे की तिथि/समय देगी। अतिरिक्त 18 घंटे किसी भी अन्य सूत्रों में मूल्य का उपयोग होने पर सभी प्रकार के मुद्दों का कारण बन सकता है। – YowE3K

5

जो आपने पाया वह सही है, आप तिथि के बारे में डिफ़ॉल्ट एक्सेल पैरामीटर नहीं बदल सकते हैं। सिस्टम तिथि बदलने के अलावा, आप वर्कशीट इवेंट फॉर्मूला का उपयोग कर सकते हैं:

Private Sub Worksheet_Change(ByVal Target As Range) 
If Intersect(Target, [A:A]) Is Nothing Then Exit Sub 
If IsDate(Target) Then 
    Application.EnableEvents = False 
    Target.Value = DateSerial(2011, Month(Target), Day(Target)) 
    Application.EnableEvents = True 
End If 
End Sub 
+0

धन्यवाद; यह समाधान अन्य प्रस्तावित समाधान की तुलना में मेरे स्वाद के लिए थोड़ा अधिक जटिल है। – JoshDM

1

उत्तर के लिए धन्यवाद - मुझे यह वही समस्या थी। मैं स्टीवब के समाधान में थोड़ा सा संशोधन करना चाहता था। ओपी की तरह मुझे पिछले साल से "/ 11" टाइप किए बिना डेटा दर्ज करने की आवश्यकता थी, लेकिन 2011 में दर्ज की जाने वाली सभी तिथियां 2011 में नहीं थीं (मैं 200 9 और 2010 में भी तारीखों में प्रवेश कर रहा था, जिसके लिए मेरे पास होगा वैसे भी वर्ष में मैन्युअल रूप से प्रवेश करने के लिए भले ही मैंने 2011 में विलंब नहीं किया था!)। मैं 2011 की तारीखों के साथ एक वर्ष तक '0 9 -10 'में तारीखों को वापस सेट नहीं करना चाहता हूं। मेरा समाधान निम्न सूत्र के साथ एक दूसरा आसन्न स्तंभ स्थापित करना था। मान लीजिए कि मैं कॉलम ए में तारीख टाइप कर रहा हूं और कॉलम बी को "सही" कॉलम बनाया है; कॉलम बी में सूत्र है: = आईएफ (ए 1> 40908, आईएफ (ए 1> 40 9 67, ए 1-366, ए 1-365), ए 1) इस तरह, 2011 से पहले की तारीखों को सही नहीं किया जाएगा, और हम भी खाते हैं तथ्य यह है कि 2012 एक लीप वर्ष है इसलिए 2/28 के बाद किसी भी तारीख को 365 के बजाय 366 दिनों तक वापस सेट किया जाएगा। तो अब, मैं किसी भी तारीख को टाइप कर सकता हूं जैसे कि यह अभी भी 2011 है। यह अच्छा है अगर आप तिथि नहीं बदल सकते/विंडोज़ में समय क्योंकि आपका संस्थान आपको अपने # $% पर प्रशासनिक विशेषाधिकार नहीं देता है! कार्य केंद्र। यह मूल पोस्ट के कुछ दिन बाद हो सकता है लेकिन मुझे आशा है कि इससे मदद मिलती है।

3
  • अपनी एक्सेल स्प्रेडशीट में तिथियों के कॉलम को हाइलाइट करें जहां आप वर्ष बदलना चाहते हैं।
  • टूलबार में, प्रारूप का चयन करें, कक्ष का चयन करें, और श्रेणी के अंतर्गत, दिनांक चुनें। विकल्पों के कॉलम में यह दिनांक प्रारूप के लिए ऑफ़र करता है, दिनांक प्रारूप का चयन करें जो महीने वर्तनी, दिन संख्या, अल्पविराम, स्थान, 4-अंकों का वर्ष दिखाता है (यानी 31 जनवरी, 2011)। सुनिश्चित करें कि 4-अंकों के वर्ष से पहले एक जगह है।
  • संपादन मेनू के अंतर्गत "बदलें" कमांड खोजें (स्थान मैक या पीसी और एक्सेल संस्करण # के आधार पर भिन्न होता है)
  • प्रतिस्थापन विंडो में, उस डेटा के लिए फ़ील्ड में, जिसे आप प्रतिस्थापित करना चाहते हैं, उस 4-वर्ष वर्ष में दर्ज करें कि आप प्रतिस्थापित करना चाहते हैं। दूसरे फ़ील्ड में जिस डेटा के साथ आप पुराने डेटा को प्रतिस्थापित करना चाहते हैं, सही वर्ष दर्ज करें। "सभी को बदलें" के लिए उस विंडो में बटन क्लिक करें।
  • स्प्रेडशीट में आपका हाइलाइट किया गया कॉलम अब सभी 4-अंकों के वर्षों को नए नंबर पर बदल देगा।
  • यदि आप उन सभी वर्षों को उस कॉलम में बदलना नहीं चाहते थे, तो मुझे लगता है कि आप उनमें से कुछ को अनदेखा कर सकते थे, और वे छोड़ दिए गए थे।
  • बाद में, आप कॉलम को हाइलाइट कर सकते हैं, प्रारूप, सेल, दिनांक में वापस जा सकते हैं, और दिनांक प्रारूप को रीसेट कर सकते हैं जो आपको पसंद है, जैसे 1/31/11।
1

मैं इसे यहां किसी के लिए छोड़ रहा हूं, जैसे कि JMax का उत्तर। Ths संस्करण कार्यपुस्तिका में सभी चादरों पर काम करता है (और इस प्रकार कार्यपुस्तिका की स्क्रिप्ट में रखा जाना चाहिए, कार्यपत्रक नहीं) और केवल वर्तमान वर्ष वाले प्रविष्टियों को बदलता है। चालू वर्ष के लिए मूल्य और पिछले वर्ष के लिए स्वचालित रूप से सेट कर रहे हैं।

Dim This_Year As Integer 
Dim Last_Year As Integer 

Private Sub Workbook_Open() 
    This_Year = Year(Date) 
    Last_Year = This_Year - 1 
End Sub 

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) 
    If Intersect(Target, [A:A]) Is Nothing Then Exit Sub 
    If IsDate(Target) And Year(Target) = This_Year Then 
     Application.EnableEvents = False 
     Target.Value = DateSerial(Last_Year, Month(Target), Day(Target)) 
     Application.EnableEvents = True 
    End If 
End Sub 
0

सरल तय है कि आप केवल तिथि और महीने दर्ज करें और सिस्टम को डिफ़ॉल्ट तिथि दर्ज करें। उसके बाद 2011 के साथ (Ctrl + H) 2012 को प्रतिस्थापित करें।

संबंधित मुद्दे