मुझे भी ऐसी ही समस्या का समाधान करना पड़ा था। मेरा दृष्टिकोण बदसूरत और अक्षम था, लेकिन इसने काम किया।
मैंने एक दूसरा कॉलम बनाया, जिसमें यह देखा गया था कि क्या आसन्न सेल वैल्यू वह थी जो मैं देख रहा था, और यदि ऐसा है, तो सेल में दिए गए सेल के मान को 0 से अधिक नंबर दें।
मैंने एक तीसरा कॉलम बनाया, जहां प्रत्येक सेल ने कॉलम 2 में आसन्न सेल को देखा, और यदि मान इसके नीचे वाले से अधिक था, तो सेल के पंक्ति तक तीसरे कॉलम में 0+ का अधिकतम मूल्य देने के लिए। । यदि नहीं, तो यह एक खाली मान छोड़ देता है ("") इस तरह मैं एक अनुक्रमिक पहचानकर्ता संख्या डालने में सक्षम था।
मैंने एक चौथा स्तंभ बनाया, जहां स्तंभ 3 में आसन्न सेल को देखा, और यदि स्तंभ 2 से उस पंक्ति का मान रखने के लिए, रिक्त को छोड़कर कोई भी मान था।
मैंने तब एक पांचवां स्तंभ बनाया, जो 1 से शुरू हुआ, और प्रत्येक पंक्ति पिछली पंक्ति की तुलना में एक अधिक थी, जो कॉलम 3 से अधिकतम मान तक थी।
मैं छठा स्तंभ बनाकर समाप्त हुआ, जिसमें लुकअप फंक्शन का उपयोग किया गया था। लुकअप मान कॉलम 5 में आसन्न सेल होगा। रेंज 3 कॉलम होगा और 4. मुझे लगता है कि यह कॉलम 4 के मूल्य से बाहर होगा।
मैं एक रन के रूप में समान मूल्यों के अनुक्रम को परिभाषित करता हूं। स्तंभ 5 पर प्रत्येक संख्या एक रन का प्रतिनिधित्व करती है। कॉलम 6 में प्रत्येक संख्या उस रन के आकार का प्रतिनिधित्व करती है। यह आपको प्रत्येक रन के आकार को उत्पन्न करने की अनुमति देता है।
जैसा मैंने कहा, यह इस बारे में जाने के लिए एक बदसूरत तरीका है, और शायद वीबीए में बहुत क्लीनर लिखा जा सकता है, लेकिन यह प्रभावी है।