अद्वितीय मूल्यों की गणना करने के लिए सरल पिवट टेबल


134

यह सीखने के लिए एक साधारण पिवट टेबल की तरह लगता है। मैं एक विशेष मूल्य के लिए अद्वितीय मानों की गिनती करना चाहूंगा, जिन पर मैं समूह बना रहा हूं।

उदाहरण के लिए, मेरे पास यह है:

ABC   123
ABC   123
ABC   123
DEF   456
DEF   567
DEF   456
DEF   456

मैं जो चाहता हूं वह एक धुरी तालिका है जो मुझे यह दिखाती है:

ABC   1
DEF   2

मेरे द्वारा बनाई गई सरल धुरी तालिका मुझे यह बताती है (कितनी पंक्तियों की गिनती):

ABC   3
DEF   4  

लेकिन मैं इसके बजाय अद्वितीय मूल्यों की संख्या चाहता हूं।

मैं वास्तव में क्या करने की कोशिश कर रहा हूं, यह पता लगाना है कि पहले कॉलम में कौन से मूल्य सभी पंक्तियों के लिए दूसरे कॉलम में समान मूल्य नहीं हैं। दूसरे शब्दों में, "एबीसी" "अच्छा" है, "डीईएफ" "बुरा" है

मुझे यकीन है कि ऐसा करने का एक आसान तरीका है लेकिन मुझे लगा कि मैं पिवट टेबल को आज़माऊंगा ...


8
ध्यान दें कि एक्सेल के हाल के संस्करणों के लिए, यह उत्तर सबसे सुविधाजनक है।
डेनिस जहरुद्दीन

जवाबों:


108

एक तीसरा स्तंभ डालें और सेल में C2इस सूत्र को चिपकाएँ

=IF(SUMPRODUCT(($A$2:$A2=A2)*($B$2:$B2=B2))>1,0,1)

और इसे कॉपी करें। अब 1 और 3 कॉलम के आधार पर अपनी धुरी बनाएं। स्नैपशॉट देखें

यहां छवि विवरण दर्ज करें


+1 मुझे लगता है कि यह मेरे समाधान से थोड़ा आसान है क्योंकि इसे पहली पंक्ति
lc के

2
अच्छी तकनीक है। मैं इस बारे में नहीं जानता था। आप एक सरणी फ़ंक्शन के साथ एक ही काम कर सकते हैं =IF(SUM((A$2:A2=A2)*(B$2:B2=B2)) > 1, 0, 1)(सूत्र में प्रवेश करते समय Ctrl-Shift-Enter दबाएं ताकि यह इसके {}चारों ओर प्राप्त हो)।
एरिक

सार्वभौमिक उत्तर, किसी विशिष्ट विशेषता की आवश्यकता नहीं है। बस अच्छे सादे सूत्र।
अल्बर्टो डी कारो

तीन स्तंभों वाली स्थिति में इसे कैसे बढ़ाया जाए, इस पर कोई विचार?
tumultous_rooster

13
ध्यान दें कि यदि आप पिवट टेबल विकल्पों का उपयोग करके कुछ पंक्तियों को फ़िल्टर करते हैं तो यह उत्तर सही समाधान नहीं देगा। मान लीजिए कि पहली पंक्ति को फ़िल्टर किया गया है। एबीसी का योग तब 0 दिखाई देगा!
जरलेम

250

अद्यतन: आप इसे अब एक्सेल 2013 के साथ स्वचालित रूप से कर सकते हैं। मैंने इसे एक नए उत्तर के रूप में बनाया है क्योंकि मेरा पिछला उत्तर वास्तव में थोड़ी अलग समस्या है।

यदि आपके पास वह संस्करण है, तो एक धुरी तालिका बनाने के लिए अपने डेटा का चयन करें, और जब आप अपनी तालिका बनाते हैं, तो सुनिश्चित करें कि विकल्प 'इस डेटा को डेटा मॉडल में जोड़ें' टिकबॉक्स की जाँच करें (नीचे देखें)।

'इस डेटा को डेटा मॉडल में जोड़ें' के बगल में स्थित बॉक्स पर टिक करें

फिर, जब आपकी धुरी तालिका खुलती है, तो सामान्य रूप से अपनी पंक्तियों, स्तंभों और मूल्यों को बनाएं। फिर उस फ़ील्ड पर क्लिक करें, जिसकी आप गणना करना चाहते हैं और फ़ील्ड मान सेटिंग संपादित करें: फ़ील्ड मान सेटिंग संपादित करें

अंत में, अंतिम विकल्प पर स्क्रॉल करें और 'डिस्टिक्ट काउंट' चुनें। विकल्प 'डिस्टिक्ट काउंट' चुनें

यह आपके द्वारा देखी जा रही डेटा को दिखाने के लिए अपनी पिवट टेबल वैल्यू को अपडेट करना चाहिए।


5
@MichaelK इसकी बहुत बेहतर है, अगर आपके पास Excel 2013 है
jrharshath

3
क्या यह मौजूदा पिवट टेबल के लिए भी किया जा सकता है, इसलिए हमें अलग-अलग काउंट कार्यक्षमता के लिए पहुँच प्राप्त करने के लिए 200+ तालिकाओं को फिर से बनाने की आवश्यकता नहीं है?
लुईसा

12
बस एक FYI करें: यदि आपने अभी तक अपनी फ़ाइल को Excel (.xlsx) फ़ाइल के रूप में सहेजा नहीं है (उदाहरण के लिए: आपने एक .csv फ़ाइल खोली है), "इस डेटा को डेटा मॉडल में जोड़ें" का विकल्प अक्षम है / बाहर निकाल दिया गया है । सरल उपाय फ़ाइल को एक्सेल फ़ाइल के रूप में सहेजना है।
पोनीएर्स

9
क्या यह मैक पर समर्थित नहीं है? यह विकल्प मेरे लिए प्रकट नहीं होता है। मैं संस्करण 15.27 पर हूं।
22

4
यह विकल्प वास्तव में मैक पर मौजूद नहीं है, क्योंकि सामान्य रूप से डेटा मॉडल एक विंडोज-केवल सुविधा है।
टॉमी

10

मैं मिश्रण में एक अतिरिक्त विकल्प फेंकना चाहता हूं, जिसके लिए एक सूत्र की आवश्यकता नहीं है, लेकिन यदि आपको अलग-अलग स्तंभों में सेट के भीतर अद्वितीय मानों को गिनने की आवश्यकता है, तो यह सहायक हो सकता है। मूल उदाहरण का उपयोग करते हुए, मेरे पास नहीं था:

ABC   123  
ABC   123  
ABC   123   
DEF   456  
DEF   567  
DEF   456  
DEF   456

और इसे प्रकट करना चाहते हैं:

ABC   1  
DEF   2

लेकिन कुछ और जैसे:

ABC   123  
ABC   123  
ABC   123  
ABC   456  
DEF   123  
DEF   456  
DEF   567  
DEF   456  
DEF   456

और इसे इस प्रकार दिखाना चाहते थे:

ABC  
   123    3  
   456    1  
DEF  
   123    1  
   456    3  
   567    1

मुझे इस प्रारूप में अपना डेटा प्राप्त करने का सबसे अच्छा तरीका मिला और फिर मैं इसमें और अधिक हेरफेर करने में सक्षम था कि निम्नलिखित का उपयोग करें:

यहां छवि विवरण दर्ज करें

एक बार जब आप 'रनिंग टोटल इन' का चयन करते हैं, तो द्वितीयक डेटा सेट के लिए हेडर चुनें (इस मामले में यह डेटा सेट का हेडर या कॉलम शीर्षक होगा जिसमें 123, 456 और 567 शामिल हैं)। इससे आपको अपने प्राथमिक डेटा सेट के भीतर उस सेट की कुल संख्या के साथ अधिकतम मूल्य मिलेगा।

मैंने फिर इस डेटा को कॉपी किया, इसे मानों के रूप में चिपकाया, फिर इसे और आसानी से हेरफेर करने के लिए इसे किसी अन्य पिवट टेबल में रखा।

FYI करें, मेरे पास डेटा की एक चौथाई मिलियन पंक्तियाँ थीं, इसलिए इसने कुछ सूत्र दृष्टिकोणों की तुलना में बहुत बेहतर काम किया, विशेष रूप से वे जो दो कॉलम / डेटा सेटों की तुलना करने की कोशिश करते हैं क्योंकि यह एप्लिकेशन को क्रैश कर रहा है।


मुझे एक पूरी तरह से अलग समस्या थी, लेकिन इस जवाब ने मुझे सही दिशा में ला दिया। धन्यवाद।
jtolle

यह उत्तर मेरी आवश्यकता पर फिट बैठता है क्योंकि मेरे पास 500,000 पंक्तियाँ हैं जिन्हें मुझे सूत्र को लागू करने की आवश्यकता है और यदि मैं कोशिश कर रहा हूं तो मेरा कंप्यूटर स्मृति से बाहर चला जाता है। धन्यवाद!
cauldyclark

6

मैंने पाया तरीका सबसे आसान उपयोग करने के लिए है Distinct Countके तहत विकल्प Value Field Settings( बाएं में फ़ील्ड पर क्लिक करें Valuesफलक)। Distinct Countसूची में सबसे नीचे विकल्प है।

किस स्थान पर क्लिक करना है

यहां पहले (TOP; नॉर्मल Count) और उसके बाद (BOTTOM; Distinct Count)

COUNT

DISTINCT COUNT


3
Office 2016 के अनुसार: इस सुविधा का उपयोग करने में सक्षम होने के लिए "डेटा मॉडल में यह डेटा जोड़ें" चेक के साथ पिवट टेबल बनाई जानी चाहिए।
सिंह


3

तालिका के लिए यह आवश्यक नहीं है कि प्रत्येक अद्वितीय मान के लिए 1 को वापस करने के लिए निम्न सूत्र को क्रमबद्ध किया जाए।

प्रश्न में प्रस्तुत डेटा के लिए तालिका रेंज मान है A1: B7 सेल C1 में निम्नलिखित सूत्र दर्ज करें:

=IF(COUNTIF($B$1:$B1,B1)>1,0,COUNTIF($B$1:$B1,B1))

उस सूत्र को सभी पंक्तियों में कॉपी करें और अंतिम पंक्ति में निम्न शामिल होंगे:

=IF(COUNTIF($B$1:$B7,B7)>1,0,COUNTIF($B$1:$B7,B7))

यह परिणाम 1 में पहली बार एक रिकॉर्ड मिला है और 0 के बाद सभी समय के लिए लौटाया जा रहा है।

बस अपनी धुरी तालिका में कॉलम का योग करें


2
यदि आपके पास एक बड़ा डेटासेट है, तो उपयोग करें =IF(COUNTIF($B$1:$B1,B1),1,0)- इस तरह, काउंटिफ केवल एक बार चलाया जाता है!
पीटर अल्बर्ट

2

इस समस्या के बारे में मेरा दृष्टिकोण मेरे द्वारा देखे जाने की तुलना में थोड़ा अलग था, इसलिए मैं साझा करूँगा।

  1. (पहले अपने डेटा की एक प्रति बनाएं)
  2. स्तंभों को सम्‍मिलित करें
  3. हटाए गए कॉलम पर डुप्लिकेट निकालें
  4. अंतिम - परिणामी सेट पर धुरी

नोट: मैं छवियों को शामिल करना चाहूंगा ताकि इसे समझना और भी आसान हो सके, लेकिन यह मेरी पहली पोस्ट नहीं है;)


1

सिद्धार्थ का जवाब बहुत ही शानदार है।

हालांकि , यह तकनीक डेटा के एक बड़े सेट के साथ काम करते समय परेशानी का सामना कर सकती है (मेरा कंप्यूटर 50,000 पंक्तियों पर जम गया)। कुछ कम प्रोसेसर-गहन तरीके:

एकल विशिष्टता की जांच

  1. दो कॉलमों के आधार पर छाँटें (ए, बी इस उदाहरण में)
  2. एक सूत्र का उपयोग करें जो कम डेटा को देखता है

    =IF(SUMPRODUCT(($A2:$A3=A2)*($B2:$B3=B2))>1,0,1) 
    

एकाधिक विशिष्टता की जाँच

यदि आपको विभिन्न स्तंभों में विशिष्टता की जांच करने की आवश्यकता है, तो आप दो प्रकारों पर भरोसा नहीं कर सकते।

बजाय,

  1. एकल कॉलम (ए) को क्रमबद्ध करें
  2. प्रत्येक समूहन के लिए रिकॉर्ड की अधिकतम संख्या को कवर करने वाला सूत्र जोड़ें। यदि ABC में 50 पंक्तियाँ हो सकती हैं, तो सूत्र होगा

    =IF(SUMPRODUCT(($A2:$A49=A2)*($B2:$B49=B2))>1,0,1)
    

2
एक और संभवतः कम प्रोसेसर गहन तरीका एक कॉलम सी और सी 2 में जोड़ना है =A2&B2। फिर एक कॉलम डी जोड़ें और डी 2 पुट में =IF(MATCH(C2, C$2:C2, 0) = ROW(C1), 1, 0)। दोनों नीचे भरें। हालांकि यह अभी भी पूरी रेंज की शुरुआत से खोज करता है, यह पहले एक को खोजने पर रुक जाता है और मूल्यों को 50,000 पंक्तियों से एक साथ गुणा करने के बजाय इसे केवल मूल्य का पता लगाना होता है - इसलिए इसे बहुत बेहतर प्रदर्शन करना चाहिए।
EricE

@ एरिक शार्प - मुझे भी लगता है कि आपकी तकनीक पहली खोज पर रुक जाती है। लेकिन यदि आपके सी में बहुत सारे अनूठे मूल्य हैं (उदाहरण: केवल 50 एबीसी), तो आप बड़ी मात्रा में डेटा की जांच करना जारी रखेंगे। कूल फीचर: डेटा के अनसोल्ड होने पर आपका फॉर्मूला सबसे अच्छा काम करता है।
वर्कगाइड करें

1

Excel 2013 पिवोट्स में काउंट को अलग कर सकता है। यदि 2013 तक कोई पहुंच नहीं है, और यह डेटा की एक छोटी राशि है, तो मैं कच्चे डेटा की दो प्रतियां बनाता हूं, और प्रतिलिपि बी में, दोनों कॉलम का चयन करें और डुप्लिकेट को हटा दें। फिर धुरी बनाएं और अपने कॉलम को गिनें b।


1

आप कई मानदंडों के लिए COUNTIFS का उपयोग कर सकते हैं,

= 1 / COUNTIFS (A: A, A2, B: B, B2) और फिर नीचे खींचें। आप वहां जितने चाहें उतने मापदंड रख सकते हैं, लेकिन इसे प्रोसेस करने में बहुत समय लगता है।


1

चरण 1. एक कॉलम जोड़ें

चरण 2. सूत्र का उपयोग करें = IF(COUNTIF(C2:$C$2410,C2)>1,0,1)1 रिकॉर्ड में

चरण 3. इसे सभी रिकॉर्डों तक खींचें

चरण 4. सूत्र के साथ कॉलम में '1' फ़िल्टर करें


0

आप विशिष्टता को संग्रहीत करने के लिए एक अतिरिक्त स्तंभ बना सकते हैं, फिर अपनी धुरी तालिका में योग कर सकते हैं।

मेरा मतलब है, सेल C1हमेशा होना चाहिए 1। सेल C2में सूत्र शामिल होना चाहिए =IF(COUNTIF($A$1:$A1,$A2)*COUNTIF($B$1:$B1,$B2)>0,0,1)। इस सूत्र को कॉपी करें ताकि सेल C3शामिल हो=IF(COUNTIF($A$1:$A2,$A3)*COUNTIF($B$1:$B2,$B3)>0,0,1) और इतने पर।

यदि आपके पास एक हेडर सेल है, तो आप इन सभी को एक पंक्ति में ले जाना चाहेंगे और आपका C3फॉर्मूला होना चाहिए =IF(COUNTIF($A$2:$A2,$A3)*COUNTIF($B$2:$B2,$B3)>0,0,1)


0

यदि आपके पास डेटा सॉर्ट किया गया है .. तो मैं निम्नलिखित सूत्र का उपयोग करने का सुझाव देता हूं

=IF(OR(A2<>A3,B2<>B3),1,0)

यह तेज है क्योंकि यह गणना करने के लिए कम कोशिकाओं का उपयोग करता है।


0

मैं आमतौर पर उस क्षेत्र के डेटा को सॉर्ट करता हूं जिसके लिए मुझे IF (A2 = A1,0,1) का उपयोग करने की अलग-अलग गणना करनी होगी; फिर आपको आईडी के प्रत्येक समूह की शीर्ष पंक्ति में 1 मिलता है। सरल और बड़े डेटासेट पर गणना करने में कोई समय नहीं लगता है।


0

आप सहायक स्तंभ के लिए भी उपयोग कर सकते हैं VLOOKUP। मैंने परीक्षण किया और तुलना में थोड़ा तेज दिखता है COUNTIF

यदि आप हेडर का उपयोग कर रहे हैं और डेटा सेल में शुरू हो रहे हैं A2, तो पंक्ति में किसी भी सेल में इस सूत्र का उपयोग करें और उसी कॉलम में अन्य सभी सेल में कॉपी करें:

=IFERROR(IF(VLOOKUP(A2;$A$1:A1;1;0)=A2;0;1);1)

-3

मुझे ऐसा करने का एक आसान तरीका मिला। यदि मैं कॉलम A में अद्वितीय मानों को गिनना चाहता हूं, तो सिद्दार्थ राउत के उदाहरण का उल्लेख करते हुए:

  • एक नया कॉलम C जोड़ें और C2 को सूत्र = "1 / COUNTIF ($ A: $ A, A2)" से भरें
  • स्तंभ के बाकी हिस्सों में सूत्र को नीचे खींचें
  • कॉलम ए के रूप में कॉलम ए के साथ पिवट करें और कॉलम ए में अद्वितीय मूल्यों की संख्या प्राप्त करने के लिए मानों में सम {कॉलम सी)

तार्किक रूप से यह संभवतः ओपी के लिए काम नहीं कर सकता है क्योंकि यह कॉलम को नहीं देखता है B। आप कई कॉलम के साथ काम करने के लिए इसे कैसे अनुकूलित करेंगे?
EricE
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.