Excel COUNTIF धीमा


0

मैं एक्सेल में एक अजीब समस्या है कि मैं पहले नहीं चला है। मेरे पास एक एक्सेल शीट है जिसे मैं कुछ विशिष्ट रिकॉर्ड से खींचने का प्रयास कर रहा हूं, जिसकी आवश्यकता है कि मुझे डुप्लिकेट का पता है। मैं अपने डुप्लिकेट को फ़िल्टर करने के लिए एक COUNTIF का उपयोग कर रहा हूं फिर अन्य फिल्टर के आधार पर खींच रहा हूं; हालाँकि, COUNTIF एक्सेल लटका हुआ प्रतीत होता है। मैंने अपनी प्रक्रिया नीचे दी है।

  1. = COUNTIF (A: A, A2) के साथ कॉलम बनाएं
  2. स्तंभ के नीचे सूत्र की प्रतिलिपि बनाएँ
  3. वर्कशीट (हैंग / समाप्त होने में आयु लेता है) को सहेजें या कॉलम और पेस्ट वैल्यू को कॉपी करें (समाप्त करने के लिए हैंग हो जाता है)

मैंने एक्सेल 2010 और 2013 में दो अलग-अलग पीसी पर एक ही परिणाम के साथ ऐसा किया है। वर्कशीट में केवल 172000 लाइनें हैं। सूत्र मान प्राप्त करने के लिए ठीक निष्पादित करता है, लेकिन जब मैं सहेजने या स्तंभ मानों को कॉपी और पेस्ट करने का प्रयास करता हूं तो यह लटका रहता है। उस कॉलम के बिना, वर्कशीट सामान्य रूप से व्यवहार करती है। मैंने पहले कभी इसका सामना नहीं किया।

अग्रिम में धन्यवाद!


दो चीजों का प्रयास करें ........ COUNTIF () के बजाय COUNTIFS () का उपयोग करें ......... $ A $ 1: $ A $ 172000 का उपयोग करके सीमा सीमित करें
Gary's Student

@ गैरी के समान दोनों के साथ एक ही मुद्दा। अगर मैं अंत में इसे बचाने के लिए उम्र और उम्र की प्रतीक्षा करता हूं, तो यह सामान्य रूप से बाद में व्यवहार करने लगता है, या एक बार करने के लिए मुझे एक बार मिल गया।

क्या आपके पास टेबल पर एक फिल्टर लगाया गया है?
महामहिम

आप सशर्त स्वरूपण लागू कर सकते हैं ताकि डुप्लिकेट का रंग अलग भरा हो, फिर "फ़िल्टर बाय कलर" का उपयोग करें।
पी फिट्ज

1
@steventnorris 172k पंक्ति पर स्क्रॉल करें और दाईं ओर स्क्रॉलबार स्लाइडर देखें। क्या यह बार के नीचे है? यदि नहीं, तो पंक्ति 172001 को हाइलाइट करें, CTRL + Shift को दबाए रखें और नीचे की सभी पंक्तियों को हाइलाइट करने के लिए डाउन एरो दबाएं। बाईं ओर एक पंक्ति संख्या पर राइट क्लिक करें, पंक्तियों को हटाएं, फिर स्क्रॉलबुक को रीसेट करने के लिए कार्यपुस्तिका को सहेजें। इससे आपकी मंदी दूर हो सकती है। ध्यान रखें कि जब तक आप कार्यपुस्तिका को सहेजते हैं, तब तक यह प्रभावी नहीं होगा।
पी फिट्ज

जवाबों:


2

सिर्फ एक का उपयोग करने के बजाय एक फिल्टर लागू क्यों नहीं countif()?

  1. अपना डेटा चुनें, Data - Sort & Filter - Advancedएक उन्नत फ़िल्टर लगाने के लिए जाएं ।
  2. सूची को, स्थान पर फ़िल्टर करें
  3. संपूर्ण तालिका का चयन करें List range
  4. के रूप में कॉलम A चुनें Criteria range
  5. केवल अनन्य रिकॉर्ड के बगल में स्थित बॉक्स को चेक करें

मैं वास्तव में गैर-अद्वितीय रिकॉर्ड चाहता हूं, इसलिए डुप्लिकेट करता हूं। क्या इस पद्धति का उपयोग करके डुप्लिकेट के लिए फ़िल्टर करने का एक तरीका है?
स्टेवेंटनोरिस 17

@steventnorris आप उन्हें पहचानने के लिए सशर्त स्वरूपण का उपयोग कर सकते हैं?
रेस्टाफैरियन

यह ऊपर सुझाव दिया गया था, और सशर्त स्वरूपण ठीक काम करता है, लेकिन जब मैं रंग से फ़िल्टर करने का प्रयास करता हूं, तो वही समस्याएं होती हैं।
स्टेवेंटनोरिस

चूंकि लक्ष्य है .. "आवश्यकता है कि मुझे डुप्लिकेट का पता है" .. @steventnorris इस पद्धति का उपयोग कर सकता है, गैर-अद्वितीय सेल प्राप्त करने के लिए .. || विधि: (@ .Raystafarian स्टेप 5 के बाद) .. एक अतिरिक्त कोलम जोड़ें, और उसमें '1' टाइप करें .., फिर उस अतिरिक्त कॉलम पर फ़िल्टर लगाएं .. नॉन-'1 'कोशिकाओं के लिए फ़िल्टर करें .. किया गया। वह है = आपकी गैर-अद्वितीय कोशिकाएँ। /
^__ऑनलाइज़्स

2

निम्नलिखित प्रयास करें:

  1. स्वचालित गणना बंद करें। (सूत्र रिबन टैब, गणना समूह, गणना विकल्प ड्रॉप डाउन, मैनुअल)
  2. "सेव करने से पहले पुनर्गणना कार्यपुस्तिका को बंद करें" (विकल्प, सूत्र टैब, गणना विकल्प अनुभाग)
  3. कॉलम ए के संदर्भ को डायनामिक नाम की श्रेणी के संदर्भ में बदलें ।

1
मैं अंत उपयोगकर्ता के रूप में इस पद्धति के खिलाफ थोड़ा सा हूँ, जो मुझे विश्वास नहीं है कि मैन्युअल रूप से शीट पर ताज़ा करने के लिए याद होगा अंत में इसका उपयोग किया जाएगा। निश्चित रूप से एक CountIf चादर पर लटकाए बिना कार्य करना चाहिए, है ना? जैसे तैसे?
स्टेवेंटनोरिस

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

इसके बावजूद, क्या आपने यह देखने की कोशिश की है कि क्या यह समस्या पैदा कर रहा है?
विल एडिगर

यह सहेजने और फ़िल्टर करने के दौरान समस्याओं को हल करता है, लेकिन गणना करते समय, मेरे पास अभी भी एक "कैलकुलेटिंग: (4 प्रॉसेक्टर (एस))" संदेश है, जिसे पूरा होने में उम्र लगती है। "अब गणना करें" का उपयोग करते हुए, मैं कम से कम क्लिक कर सकता हूं और यह गणनाओं को रोक देता है, लेकिन यह वास्तव में बेहतर नहीं है।
स्टेवेंटनोरिस

क्या आपने रेंज नाम को डायनामिक नाम की श्रेणी में बदलने की कोशिश की है, या केवल परीक्षण करने के लिए अगर यह मदद करता है, तो एक नियमित नाम सीमा?
विल एडिगर

0

एक सरणी सूत्र का उपयोग करने का प्रयास करें, यह काफी बेहतर प्रदर्शन करना चाहिए।

  1. यदि आपका सूत्र स्तंभ b है, तो: B2 का चयन करें: B172000
  2. प्रकार =COUNTIF($A$1:$A$172000,A1:A172000)
  3. Cntrl-Shift-Enter दबाएं

मैंने इस विधि की कोशिश की, और मुझे भी यही समस्या है।
स्टेवेंटनोरिस

@Raystafarian यह समस्या हल नहीं करता है। मुझे इस विधि से SAME समस्या है।
स्टेवेंटनोरिस

@steventnorris हा मैं गलतफहमी, माफी।
रेस्टाफैरियन

0

आप अपनी समस्या को हल करने के लिए इसके बारे में एक अलग तरीके से जा सकते हैं - कॉलम ए पर एक पिवट टेबल का उपयोग करें। मैं मान रहा हूं कि आपके पास ए 1 में हैडर है और डेटा ए 2 से ए 2 से परे कुछ चर पंक्ति तक फैली हुई है।

  1. कॉलम ए को हाइलाइट करें। सम्मिलित करें, पिवट टेबल पर क्लिक करें।
  2. अपनी धुरी तालिका के गंतव्य स्थान का चयन करें, फिर ठीक पर क्लिक करें।
  3. "PivotTable फ़ील्ड्स" डायलॉग बॉक्स में (निश्चित रूप से यह 2010 में जैसा दिखता है वैसा नहीं है; मैं 2013 का उपयोग कर रहा हूं), "Rows" बॉक्स और "Values" बॉक्स में कॉलम A के लिए जो भी आपका हेडर है, उसे खींचें।
  4. एक्सेल के मेरे उदाहरण में, शीर्षकों के मानों को गिनने के लिए चूक है। यदि यह आपके लिए नहीं है, तो हेडर बॉक्स में रेखा पर क्लिक करें "राशि / गणना / औसत / ?? ... हैडर का", और फिर "मूल्य फ़ील्ड सेटिंग्स" पर क्लिक करें। फिर "समराइज वैल्यू फील्ड बाय बाय" के तहत, आप काउंट चुनें।

आप स्वचालित गणना चालू कर सकते हैं। PivotTables को स्पष्ट रूप से ताज़ा किया जाना चाहिए। इसे आज़माएं और देखें कि क्या यह आपके लिए काम करता है।


मेरी इन पंक्तियों की गिनती नहीं हो सकती है, इन पंक्तियों को अलग से उपयोग की जाने वाली किसी अन्य शीट में कॉपी करना है। मुझे पता है कि पिवोट्स गिनती, योग, आदि कर सकते हैं, लेकिन मुझे वास्तविक पंक्तियों को प्राप्त करने में कोई भाग्य नहीं था। क्या यह संभव है?
स्टेवेंटनोरिस

0

एक अन्य विकल्प जिस पर आप गौर कर सकते हैं, वह डेटा (केवल मान) को एक नई कार्यपुस्तिका में कॉपी कर रहा है और देखें कि क्या प्रदर्शन समस्या अभी भी मौजूद है। यह हो सकता है कि कार्यपुस्तिका किसी तरह दूषित हो।


0
  1. जिस कॉलम में आप डुप्लिकेट ढूंढने का प्रयास कर रहे हैं, उसके साथ पिवट टेबल।

  2. अपने मूल्य से पता चलता है की संख्या की गणना करें।

  3. किसी अन्य पत्रक पर गिनती> 1 के साथ कुछ भी कॉपी करें

  4. अपनी मूल शीट पर डुप्लिकेट को फ़्लैग करने के लिए इस शीट का उपयोग VLOOKUP टेबल के रूप में करें।

  5. अपने VLOOKUP से कॉपी / पेस्ट मान (क्योंकि सूत्र अस्थिर है, और आप नहीं चाहते कि हर बार परिवर्तन होने पर Excel पुनर्गणना करे)।

  6. डुप्लिकेट के लिए फ़िल्टर करें।

Vlookup ऑपरेशन में अभी भी थोड़ा समय लगता है, लेकिन यह COUNTIF की तुलना में काफी तेज है।


0

मुझे मेरा काउंटिफिकेशन फॉर्मूला = COUNTIF ($ E $ 2: $ E $ 111111, E2) बेहद धीमी गति से चल रहा है इसलिए निम्न कार्य किया है

अपना डेटा पिवट करें

जिस आईडी को आप गिनना चाहते हैं, उसे उन पंक्तियों में रखें, जिन आईडी को आप गिनना चाहते हैं, उनकी गणना करें

अपने डेटा पर वापस जाएं एक कॉलम डालें और एक इंडेक्स बनाएं और मेल करें जो पंक्तियों में आईडी के साथ आपके डेटा में आईडी कॉलम से आपके पिवट के कॉलम से मेल खाता हो।

फिर अपने मूल धुरी पर आईडी कॉलम की गिनती को इंडेक्स करें: = COUNTIF ($ E $ 2: $ E $ 111111, E2)

सूचकांक और मिलान का उपयोग करना

= INDEX (धुरी बी: ​​बी, मैच (डेटा ई:! ई, धुरी एक: एक, 0))

इसने बड़े पैमाने पर गणना की

धन्यवाद


0

मैं इसी समस्या में टकराया और इस सूत्र में समाधान के लिए गया। कॉलम B में मेरा सूत्र निम्नलिखित था: = COUNTIF ($ A1 $: A, A2)

ताकि कॉपी की गई प्रत्येक नई पंक्ति की गणना हमेशा डेटासेट की शुरुआत से शुरू हो।

गणक कुछ समय लेता है (मेरी शीट + 100k पंक्तियों में), लेकिन इसने काम किया। यदि मैं मानों के रूप में कॉपी करना चाहता हूं, तो मेरा एक्सेल क्रैश हो जाता है , और मेरे पास तेज़ कंप्यूटर w 16gig RAM है।

तब मैंने सबसे सरल उपाय खोजा! सूत्र स्तंभ (जैसे स्तंभ C) के आगे एक स्तंभ जोड़ें, और स्तंभ B को संदर्भित करते हुए एक सरल सूत्र बनाएं, जैसे = B1 * 1 या = VALUE (B1) और इसे सभी तरह से कॉपी करें। उसके बाद, आप बस इस सरल सूत्र कॉलम का चयन करें, और मानों के रूप में कॉपी करें

कॉलम C में मान कॉपी किए जाने के बाद, आप मूल भारी फॉर्मूला कॉलम को हटा सकते हैं या केवल उस पर चिपकाए गए मानों के साथ एक नई एक्सेल शीट बना सकते हैं।


0

मैं एक ही समस्या का सामना कर रहा हूँ एक CountIf सूत्र के साथ एक तालिका में कई हजारों पंक्तियों के साथ। इन चरणों का पालन करके, मैं समय को आधे से कम करने में सक्षम था (~ 96 सेकंड से 40 सेकंड से कम):

  1. अनुक्रमिक क्रमांकन के साथ एक अतिरिक्त स्तंभ बनाया गया (बस वापस संभव बनाने के लिए)।
  2. आवश्यक (आरोही या अवरोही) के रूप में काउंटआईएफ में उपयोग किए गए कॉलम को क्रमबद्ध करें
  3. काउंटआईएफ को परिकलित करता है
  4. CountIf परिणामों को सूत्रों से मानों में परिवर्तित किया।
  5. अनुक्रमिक नंबरिंग कॉलम (चरण 1 पर उल्लिखित) का उपयोग करके डेटा वापस सॉर्ट किया गया।

मेरे मामले में, मैं सूची में मान की पंक्ति संख्या (जैसे SQL की row_number ()) को प्राप्त करने के लिए CountIf का उपयोग कर रहा था। जिन चरणों का मैंने उपयोग किया था, उनकी सूची में डुप्लिकेट मान थे।

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