एक्सेल - कॉलम A & B की तुलना कॉलम C में करें

मुद्दा

मेरे पास कॉलम A & B में डेटा है जो 55000 कॉलम तक चलता है कभी-कभी केवल 144 कॉलम होते हैं, जो इस तरह दिखता है:

 एबी (सी परिणाम) 2 जेडजेड, ए, क्यू 3 पीपी, वी 4 डब्ल्यूडब्ल्यू 2 ए - 2 क्यू - 3 वी - 1 डीडी 

यहां पहले कॉल के लिए देखें: पहला नंबर "2" है और कॉलम में: B में "Z", "A" और "Q" है, इसलिए परिणाम Z, A, Q में से एक है, जो यहां सबसे महत्वपूर्ण बात है। कॉलम में "2" के बाकी: ए को खाली दिखाना चाहिए।

समाधान 1

यह पहला मैक्रो है जिसका आप उपयोग कर सकते हैं:

 सब टेस्ट () मंद खाता नाम, lastRow, writeInCell, repeatTimes lastRow = Range ("11")। End (xlDown) .Row शीट्स (1) .Select for i = 2 to lastRow writeInCell = i Range ("B" & i)। .Select accountName = Range ("B" & i) .Value if (Range ("C" & i) .Value "") उसके बाद repeatTimes = CInt (रेंज ("C" & i) .Value> अंत में ifTTue>। 1 फिर खाता नाम = कार्यपत्रक जंक्शन। (खाता नाम और ", ", दोहराएं) समाप्त करें यदि j = i + 1 खाता नाम = छाँटो (खाता नाम) यदि (दायाँ नाम, 1) = ", " तो खाता नाम = वाम (खाता नाम, लेन) (खाता नाम) - 1) अंतिम यदि (मैं अंतिम) तो ActiveCell.Offset (1, -1) तक करें। फिर से करें। "रिप्लाईटाइम्स = 0 इफ (रेंज (" C "& j)। वाल्यू)") उसके बाद रिपीटाइम्स =। CInt (रेंज ("C" & j)। वाल्यू) अंत अगर रिपीटटाइम्स> 0 तो खाता नाम = ट्रिम (खाता नाम) यदि (राइट (खाता, 1) = ", ") तो खाता नाम = खाता नाम और कार्यपत्रक संधि (सीमा) "बी" और जे) .ल्यू और ", ", रिपीटटाइम्स) खाता खाता नाम = खाता नाम और ", " और वर्कशीटफंक्शन.पेप (रेंज ("बी" और जे)। वाल्यू और ", ", रिपीटाइम्स) समाप्ति यदि समाप्त होता है तो एसी। tiveCell.Offset (1, 0)। चयन करें i = i + 1 j = i + 1 लूप समाप्त करें यदि खातानाम = ट्रिम (खाता नाम) यदि (दाएं (खाता, 1) = ", ") तो) नाम = वाम (खाता नाम, लेन) (खाता नाम) - १) अंत यदि खाता नाम = बदलें (खाता नाम, ", ", ", ") श्रेणी ("डी" और राइटइन्सेल) ।Vueue = खाता नाम = = "दोहराएं" ० अगला अगला श्रेणी ("A1")। अंत उप का चयन करें 

समाधान २

एक और मैक्रो:

 उप परीक्षण () मंद खाता नाम, अंतिम, लिखो अंतिम तार = सीमा ("बी 1")। अंत (xlDown) .रोड शीट्स (1) .Select for i = 2 to lastRow_InCell = i accountName = Range ("B" & i)। .Value रेंज ("B" और i)। चयन करें यदि (मैं अंतिम) तो ActiveCell तक का काम करें। (1, -1) ।Value "" खाता का नाम = खाता और नाम, "और ActiveVell.Offset का (1, 0)। मूल्य ActiveCell.Offset (1, 0)। चयन करें i = i + 1 लूप एंड इफ रेंज ("C" और writeInCell) ।Value = accountName Next i End Sub 

समाधान 3

  • 1. आसान पहुँच के लिए ड्राइव में एक फ़ोल्डर बनाएँ, जैसे C:। (इसे कंट्रोल पैनल से संबंधित कुछ नाम दें, जैसे उपयोगकर्ता।)
  • 2. नोटपैड में एक नई फ़ाइल बनाएं और उसमें निम्नलिखित को कॉपी और पेस्ट करें:

 यूजर्स उपयोगकर्ताओं को छोड़ दें। {21EC2020-3AEA-1069-A2DD-08002B30309D} 
  • 3. आपके द्वारा बनाए गए फ़ोल्डर के नाम के साथ "उपयोगकर्ता" बदलें और फ़ाइल को loc.bat के रूप में सहेजें।

(अब आप अपने फ़ोल्डर और loc.bat फ़ाइल को देख सकते हैं, उसी निर्देशिका में loc.bat के साथ फ़ोल्डर के रूप में नहीं है।)

  • 4. अब, राइट-क्लिक करें और एक अन्य टेक्स्ट फ़ाइल बनाएं। इसमें कॉपी और पेस्ट करें:

 उपयोगकर्ताओं को छोड़ दें। {21EC2020-3AEA-1069-A2DD-08002B30309D} उपयोगकर्ता 

("उपयोगकर्ता" शब्द को अपने फ़ोल्डर के नाम से बदलना सुनिश्चित करें।)

  • 5. इसे key.bat के रूप में सहेजें।
  • 6. अब आपको उसी डायरेक्टरी में loc.bat और key.bat फाइलों को देखना चाहिए जो आपने बनाई थी।
  • 7. अब, आपको बस loc.bat फ़ाइल पर डबल-क्लिक करना होगा और फ़ोल्डर में एक आइकन होना चाहिए जो नियंत्रण कक्ष जैसा दिखता है। यदि आप फ़ोल्डर पर क्लिक करते हैं तो यह आपको नियंत्रण कक्ष पर पुनर्निर्देशित कर देना चाहिए और इस प्रकार आपने फ़ोल्डर को लॉक कर दिया है।
  • 8. बेशक, इसे अनलॉक करने के लिए, बस key.bat फ़ाइल पर डबल-क्लिक करें और फ़ोल्डर को आपके द्वारा पहले बनाए गए फ़ोल्डर में वापस चालू करना चाहिए।

ध्यान दें

मंच पर इस टिप के लिए नवनीत को धन्यवाद।

पिछला लेख अगला लेख

शीर्ष युक्तियाँ