सूत्र चुनौती - अनुक्रम कोड से बाहर झंडा - पहेली

विषय - सूची

समस्या

हमारे पास अल्फ़ान्यूमेरिक कोड की एक सूची है। प्रत्येक कोड में 3 अंकों की संख्या के बाद एक अक्षर (A, B, C, आदि) होते हैं। ये कोड वर्णमाला क्रम में दिखाई देने चाहिए, लेकिन कभी-कभी वे क्रम से बाहर हो जाते हैं। हम आउट-ऑफ-सीक्वेंस कोड को फ़्लैग करना चाहते हैं।

चुनौती # 1

"चेक" कॉलम में कौन सा सूत्र एक "x" कोड के बगल में होगा जो अनुक्रम से बाहर है? इस चुनौती में, हम केवल यह जाँच रहे हैं कि कोड का * संख्यात्मक * भाग अनुक्रम से बाहर है, ऐसा नहीं है कि अक्षर स्वयं अनुक्रम से बाहर है।

चुनौती # 2

यदि कोड "A, B, C," का "अल्फ़ा" भाग अनुक्रम से बाहर है, तो जाँच करने के लिए ऊपर दिए गए सूत्र को कैसे बढ़ाया जा सकता है? उदाहरण के लिए, हमें "A" से शुरू होने वाले कोड को फ़्लैग करना चाहिए यदि यह "C" या "B" से शुरू होने वाले कोड के बाद दिखाई देता है।

नीचे वर्कशीट डाउनलोड करें और चुनौती लें!

नोट: कार्यपुस्तिका में 2 शीट हैं, एक चैलेंज # 1 के लिए, एक चैलेंज # 2 के लिए।

संकेत - यह वीडियो इस तरह की समस्या को हल करने के लिए कुछ सुझाव दिखाता है।

मान्यताओं

  1. सभी कोड में हमेशा चार अक्षर होते हैं: 1 अपरकेस अक्षर + 3 नंबर।
  2. प्रति अक्षर कोड की संख्या यादृच्छिक है, लेकिन संख्यात्मक मानों में कोई अंतराल नहीं होना चाहिए।
  3. केवल पहले कोड को अनुक्रम से बाहर एक पत्र के साथ चिह्नित करना आवश्यक है, बाद के सभी कोड नहीं।
उत्तर (विस्तार के लिए क्लिक करें)

यहाँ कुछ काम कर रहे समाधान हैं। यह समझना महत्वपूर्ण है कि एक्सेल में सामान्य समस्याओं को हल करने के कई, कई, तरीके हैं। नीचे दिए गए जवाब सिर्फ मेरी व्यक्तिगत पसंद हैं। नीचे दिए गए सभी सूत्रों में, यदि आप अधिक जानकारी चाहते हैं, तो फ़ंक्शन नाम क्लिक करने योग्य हैं।

चुनौती # 1

मैं मूल रूप से इस सूत्र के साथ गया था:

=IF((LEFT(B5)=LEFT(B6))*(MID(B5,2,3)+1MID(B6,2,3)+0),"x","")

नोट MID पाठ वापस करता है। 1 को जोड़कर और शून्य को जोड़कर, हम एक्सेल को टेक्स्ट को एक संख्या में जमा करने के लिए प्राप्त करते हैं। IF के अंदर लॉजिकल टेस्ट के अंदर गुणा एक और नेस्टेड IF से बचने के लिए बूलियन लॉजिक का उपयोग करता है। मुझे यकीन नहीं है कि मैंने राइट का उपयोग क्यों नहीं किया, जो यहां भी ठीक काम करेगा।

यह भी ध्यान दें कि LEFT को वर्णों की संख्या की आवश्यकता नहीं है और यदि उपलब्ध नहीं कराया गया है तो पहले वर्ण को लौटाएगा।

नीचे दी गई कुछ चतुर प्रतिक्रियाओं के आधार पर, हम थोड़ा और अनुकूलन कर सकते हैं:

=IF((LEFT(B5)=LEFT(B6))*(MID(B6,2,3)-MID(B5,2,3)1),"x","")

यहाँ, MID से MID को घटाने का गणित संचालन स्वचालित रूप से पाठ मानों को संख्याओं के साथ जोड़ता है।

चुनौती # 2

इस समाधान के लिए, मैंने कई नेस्टेड आईएफएस का उपयोग किया (पठनीयता के लिए लाइन ब्रेक जोड़ा गया):

=IF(LEFT(B5)=LEFT(B6), IF((MID(B5,2,3)+1MID(B6,2,3)+0),"x",""), IF(CODE(B5)+1CODE(B6),"x",""))

मैंने ऐसा इसलिए किया क्योंकि पहला परीक्षण LEFT (B5) = LEFT (B6) यह निर्धारित करता है कि क्या हम संख्याओं या अक्षरों की जाँच कर रहे हैं। यदि पहला वर्ण समान है, तो हम उपरोक्त संख्याओं की जाँच कर रहे हैं। यदि नहीं, तो हम केवल पहले अक्षर की जाँच कर रहे हैं।

ध्यान दें कि CODE फ़ंक्शन पहले वर्ण की एससीआई संख्या लौटाएगा यदि पाठ स्ट्रिंग में 1 से अधिक वर्ण हों। यह एक हैक की तरह लगता है, और यह शायद कोड को कम समझ में आता है, लेकिन यह काम करता है :)

यदि यह आपकी संवेदनाओं को समाप्त करता है, तो बस पहले वर्ण को वितरित करने के लिए CODE के अंदर के रूप में LEFT का उपयोग करें।

दिलचस्प लेख...