कुछ कॉलम के आधार पर डुप्लिकेट पंक्तियों को कैसे हटाया जाए


11

मेरे पास एक एक्सेल शीट है जिसमें डुप्लिकेट पंक्तियाँ हैं

मैं एक पंक्ति को हटाना चाहता हूं यदि उसके एसीडीईएफ कॉलम समान हैं (डुप्लिकेट की गणना करते समय बी को अनदेखा करें लेकिन एक पंक्ति को हटाते समय इसे हटा दें)

फिलहाल यह तुलना के साथ-साथ विलोपन के दौरान B को अनदेखा करता है।


क्या आप पहले और इच्छित के बाद एक स्क्रीन शॉट जोड़ सकते हैं? मैं चित्र के लिए संघर्ष कर रहा हूँ जो आपको चाहिए (क्षमा करें)
डेव

तो कॉलम A, C, D, E, F में कोई भी डुप्लिकेट वैल्यू डुप्लिकेट का पहला उदाहरण रखते हुए, पूरी पंक्ति को हटाने का परिणाम होगा? क्या होगा यदि A1 A2 से मेल खाता है, लेकिन C2 C3 से मेल खाता है, क्या पंक्ति 2 हटा दी जाती है?
रेस्टाफेरियन

जवाबों:


18

एक्सेल 2013 में

  1. सभी डेटा का चयन करें
  2. डेटा टैब चुनें -> डुप्लिकेट निकालें
  3. यदि आपके डेटा में कॉलम हेडर हैं, तो 'मेरे कॉलम में हेडर हैं' जांचें।
  4. उन सभी स्तंभों को अनचेक करें जिनकी आप तुलना में उपयोग नहीं करना चाहते हैं
  5. ओके दबाओ

किया हुआ


नहीं, यह उन पंक्तियों के लिए दिखता है जो अन्य पंक्तियों के समान हैं। मैंने भी इसके बारे में सोचा था, लेकिन यह एक अलग सवाल का हल है :)
गैरुलिनै

@Garrulinae आप क्या कह रहे हैं, क्या आप बता सकते हैं कि यह कैसे काम नहीं करता है? यह ओपी के सवाल का सही जवाब लगता है।
TheCrazyProgrammer

@ TheCrazyProgrammer - 2 साल बाद इसे देखते हुए, मैं देख सकता हूं कि ओपी का सवाल " मैं एक पंक्ति को हटाना चाहता हूं अगर उसके एसीडीईएफ कॉलम समान हैं " दो अलग-अलग तरीकों से व्याख्या की जा सकती है। मैंने इसका मतलब यह निकाला कि यदि इस पंक्ति के भीतर ये कॉलम एक-दूसरे के समान हैं । यह उत्तर मानता है कि इसका अर्थ यह है कि यदि इस पंक्ति के स्तंभों में मान दूसरी पंक्ति के समान हैं । दृष्टिहीनता में, यह धारणा सही प्रतीत होती है, खासकर जब से इसे सही उत्तर के रूप में चिह्नित किया गया है।
गरुलीना

@Garrulinae गोथा अब मैंने आपके उत्तर को देखा और समझा। एक साइड नोट पर, मुझे आश्चर्य है कि ओपी (और मेरे) द्वारा आवश्यक कार्यक्षमता एक्सेल में एक सीधा बटन के रूप में मौजूद है, लेकिन googling आपको जटिल चीजों को करने वाले लेखों का एक गुच्छा देता है जो एक पल के लिए मुझे इस उत्तर पर संदेह करते हैं।
theCrazyProgrammer 15

@ TheCrazyProgrammer, मेरे पास एक साइड नोट भी है - मैंने केवल यह महसूस किया है कि यह ओपी था जिसने इस उत्तर को पोस्ट किया था! यह स्पष्ट रूप से सही उत्तर है, लेकिन यह शर्म की बात है कि सवाल अधिक स्पष्ट नहीं था।
गैरुलिनाई

1

अगर मैंने आपको सही तरीके से समझा, तो पंक्तियों 1 और 2, आप एक पंक्ति 2 को हटाना चाहते हैं यदि और केवल अगर A1 = A2, C1 = C2, D1 = D2, E1 = E2 और F1 = F2।

मैंने ये ढूंढ निकाला। यह शायद कम हो सकता है लेकिन यह चाल करता है:

Sub DeleteDuplicate()
Dim current As String
ActiveSheet.Range("A1").Activate
Do While ActiveCell.Value <> ""
    current = ActiveCell.Address
    ActiveCell.Offset(1, 0).Activate
    Do While ActiveCell.Value <> ""
        If ((ActiveSheet.Range(current).Value = ActiveCell.Value) And (ActiveSheet.Range(current).Offset(0, 2).Value = ActiveCell.Offset(0, 2).Value) And (ActiveSheet.Range(current).Offset(0, 3).Value = ActiveCell.Offset(0, 3).Value) And (ActiveSheet.Range(current).Offset(0, 4).Value = ActiveCell.Offset(0, 4).Value) And (ActiveSheet.Range(current).Offset(0, 5).Value = ActiveCell.Offset(0, 5).Value)) Then
            ActiveSheet.Rows(ActiveCell.Row).Delete
        Else
        ActiveCell.Offset(1, 0).Activate
        End If
    Loop
    ActiveSheet.Range(current).Offset(1, 0).Activate
Loop
End Sub

यह क्या करता है सभी शेष लाइनों के माध्यम से लूप का मूल्यांकन किया जा रहा है, और वर्तमान चर में "मूल" पंक्ति के सेल को संचय करने के लिए ActiveCell का उपयोग करके शेष लाइनों के माध्यम से लूप है । एक बार लूप समाप्त होने के बाद, करंट के नीचे की सेल सक्रिय हो जाती है और आंतरिक मूल्यांकन लूप फिर से शुरू हो जाता है।

अगर मैंने कहीं गड़बड़ की तो मुझे बताने में संकोच न करें :)


1

इस सूत्र को प्रत्येक पंक्ति में जोड़ें, उदाहरण के लिए; कॉलम G में:

=IF(AND(A2=C2,A2=D2,A2=E2,A2=F2),"DELETE ME","")

यह एक परिणाम की तरह देगा:

A   B   C   D   D   F   G
-   -   -   -   -   -   -
x   o   x   x   x   x   DELETE ME
x   x   x   x   x   o   
x   x   x   x   x   x   DELETE ME
x   o   o   x   x   x   

फिर उन पंक्तियों के लिए कॉलम G पर एक फ़िल्टर बनाएं, जो 'DELETE ME' कहते हैं, और उन्हें हटा दें।


0

@ गर्रूलिनाई

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

आशा है कि यह किसी की मदद करता है ...।


2
मैं पूरी तरह से समझ नहीं पाया कि आप क्या कह रहे हैं। आपने जो किया उसका वर्णन करने के बजाय, क्या आप हमें दिखा सकते हैं कि आपने क्या फार्मूला (ओं) का उपयोग किया है, और कुछ उदाहरण डेटा प्रस्तुत करते हैं, और दिखाते हैं कि आपका जवाब उस डेटा पर कैसे काम करता है?
स्कॉट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.