13 मार्च 2015

Cardinal Numbers को Ordinal Numbers में कैसे बदलें

पहले तो यह जान लेना चाहिए कि ये Cardinal Numbers और Ordinal Numbers हैं क्या बला । तो भई 1,2,3,4….. वगैरह तो कार्डिनल नम्बर्स हैं और 1st, 2nd, 3rd, 4th.. सब ऑर्डिनल नम्बर्स हैं।

माइक्रोसॉफ्ट एक्सेल में हमें कई बार ऐसे डाटा प्रस्तुत करने होते हैं,जिसमें कि कार्डिनल नम्बर्स की बजाय ऑर्डिनल नम्बर्स लिखे जाने की जरूरत होती है। इसके लिए यूं तो कई तरीके हो सकते हैं, लेकिन नेट पर से छनाई करके मिले हुए ये दो तरीके मुझे अच्छे लगे-

1- उपलब्ध फंक्शन्स (IF, AND, MOD व CHOOSE) का प्रयोग करके। 

इस विधि में हमें कार्डिनल नम्बर्स से ऑर्डिनल नम्बर्स में परिवर्तित करने के लिए निम्नलिखित फॉर्मूला प्रयोग करना है (और विकल्प भी हो सकते हैं, पर मुझे तो यही समझ आया)। इसमें मैं मानकर चल रहा हूं कि जिस डाटा को आपने Cardinal Numbers से Ordinal Numbers में बदलना है, वह पहले से एक निश्चित सेल (जो कि हमारे इस उदाहरण में F2 है) में लिखा हुआ है।

=F2 & IF(AND(MOD(F2,100)>=10,MOD(F2,100)<=14),"th",CHOOSE(MOD(F2,10)+1,"th","st","nd","rd","th","th","th","th","th","th"))

 

यह तरीका समझने में आसान तो है, लेकिन इसमें एक कमी है कि अगर आपको एक सेल रेंज को अगर Cardinal से Ordinal नम्बर्स में बदलना पड़े तो हर सेल में फार्मूले में फेरबदल करना एक पेचीदा काम होगा।

2- प्रोग्रामिंग के जरिये।

इस दूसरे तरीके में आपको अपनी Excel की फाइल में थोड़ी सी प्रोग्रामिंग करके एक फंक्शन जोड़ना पड़ेगा। न ना  आप चिंता न करें, मैं आपको प्रोग्रामिंग सीखने को नहीं कह रहा। आपको ये steps को follow करना है, और आपकी ऐक्सल फाइल में एक नया फंक्शन जुड़ जाएगा, जिसे आप फार्मूले की तरह इस्तेमाल कर सकेंगे।

  • सबसे पहले तो आप अपनी उस फाइल को खोल लें, जिसमें वह फंक्शन use  करना है।
  • अब Alt + F11 (Alt और F11 को एक साथ) दबाएं, जिससे कि विजुअल बेसिक वाली स्क्रीन खुल जाए।
  • अब ऊपर मेन्युबार में से insert ---->  Module पर क्लिक करें। एक विंडो खुलेगी (जिसमें आप कोई प्रोग्रामिंग कर सकते हैं), इसमें आप नीचे लिखा कोड (यहां से कॉपी करके) पेस्ट कर दें।
  • अब Alt + Q दबाकर इस VBA स्क्रीन से बाहर आ जाएं। बस हो गया।

अब आपके पास एक्सेल में काम में लेने के लिए एक और फॉर्मूला तैयार है, जिससे आप आवश्यकता पड़ने पर उसी फाइल में प्रयोग कर सकते हैं। फंक्शन का नाम आप जो चाहे रख सकते हैं (पर पहले से उस नाम का कोई फंक्शन न हो)। इस उदाहरण में फंक्शन का नाम है- Addth और कोड है-

 

Function Addth(pNumber As String) As String
Select Case CLng(VBA.Right(pNumber, 1))
Case 1
Addth = pNumber & "st"
Case 2
Addth = pNumber & "nd"
Case 3
Addth = pNumber & "rd"
Case Else
Addth = pNumber & "th"
End Select
Select Case VBA.CLng(VBA.Right(pNumber, 2))
Case 11, 12, 13
Addth = pNumber & "th"
End Select
End Function