एक्सेल / गूगल स्प्रेडशीट में टेक्स्ट स्ट्रिंग से ईमेल निकालना


9

मैं Google डॉक्स / एक्सेल में टेक्स्ट स्ट्रिंग्स से ईमेल पते निकालने और उन्हें स्वचालित रूप से ईमेल करने के लिए देख रहा हूं, जहां कोशिकाओं की सामग्री वर्तमान में अज्ञात है (जब तक उपयोगकर्ता द्वारा अपडेट नहीं की जाती है)।

उदाहरण के लिए, वे पढ़ सकते हैं:

  1. नमस्ते,

    मेरा दोस्त example@example.com।

    धन्यवाद,

    उदाहरण जो

या

  1. तुम्हें पूछना चाहिए

    example@example.co.uk

मुझे वर्तमान में यह सूत्र मिला है:

=IFERROR((LEFT(CELL,FIND("@",CELL)-1))&"@"&(regexextract(CELL,"@(.*)"))) 

यह लगभग सभी मामलों के लिए काम करता है, सिवाय इसके

a) उदाहरण 1 में, जहां कोई व्यक्ति एक, या डालता है। ईमेल के अंत में

बी) उदाहरण 2 में, जहां ईमेल एक नई लाइन पर शुरू होता है, यह उदाहरण के लिए आता है।

पूछना

example@example.com

मैं इन्हें ठीक करने के लिए सूत्र कैसे अनुकूलित कर सकता हूं?

जवाबों:


7

Google स्प्रेडशीट के लिए

Google स्प्रैडशीट में ये कूल पहले से निर्मित रेगेक्स सूत्र हैं

मेल एड्रेस निकालने के लिए हम पहले वाले का उपयोग करते हैं। इस सूत्र को Google स्प्रेडशीट सेल में रखें:

=iferror(Regexextract(A1;"[A-z0-9._%+-]+@[A-z0-9.-]+\.[A-z]{2,4}");"")
  • A1 वह सेल है जहां स्ट्रिंग को जांचना है (आपके मामले में मेल बॉडी) को निवास करना चाहिए
  • पूर्ण सूत्र में 2 भाग होते हैं। आंतरिक भाग regex सूत्र है और बाहरी भाग त्रुटि की रोकथाम के लिए है
  • Regexextract(A1,"\[A-z0-9._%+-\]+@\[A-z0-9.-\]+\.\[A-z\]{2,4}") मेल एड्रेस देता है
  • iferror(innerformula,"")रोकता है #N/Aजब regex सूत्र कुछ भी वापस करने में सक्षम नहीं था जैसे कोई वैध मेल पता नहीं मिला

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

रेगेक्स पैटर्न कैसे काम करता है?

[एक-Z0-9 ._% + -]। + @ [एक-Z0-9 .-] [Az] {2,4}

  • A-zएक Aऔर एक के बीच किसी भी चरित्र का प्रतिनिधित्व करता है z
    अपरकेस और लोअरकेस पर ध्यान दें। इस तरह यह केस-असंवेदनशील है
  • 0-9 किसी भी अंक का प्रतिनिधित्व करता है
  • ._%+- खुद उन संकेतों का प्रतिनिधित्व करते हैं
  • [ ] एक एकल वर्ण का प्रतिनिधित्व करता है जिसे कोष्ठक के अंदर अनुमति दी जाती है
  • +पीछे एक संकेत डालने [ ]से पिछले पैटर्न को असीम रूप से दोहराया जा सकता है
  • @कोई विशेष अर्थ नहीं है। यह सचमुच एक @संकेत के लिए खोज करता है
  • [A-z0-9.-]+ऊपर जैसा ही है। लेकिन इस बार _%+एक @संकेत के पीछे की अनुमति नहीं है
  • \.एक बिंदु के लिए खोज करता है। इसे पूर्ववर्ती \होने .से बचना होगा क्योंकि सामान्य रूप से एक प्लेसहोल्डर कोई भी चरित्र होता है
  • [A-z]{2,4}2,3 या 4 केस-असंवेदनशील पात्रों के लिए अंतिम खोजों पर

उपयोग किए गए ressources


आपके उपयोगी उत्तर के लिए धन्यवाद। एक विचार मेरे पास था जो {2, 4}सीमित हो सकता है क्योंकि कई आगामी टीएलडी .codes4 वर्णों से अधिक हैं।
एलेक्स बुकर

1

यह एक्सेल के लिए है।

निम्नलिखित उपयोगकर्ता परिभाषित फ़ंक्शन (UDF) पर विचार करें :

Public Function GetEmailAddy(Sin As String) As String
    Dim s As String
    If InStr(1, Sin, "@") = 0 Then
        GetEmailAddy = ""
        Exit Function
    End If

    s = Replace(Sin, Chr(10), " ")
    s = Replace(s, Chr(13), " ")
    s = Application.WorksheetFunction.Trim(s)
    ary = Split(s, " ")

    For Each a In ary
        If InStr(1, a, "@") > 0 Then
            GetEmailAddy = a
            Exit Function
        End If
    Next a
End Function

उपयोगकर्ता परिभाषित कार्य (UDF) स्थापित करने और उपयोग करने के लिए बहुत आसान हैं:

  1. ALT-F11 VBE विंडो लाता है
  2. ALT-I ALT-M एक नया मॉड्यूल खोलता है
  3. सामान पेस्ट करें और VBE विंडो बंद करें

यदि आप कार्यपुस्तिका सहेजते हैं, तो इसके साथ UDF सहेजा जाएगा। यदि आप बाद में 2003 के एक्सेल के संस्करण का उपयोग कर रहे हैं, तो आपको .xlsx के बजाय .xlsm के रूप में फ़ाइल को सहेजना होगा

UDF को हटाने के लिए:

  1. ऊपर के रूप में VBE विंडो लाएं
  2. कोड साफ़ करें
  3. VBE विंडो बंद करें

Excel से UDF का उपयोग करने के लिए:

=GetEmailAddy(A1)

सामान्य रूप से मैक्रोज़ के बारे में अधिक जानने के लिए, देखें:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

तथा

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

और UDFs की बारीकियों के लिए, देखें:

http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

इसके लिए मैक्रोज़ को सक्षम होना चाहिए!

यहाँ कुछ उदाहरण हैं:

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

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