दो सेटों का प्रतिच्छेदन कैसे प्राप्त करें


17

मेरे पास एक स्प्रेडशीट में दो सूचियाँ (अद्वितीय सेट) हैं और मैं दोनों के प्रतिच्छेदन प्राप्त करना चाहता हूँ।

क्या इसे करने का कोई आसान तरीका है?

यहाँ एक उदाहरण है जिसे मैं प्राप्त करना चाहता हूँ:

सूची 1 सूची 2 अपेक्षित परिणाम

 एक 1 ई
 बी 2 एफ
 ce      
 घ ४      
 एफई      
 च ६      

उदाहरण Google शीट


क्या आप हमारे साथ एक डॉक साझा कर सकते हैं और अपेक्षित परिणाम को थोड़ा समझा सकते हैं?
जैकब जान तुइस्ट्रा

जवाबों:


21

जीएएस में कूदने की आवश्यकता नहीं है, मानक स्प्रेडशीट फ़ंक्शन इसे आसानी से संभालते हैं।

कृपया अपने उदाहरण में एक सेल में निम्नलिखित पेस्ट करें

=iferror(filter($A$2:$A, match($A$2:$A, B2:$B , false)), "no match")

मैच समारोह जहां मिलान हो जाता है को छोड़कर त्रुटियों से भरा दो श्रृंखलाओं में से एक कार्तीय उत्पाद उत्पन्न करता है। जब कोई मिलान पाया जाता है तो यह दूसरी श्रेणी में एक सूचकांक देता है

फिल्टर समारोह दूर सब बकवास और रिटर्न केवल सही ढंग से अनुक्रमित मूल्यों फेंकता है।

IFERROR एक साफ परिणाम प्राप्त करने के अगर वहाँ सब पर कोई मिलान नहीं है मदद करता है।

श्रेणियाँ किसी भी लम्बाई की हो सकती हैं, जैसा कि $ A $ 2: $ A मुहावरे द्वारा इंगित किया गया है।


3

यह छोटी लिपि एक सूत्र के रूप में, दो श्रेणियों की तुलना करेगी:

function COMPARE(array1, array2) {
  var array = [];  
  for(i=0; i<array1.length; i++) {
    for(j=0; j<array2.length; j++) {
      if(array1[i][0] == array2[j][0]) {
        // the extra square brackets will make it a 2D array, 
        // aligning it vertically
        array.push([array1[i][0]]);
      }
    }
  }
  return array;
}

अपनी शीट में आप सेल D2 में निम्नलिखित सूत्र जोड़ सकते हैं:

=COMPARE(A2:A7,B2:B7)

उपकरण मेनू, स्क्रिप्ट संपादक के माध्यम से स्क्रिप्ट जोड़ें।


मैं सादे पुराने फार्मूले का स्वागत करता हूं। मैं उनके बारे में तुरंत सोच सकता था .....
जैकब जान टुंस्ट्रा

1
सकता है / नहीं किया जा सकता है .......
याकूब जन Tuinstra

1
धन्यवाद, @ जेकब! मेरे पास gDocs में फ़ार्मुलों का उपयोग करने का वास्तविक कारण कभी नहीं था - मुझे इस दुनिया में खोलने के लिए धन्यवाद!
नोमनेलके

3

यदि आप देख रहे हैं कि दो रेंज (श्रेणी 1 के तत्व जो कि रेंज 2 में नहीं हैं) का घटाव कैसे पा सकते हैं, जैसे:

List 1  List 2  Expected result

 a       1        a
 b       2        b
 c       e        c
 d       4        d
 e       f      
 f       6    

यहाँ आपके लिए एक सूत्र है:

=iferror(filter($A$2:$A, iserror(match($A$2:$A, B2:$B , false))), "no match")

0

यह छोटी लिपि एक सूत्र के रूप में, दो श्रेणियों की तुलना करेगी:

function intersect(array1, array2) {
  var array = [];  
  for(i=0; i<array1.length; i++) {
    for(j=0; j<array2.length; j++) {
      if(array1[i][0] == array2[j][0]) {
        // the extra square brackets will make it a 2D array, 
        // aligning it vertically
        array.push([array1[i][0]]);
      }
    }
  }
  return array;
}

अतिरिक्त:

function extersect(array1, array2) {
  var array = [];  
  var tmp = true;
  for(i=0; i<array1.length; i++) {
    for(j=0; j<array2.length; j++) {
      if(array1[i][0] == array2[j][0]) {
        // the extra square brackets will make it a 2D array, 
        // aligning it vertically
        tmp = false;
      }      
    }
    if(tmp == true) 
    {
      array.push([array1[i][0]]);
    }
    tmp = true;
  }
  return array;
}

अपनी शीट में आप सेल D2 में निम्नलिखित सूत्र जोड़ सकते हैं:

=intersect(A2:A7,B2:B7)

उपकरण मेनू, स्क्रिप्ट संपादक के माध्यम से स्क्रिप्ट जोड़ें।

= प्रतिच्छेदन (A2: A7, B2: B7) परिणाम देता है जो दोनों सरणियों पर मौजूद है array1, array2।

= एक्सट्रेक्ट (A2: A7, B2: B7) सरणी 1 का मान देता है जो बी 2 में मौजूद नहीं है: B7

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.