दो कॉलम को समेटें, डुप्लिकेट की तलाश करें नई कार्यपत्रक में एकल पंक्ति की प्रतिलिपि बनाएँ


0

मेरे पास 5,000 पंक्तियों और 20 स्तंभों के साथ एक एक्सेल या सीएसवी फ़ाइल है। मैं कॉलम 6 और कॉलम 8 को जोड़ना चाहता हूं , डुप्लिकेट की तलाश करता हूं और फिर डुप्लिकेट में से केवल एक को वर्कशीट 2 में कॉपी करता हूं।

उदाहरण के लिए :

Worksheet1

Column6  Column7     Column 8

275s     ABC         123

333s     ABC         111

275s     ZZZ         123

275s     DSD         123

333s     ???         111

275s     asd         999

कॉलेनेट 6 और कॉलम 8 के नतीजे बताएंगे कि पंक्तियाँ 1,3 और 4 डुप्लिकेट हैं।

पंक्ति 2 और 5 भी डुप्लिकेट हैं।

फिर वर्कशीट 2 होनी चाहिए:

Column6  Column7     Column 8

275s     ABC         123

333s     ABC         111

275s     asd         999

डुप्लिकेट से आपका क्या मतलब है? Column6 के लिए समान मूल्य? कौन सा मान Column7 abc, zzz या dsd में होना चाहिए। यह VBA के बिना भी किया जा सकता है।
वोजत दोहल

इसके अलावा, यह एक स्क्रिप्ट-लेखन सेवा नहीं है। हमें बताएं कि आपने क्या किया है और हम आपकी समस्याओं का पता लगाने में आपकी मदद कर सकते हैं।
वेरिएंट

कॉलम 7 केवल फ़िलर के लिए है .. तुलना के लिए केवल कॉलम 6 और 8 मामला।
लूटने

dic.CompareMode = vbTextCompare 'संवेदनशील मामला नहीं है। केस सेंसिटिव सेट tsIn = fso.OpenTextFile ("c: \ temp \ Input.csv") को सेट करें tsOut = fso.OpenTextFile ("c: \ temp \ output .csv") को tsIn.AtEndOfStream TheLine = tsInReadLine पर सेट करें। यदि TheLine <> "" तब यदि dic.Exists (TheLine) फिर दोहराएँ = True Else repeat = False dic.Add TheLine, TheLine End यदि Else दोहराएँ = गलत अंत नहीं तो दोहराएं। titeOut.WriteLine TheLine Loop tsIn.Close tsOut। बंद
लूटने

सुनिश्चित नहीं है कि एक अच्छे प्रारूप में कोड कैसे दर्ज किया जाए।
लूटने

जवाबों:


0

VBA आवश्यक नहीं हो सकता है। हेल्पर कॉलम यहाँ आपके मित्र हैं। नीचे दिए गए फ़ार्मुलों को आज़माएं

  1. मान रहा Column6है Eऔर Column 8है Gऔर नीचे सहायक कॉलम में शुरू कर रहे हैं Column9/H
  2. यदि आपके पास अपना डेटा है DataTable, तो आपके पास एक और वाक्यविन्यास विकल्प है

R1C1

  • =Concatenate( E2, F2, G2 ) <- H
  • =Concatenate( E2, G2 ) <- I
  • =CountIfs( I:I, I2 ) <- J
  • =Row() <- K
  • =IF( J2=1, H1, INDEX(H:H, AGGREGATE( 15,6,K:K/--(I:I=I2), 1 ) ) ) <- L

कॉलम Lकॉलम Hमें अद्वितीय संक्षिप्त मूल्य के लिए कॉलम में पहला पाया गया पंक्ति मान वापस कर देगा I। यदि आपका डेटासेट बहुत बड़ा है, तो Index( Aggregate() )विधि ओवरफ्लो हो सकती है और विफल हो सकती है। लेकिन यह काम करता है, आप एक नए वर्कशीट में Copy-Paste Values Onlyकॉलम से Lऔर डुप्लिकेट ( Alt+ A+ Mसंवाद को हटाने के लिए) कर सकते हैं। यदि आप स्तम्भ में संघटन का परिसीमन करते हैं H, तो यह नई वर्कशीट में मानों को स्तंभों में विभाजित करने में मदद करेगा।


पहले पास (क्षमा करें) पर DataTable सिंटैक्स पोस्ट करने के लिए थोड़ा बहुत आलसी। यदि आप स्वरूपित DataTables का उपयोग कर रहे हैं और Index( Aggregate() )विधि को स्थिर करने के लिए रूपांतरण का पता नहीं लगा सकते हैं , तो कृपया मुझे बताएं और मैं तदनुसार उत्तर को संपादित करूंगा।
पीटर वैंडिविर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.