सूत्रों का उपयोग करके मैं एक कॉलम में डुप्लिकेट कैसे पा सकता हूं?


11

क्या किसी कॉलम में डुप्लिकेट खोजने के लिए कोई सूत्र है? उदाहरण के लिए:

a
b
c
d
b
d

=somefunction(A1:A6)

आउटपुट:

b
d

मुझे पता है कि एक =unique()फ़ंक्शन है, यह मूल रूप से एक =not_unique()फ़ंक्शन है। सोच रहा था कि क्या बिना कोड का उपयोग किए इसका निर्माण किया जा सकता है।


इस सूत्र में एक उदाहरण है stackoverflow.com/questions/19843406/… इस पर एक नज़र है जो आपको कुछ विचार के साथ मिल सकती है।
विम्बू

रुको, आप जो देख रहे हैं वह एक not_uniqueफ़ंक्शन सही है? आप उन क्षेत्रों की तलाश करते हैं जो अद्वितीय (डुप्लिकेट) नहीं हैं, अद्वितीय नहीं हैं।
डेविड मुल्डर

जवाबों:



3

एक ही रास्ता मैंने पाया (सूत्रों का उपयोग करके) एक नया countकॉलम शुरू करने से ।

यदि आपके मान स्तंभ में सूचीबद्ध हैं A, तो पंक्ति पर शुरू करके 2, इसे कॉपी करने के लिए सूत्र =COUNTA(FILTER(A$2:A$7, A$2:A$7 = A2))में प्रवेश करें B2और नीचे खींचें। यह देता है:

| A: VALUE  | B: COUNT |
|-----------|----------|
|     a     |     1    |
|     b     |     2    |
|     c     |     1    |
|     d     |     2    |
|     b     |     2    |
|     d     |     2    |

अब जब हमारे पास प्रत्येक मान के होने की संख्या है, तो हम Aकॉलम को मानों से फ़िल्टर कर सकते हैं B। सेल में C2, सूत्र डालें =UNIQUE(FILTER(A2:A7, B2:B7 > 1))। यह देता है:

| A: VALUE  | B: COUNT | C: DUPS |
|-----------|----------|---------|
|     a     |     1    |    b    |
|     b     |     2    |    d    |
|     c     |     1    |         |
|     d     |     2    |         |
|     b     |     2    |         |
|     d     |     2    |         |

सूत्र की व्याख्या

=COUNTA(FILTER(A$2:A$7, A$2:A$7 = A2))

  • filterखंड का निरीक्षण Aस्तंभ, और जो एक ही मूल्य के रूप में सेल है कोशिकाओं पाता है A2( A2जब सूत्र को कॉपी इसी सेल के साथ बदल दिया गया है)।
  • counta मूल्यों (गैर-संख्यात्मक सहित) को गिना जाता है।

=UNIQUE(FILTER(A2:A7, B2:B7 > 1))

  • यह filterउन Bमानों के लिए स्तंभ की जांच करता है > 1, जो स्तंभ से संबंधित मान लौटाते हैं Auniqueसमारोह बस यकीन है कि हम केवल एक बार प्रत्येक मान है, तो हम मिल नहीं है बनाता है bदो बार उदाहरण के लिए,।

हालाँकि , स्क्रिप्ट फ़ंक्शन का उपयोग करने के लिए अधिक सुरुचिपूर्ण तरीका होगा:

function dups(rows) {
  var values = {};
  var duplicates = [];
  for (var i = 0; i < rows.length; i++) {
    var value = rows[i][0];
    if (values[value] !== undefined && duplicates.indexOf(value) == -1) {
      duplicates.push(value);
    } else {
      values[value] = true
    }
  }
  return duplicates;
}

पर जाएं टूल → स्क्रिप्ट संपादक , ऊपर कोड पेस्ट, और सहेजें। अब आप सूत्र को =dups(A2:A7)कहीं भी दर्ज करके फ़ंक्शन को कॉल कर सकते हैं । इसमें पाए गए डुप्लिकेट को वापस करता है A2:A7


मैंने दोनों उदाहरणों को प्रदर्शित करने के लिए एक उदाहरण स्प्रेडशीट की स्थापना की है , इसे देखने के लिए स्वतंत्र महसूस करें और इसे कॉपी करें।


var मान = {} के लिए var मान होना चाहिए = [] सही?
जैकब जान टुंस्ट्रा

1
दरअसल नहीं। valuesइसका उपयोग कुंजी-मूल्य के नक्शे के रूप में किया जाता है, न कि किसी सरणी के रूप में, ताकि यह जांचना आसान हो कि क्या हमने पहले से एक विशिष्ट मूल्य संसाधित किया है - या तो values[property]मौजूद है, या यह नहीं है।
विदर्भ एस। रामदल

1
मैंने सोचा था कि आप एक सरणी में धक्का कर रहे थे .... मैं अपने कोड का परीक्षण किया और यह डुप्लिकेट प्रविष्टियों दिखाने में के रूप में रहता है घ, डी, डी, डी ... । आपके द्वारा प्रदान किया गया सूत्र समाधान ऐसा नहीं करता है।
जैकब जान टुंस्ट्रा

1
मुझे आपत्ति थी।
बजे जैकब जान टुंस्ट्रा

1
@JacobJanTuinstra आह, हाँ - अब मैं देख रहा हूँ। कोड को ठीक किया।
विदर्भ एस। रामदल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.