मैं COUNTIF फ़ंक्शन में दो अलग-अलग कॉलमों का उल्लेख कैसे कर सकता हूं?


11

मैं समझाने की पूरी कोशिश करूंगा। मान लीजिए कि मुझे एक शीट मिली है, जो इस तरह दिखाई देती है (इस आकस्मिक उदाहरण में, मान लीजिए कि मैं विभिन्न लोगों को विपणन ईमेल भेज रहा हूं, मुझे उनकी उम्र और ज़िप कोड पता हैं, और मैं उन ईमेलों में क्लिक दरों को ट्रैक करना चाहता हूं):

        A   |    B        |    C  
  1     Age |    zip code |  click?  
  2     26  |    11111    |  true  
  3     27  |    11112    |  true  
  4     28  |    11111    |  false  
  5     27  |    22222    |  false  
  6     28  |    11112    |  false  
  7     26  |    22222    |  true  

अब मैं विभिन्न आँकड़ों को ट्रैक करना चाहता हूँ। इस मामले में, मैं उम्र और ज़िप कोड द्वारा क्लिक दर को ट्रैक करना चाहता हूं। तो मुझे इस तरह से एक तालिका मिली है:

      E         F          G 
 1   Age  |  # sent  | # clicked
 2   26   |
 3   26   |
 4   27   |
 5   28   |

तो मूल रूप से "# भेजे गए" कॉलम में, मैं (उदाहरण के लिए F2 में) डाल सकता हूं:

=COUNTIF(A:A, E2)

और इसका परिणाम सेल 2 में 2 होगा, क्योंकि स्तंभ ए में "26" की दो घटनाएं थीं।

लेकिन अब क्या होगा अगर मैं जानना चाहता हूं कि कितने क्लिक किए गए? मैं कुछ कहना चाहता हूं:

=COUNTIF(A:A == E2  AND  C:C == True, for the same row where A:A matched E2)

मुझे पता है कि मैं एक सूत्र के साथ एक और कॉलम डी जोड़ सकता हूं जैसे

=IF(C2, A2, "")

जो कॉलम सी सही है लेकिन कॉलम डी में केवल उम्र ही होगी। लेकिन मेरे पास संभावित रूप से कई मानदंड हो सकते हैं और ऐसा नहीं लगता है कि मेरे पास प्रत्येक मानदंड कॉलम के लिए एक और "नकली" कॉलम जोड़ना होगा।

क्या इसे करने का कोई तरीका है? यदि Google डॉक्स में, एक्सेल में नहीं है?


नोट: नए Google शीट के लिए उत्तर नीचे है

जवाबों:


11

ARRAYFORMULA, SUM और अंकगणितीय ऑपरेशन के संयोजन का उपयोग करें

यहाँ 26 वर्ष के सभी क्लिकों को गिनने का कार्य है:

=ARRAYFORMULA(sum((A:A=26) * (C:C="true")))

इस ऑपरेशन के 3 भाग हैं।

  • ARRAYFORMULA निर्दिष्ट सीमा पर पाशन का ख्याल रखता है
  • योग सच परिणामों के सभी गिनती का प्रबंधन

अनिवार्य रूप से, सत्य को 1 में बदला जा रहा है और असत्य को 0. में परिवर्तित किया जा रहा है। अंकगणितीय संक्रियाओं का उपयोग करके बूलियन तर्क दिया जाता है।

एक और ऑपरेशन गुणन का उपयोग करता है:

  • (1 * 1) = 1 - (ट्रू && ट्रू) = ट्रू
  • (१ * ०) = ० - (सच्चा और गलत) = गलत
  • (० * ०) = ० - (गलत और गलत) = गलत

एक OR ऑपरेशन * SIGN फ़ंक्शन और जोड़ के संयोजन का उपयोग करता है :

  • चिन्ह (१ + १) = १ - (सच्चा) सत्य) = सत्य
  • चिन्ह (१ + ०) = १ - (सच्चा || गलत) = सच्चा
  • sign (0 + 0) = 0 - (गलत || गलत) = गलत

नोट: साइन फंक्शन आवश्यक है क्योंकि जिस तरह से बूलियन एडिशन अंकगणितीय जोड़ की तुलना में अलग तरीके से काम करता है। मूल रूप से बूलियन जोड़ 1 + 1 = 1, अंकगणितीय जोड़ 1 + 1 = 2 में। जाहिर है, अंकगणितीय जोड़ गिनती गड़बड़ कर देगा, इसलिए आपको साइन फ़ंक्शन के माध्यम से अतिरिक्त संचालन के परिणामों को चलाने की आवश्यकता है। यदि मान पॉजिटिव है, तो 0 और वैल्यू निगेटिव होने पर -1 होने पर साइन फंक्शन 1 लौटाता है।

कहते हैं कि आप 20-25 वर्ष के बीच के सभी उपयोगकर्ताओं के लिए क्लिकों की गणना करना चाहते थे:

=ARRAYFORMULA(sum(sign((A:A=20) + (A:A=21) + (A:A=22) + (A:A=23) + (A:A=24) + (A:A=25)) * (C:C="true")))

साइन की आवश्यकता नहीं है यहाँ यह है? bothउदाहरण के लिए, कोई भी सेल 20 और 23 नहीं हो सकती है , इसलिए इस मामले में जोड़ आपको कभी भी मूल्य नहीं देगा> 1। यदि शर्तों को पारस्परिक रूप से अनन्य नहीं है, तो केवल साइन की आवश्यकता होती है। इसके अलावा 20 और 25 के बीच आसानी से इस संस्करण के साथ नहीं किया जाएगा? =arrayformula(sum((A:A>=20)*(A:A<=25)*(C:C=TRUE)))
बैरी हुदैनी

मैं OR तर्क के सामान्य उपयोग की व्याख्या करने का प्रयास कर रहा था। यदि परीक्षण अनन्य नहीं थे (एक ही कॉलम में निहित) तो SIGN फ़ंक्शन आवश्यक होगा। इस मामले में यह नहीं है। और, हां आपका उदाहरण बेहतर तरीका होगा लेकिन OR के उपयोग को प्रदर्शित नहीं करता है। मैं ओपी के सवाल के साथ ओआर के उपयोग को प्रदर्शित करने के लिए एक सरलीकृत दृष्टिकोण के बारे में सोचने की कोशिश कर रहा था, लेकिन मैं स्पष्ट रूप से कफ के उदाहरणों के साथ आने में बहुत अच्छा नहीं हूं। यदि आपके पास कुछ बेहतर उदाहरण हैं, तो मैं आपको उत्तर को संपादित / सुधारने के लिए प्रोत्साहित करता हूं।
इवान प्लाइस

माफी, इवान, मुझे गलत समझा - यह एक उत्कृष्ट उदाहरण है।
बैरी हुदैनी

आप = सत्य से बच सकते हैं, इसलिए: = ARRAYFORMULA (राशि (A: A = 26) * C: C))
tic

1
@tic मैं बूलियन ट्रू का उपयोग नहीं कर रहा था (जो कि Google स्प्रेडशीट में सही है) मैं उस प्रश्न का 'सच' स्ट्रिंग का उपयोग कर रहा था जिसका उपयोग ऑप करता था। यह कोशिश करो, मुझे पूरा यकीन है कि यदि आप C: C के लिए मानों का परीक्षण करते हैं, तो यह हमेशा गैर-रिक्त स्ट्रिंग पर TRUE लौटाएगा। स्प्रेडशीट कोशिकाओं में Google जावास्क्रिप्ट पर एक्सेल नियमों से चिपक जाता है। टपका हुआ अमूर्त की मजेदार दुनिया में आपका स्वागत है।
इवान प्लाइस

10

अब तक, नया Google पत्रक COUNTIFS का समर्थन करता है, जो सीधे आवश्यक कार्य को संभाल सकता है।

=COUNTIFS(A:A, E2, C:C, "true")

अल्पविराम द्वारा अलग-अलग सभी श्रेणियों और तुलना को सूचीबद्ध करें।


4
मुझे पुरस्कृत करने के लिए धन्यवाद सभी तरह से नीचे स्क्रॉल करें। नई Google शीट के साथ काम करते समय यह उत्तर होता है।
क्रिस्टियान वेस्टरबेक

3

Excel में मैं Excel 2007 या बाद के संस्करण में Excel 2003 या COUNTIFS ("S") में SUMPRODUCT का उपयोग करूंगा। लेकिन Google डॉक्स में यह कोशिश करना

=arrayformula(sum((A:A=E2)*(C:C=TRUE)))


3
=COUNTA( IFERROR( FILTER('Guest List'!$G:$G ; 'Guest List'!$G:$G = "Yes" ; 'Guest List'!$L:$L = "USA" ) ) )

यह दो कॉलमों के लिए था- मैं अपनी शादी की अतिथि सूची के लिए इसका उपयोग कर रहा हूं- इस मामले में, एक बचत तारीख भेजने पर "हां" और स्थान के लिए "यूएसए" को सारणीबद्ध करना, इसलिए मैं बाद में डाक की गणना कर सकता हूं। एक छोटा सूत्र हो सकता है, लेकिन यह काम करने लगता है, इसलिए मैं इसके साथ खिलवाड़ नहीं कर रहा हूँ!

हैप्पी काउंटिंग।


1

एक्सेल में, मैं सूत्रों को भूल जाऊंगा, और पिवट टेबल का उपयोग करूंगा।

आपको एक "काउंटर" कॉलम जोड़ने की आवश्यकता हो सकती है, जिसका उपयोग उन चर के रूप में किया जा सकता है जिन्हें आप परिणाम प्राप्त करने के लिए योग करते हैं।


0

आप उस सरणी को जोड़ सकते हैं जिसे आप {} में परीक्षण करना चाहते हैं।

नीचे दिए गए उदाहरण में:

=countif({F2,H2,J2,L2,N2,P2,R2,T2,V2,W2},"TRUE")
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.