2012-10-18 15 views
17

के भीतर सबस्ट्रिंग्स की घटनाओं की गणना करने के लिए एक्सेल में स्ट्रिंग डेटा के कॉलम के भीतर एक उप-स्ट्रिंग दिखाई देने की संख्या को गिनने की कोशिश कर रहा हूं। कृपया नीचे उदाहरण देखें।एक्सेल में फॉर्मूला स्ट्रिंग्स

स्ट्रिंग डेटा के स्तंभ (ट्वीट्स) इस तरह दिखता है:

A 
1 An example string with @username in it 
2 RT @AwesomeUser says @username is awesome 

"सबस्ट्रिंग" (ट्विटर स्क्रीन नाम) के साथ स्तंभ इस तरह दिखता है:

B 
1 username 
2 AwesomeUser 

मैं एक का उपयोग करना चाहते फॉर्मूला बी 1, बी 2, आदि से चिपकने वाले समय की संख्या को गिनने के लिए कॉलम ए में तारों में दिखाई देता है। उदाहरण के लिए: बी 1 के लिए खोज फ़ॉर्मूला "2" लौटाएगा और बी 2 की खोज "1" वापस आ जाएगी।

मैं इसे इस तरह से नहीं कर सकते:

=COUNTIF(A:A, "username") 

क्योंकि COUNTIF केवल लग रहा है तार, नहीं सबस्ट्रिंग के लिए। यह सूत्र हमेशा "0" वापस आ जाएगा।

यहाँ एक formula मैं यह कर सकता है सोचा है: दुर्भाग्य से

=SUMPRODUCT((LEN(A:A)-(LEN(SUBSTITUTE(A:A,"username",""))))/LEN("username")) 

, मैं स्तंभ बी में 16,000 प्रविष्टियों और एक में हजारों की संख्या में है, इसलिए गिनती पात्रों एक उच्च शक्ति पीसी पर भी काम नहीं करेगा (भी, समारोह द्वारा वापस परिणाम संदिग्ध है)।

मैं का उपयोग कर के बारे में सोचा:

=COUNTIF(A:A, "*username*") 

लेकिन COUNTIF स्टार ऑपरेटरों के साथ एक स्ट्रिंग की आवश्यकता है; मुझे डेटा की मात्रा के कारण सेल संदर्भों का उपयोग करने की आवश्यकता है।

मेरा प्रश्न: क्या कोई जानता है कि मैं इसके लिए सूत्र का उपयोग कैसे कर सकता हूं? यदि COUNTIF का उपयोग करते हैं, तो मैं कथन के सशर्त भाग में सेल संदर्भ कैसे प्राप्त करूं (या COUNTIF कथन के सशर्त भाग में संदर्भित सेल में स्ट्रिंग को प्रतिस्थापित करने के लिए फ़ंक्शन का उपयोग कैसे करें)?

मुझे पता है कि मैं डेटा पार्स कर सकता हूं, लेकिन मैं यह जानना चाहता हूं कि Excel में इसे कैसे किया जाए।

+2

ध्यान दें कि आपके द्वारा उद्धृत नमूना फॉर्मूला क्रिस 'COUNTIF फ़ंक्शन के लिए थोड़ा अलग काम करता है। COUNTIF केवल प्रत्येक सेल को सबसे अधिक बार गिना जाएगा, इसलिए प्रत्येक सेल या तो "स्कोर" 1 या शून्य होगा। SUMPRODUCT सूत्र 'सभी' उदाहरणों या "उपयोगकर्ता नाम" की गणना करेगा, भले ही यह किसी भी व्यक्तिगत कक्ष में एक से अधिक बार प्रकट होता है - यदि आप उस सूत्र का उपयोग करना चाहते हैं तो आपको पूरे कॉलम –

उत्तर

34

आप लगभग देखते हैं, का उपयोग

=COUNTIF(A:A, "*"&B1&"*") 

(Excel 2010 में परीक्षण किया गया)

+1

+1 का उपयोग करने के बजाय सीमा को प्रतिबंधित करना चाहिए, जो = 10,001 :) – RocketDonkey

+0

क्रिस: यह उत्तर की तरह लगता है। सहायता के लिए धन्यवाद! मैंने कल रात कॉन्सटेनेशन की कोशिश की लेकिन मैंने वाक्यविन्यास खराब कर दिया होगा। – Andrew

+1

सीआरआरआईएस, यह काम नहीं करता है। निम्न का प्रयास करें: बी 1 प्रकार "1" में, अब ए 2: "एस 1 डीएफ 1, ए 3:" डीएसएड ", ए 4:" एसडी'1 ", ए 5:" एसडीएफ 1111 " –

1

एक बहुत ही सरल एक्सेल समाधान एक्स-स्ट्रिंग y-स्ट्रिंग में ("एबीसी") (की घटना के लिए " एबीसी 123 एबीसी 23 डीएफएबीसी "):

  1. वाई-स्ट्रिंग की लंबाई की पहचान करें। Ly = len (y)
  2. x1-string द्वारा x-string को प्रतिस्थापित करें (x-string पर किसी भी समर्थित वर्ण का केवल 1 char संलग्न करें। उदाहरण के लिए "एबीसी" => "एबीसी_") और नई स्ट्रिंग y1-string की लंबाई की गणना करें । Ly1 = लेन (विकल्प (वाई, एक्स, एक्स 1))।
  3. y-स्ट्रिंग में एक्स-स्ट्रिंग की घटना) का कोई = Ly1-Ly

घटना की संख्या: लेन (स्थानापन्न (y, x, x 1)) - लेन (y)

समझ के लिए नामकरण: एक्स-स्ट्रिंग: "एबीसी" x1-स्ट्रिंग: "ABC_" y-स्ट्रिंग: "एबीसी 123 एबीसी 23dfABC" y1-स्ट्रिंग: "" ABC_ 123 ABC_ 23dfABC_ "

संबंधित मुद्दे