विभिन्न कोशिकाओं में एक पते को विभाजित करना


-1

इस प्रारूप में मेरे पास कॉलम है:

120 Lemon Street Columbus OH 92738 (Basketball Courts)

और मुझे इसे अलग करने की आवश्यकता है: सड़क का पता (120 Lemon Street), शहर (Columbus), राज्य (OH), पिन कोड (92738) और विवरण ((Basketball Courts))

कोई तरीका है तो मुझसे यह हो सकता है? ये सभी एक ही स्थिति में हैं, इसलिए यह कोई समस्या नहीं है। वे विभिन्न शहरों / कस्बों में हैं और अलग-अलग ज़िप कोड हैं।

यदि आप केवल इसका हिस्सा करना जानते हैं, तो भी मुझे बता सकते हैं। हर प्रकार की सहायता का स्वागत है, धन्यवाद!


1
जब तक आप कुछ चीजें निर्धारित नहीं करते हैं, तब तक यह करना थोड़ा कठिन है। जैसे कि आपकी सड़क का नाम हमेशा दो शब्द होते हैं जिसमें एक स्पेस इनबेटन (लेमन स्ट्रीट) होता है? क्या आपका शहर हमेशा एक शब्द है? मूल रूप से आपको एक पैटर्न खोजने या अपनी प्रविष्टि में एक सीमांकक सम्मिलित करने की आवश्यकता है जिसे आप अलग कर सकते हैं।
Eric F

आपने पहले से क्या कोशिश की है? क्या VBA ठीक है?
Mr. Mascaro

@ EricF वे सड़क या शहर के लिए समान शब्द नहीं हैं, यही वजह है कि मुझे कठिनाई हो रही है। एक बात मैं सोच सकता हूं कि जब भी "एवेन्यू, स्ट्रीट, लेन" आदि जैसे शब्द हों और उसके बाद सब कुछ ट्रिम कर दें। लेकिन मुझे यकीन नहीं है कि यह एक अच्छा तरीका है या नहीं
user1282637

यहां तक ​​कि VBA के साथ आपको एक तालिका या जिस तालिका को आप संदर्भित कर रहे हैं, उससे दूर जाने के लिए एक पैटर्न की आवश्यकता होगी।
Eric F

2
आप यहां बहुत कुछ मांग रहे हैं। इस तरह के अनकहे पाठ को विभाजित करना आपके विशिष्ट डेटा सेट में नियमितताओं के आधार पर नियम बनाने के लिए नीचे आने वाला है। मेरे अनुभव में, यह बहुत परीक्षण और त्रुटि है - एक सामान्य नियम की कोशिश करना, उस नियम के अपवादों को खोजना, और फिर अपवादों को पकड़ने के लिए नियम को एक और स्तर शामिल करना, और इसी तरह। समस्या को कम करने के बिना, यह आपके विशिष्ट डेटा तक पहुँच के बिना किसी के लिए भी मुश्किल होने जा रहा है।
Excellll

जवाबों:


2

User1282637, मैंने आपको नीचे दिखाने के लिए एक उदाहरण स्थापित किया है। मैंने इसे केवल एक प्रारंभिक बिंदु बनाया है ताकि आप अपने स्वयं के पूर्ण उत्तर के साथ समाप्त कर सकें।

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

http://pe.usps.com/text/pub28/28apc_002.htm

enter image description here

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

इसके बाद बस यह दिखता है कि क्या लागू होता है ..

enter image description here

यह हिस्सा कई तरीकों से किया जा सकता है लेकिन मैंने इस तरह से एक उदाहरण के लिए फैसला किया। यह बस इसी पंक्ति में एक संख्या सूचीबद्ध करेगा जो उपयोग किए गए प्रत्यय के लिए एक मैच ढूंढता है।

मैं कोष्ठक का उपयोग करके (बास्केटबॉल कोर्ट) भाग को अलग करता हूं:

enter image description here

मैं प्रदर्शित करता हूं कि आपके बास्केटबॉल कोर्ट से "कोर्ट्स" के मामले में जो शेष है, वह भी एक सड़क प्रत्यय है:

enter image description here

अगला मुझे यह पता लगाने की आवश्यकता है कि यह सड़क कितनी लंबी है, इसलिए मैं निम्नलिखित का उपयोग करता हूं:

enter image description here

और इस...

enter image description here

और अंत में यह मुझे सिर्फ सड़क प्रदर्शित करने की अनुमति देता है:

enter image description here

अब मैंने शहर और राज्य नहीं किया है, लेकिन इस विचार के बाद, आप इसे प्राप्त कर सकते हैं। इसके अलावा यदि आप अधिक स्वच्छ विकल्प चाहते हैं तो निश्चित रूप से VBA के बारे में अधिक जानकारी प्राप्त करें। मुझे उम्मीद है कि यह कम से कम आपको कुछ विचार सिखाता है कि इस बारे में कैसे जाना जाए।


0

User1282637 पूछता है कि क्या इस कार्य को पूरा करने का कोई तरीका है और ऐसा करने में किसी भी मदद का अनुरोध करता है। यह मुद्दा एक्सेल यांत्रिकी नहीं है कि डेटा में अस्पष्टता से कैसे निपटें। ज़िप कोड को पार्स करना और विवरण सीधा होना (जब तक कि आपके पास 5 अंकों और 9 अंकों के ज़िप का मिश्रण न हो)। मुश्किल समस्या शहर से सड़क को अलग करना है, इसलिए मैं उस पर ध्यान केंद्रित करूंगा। यह कदम-दर-चरण के रूप में अभिप्रेत नहीं है कि यह एक्सेल फ़ार्मुलों के साथ कैसे करें। यह समस्या में कुछ अंतर्दृष्टि साझा कर रहा है और कठिन भाग के परिणाम के लिए एक दृष्टिकोण का वर्णन कर रहा है।

समस्या यह है कि विभिन्न क्षेत्रों के बीच कोई सीमांकक नहीं हैं। यह विवरण या ज़िप को छीलने के लिए एक मुद्दा नहीं है क्योंकि वे आसानी से पहचाने जाने योग्य हैं। समस्या यह निर्धारित करती है कि स्ट्रीट कहां समाप्त होती है और शहर शुरू होता है। स्ट्रीट भाग की इन विविधताओं पर विचार करें (एक विस्तृत सूची से दूर):

120 Lemon Street
120 Lemon Drop Street
120 Lemon Street NW
120 East Lemon Street
120 Lemon Street Apt 3

गली में "शब्द" की संख्या 1 या 2 से कम, 7 या 8 तक हो सकती है, इसलिए यह पार्सिंग के लिए उपयोगी नहीं है। सड़क "प्रकार" भी विशेष रूप से उपयोगी नहीं है। सड़क के "टाइप" (सड़क, एवेन्यू, बुलेवार्ड, रास्ता, शलजम, लेन, कोर्ट, सर्कल, छत, आदि) के लिए इस्तेमाल किए गए 50-100 शब्दों के आदेश पर हैं। गठबंधन करें कि सड़क के प्रकार के लिए संक्षिप्त और गलत दोनों तरह के उपयोग के साथ, और सूची सैकड़ों में है। इसके अलावा, यह पदनाम हमेशा सड़क क्षेत्र में अंतिम शब्द नहीं है। गली सबसे कठिन हिस्सा है, इसलिए तार्किक दृष्टिकोण बाकी की पहचान करना है और फिर शेष सड़क है।

शहर कई शब्द हो सकते हैं। वाशिंगटन कोर्ट हाउस, ओएच तीन शब्द हैं। फिर सेंट मेरीज, ओह जैसी स्थितियों पर विचार करें। "सेंट" शहर के नाम या सड़क के प्रकार का एक हिस्सा है; यह किस क्षेत्र में जाता है? या दक्षिण यूक्लिड, ओह - शहर के नाम का "दक्षिण" हिस्सा है या एक दिशात्मक है जो सड़क के पते का हिस्सा है? शहर की अपनी समस्याएं हैं लेकिन उनसे निपटने का एक तरीका है।

यहां तक ​​कि शहर की पहचान करने के लिए ज़िप कोड का उपयोग करने में समस्याएं हैं। शहर के नाम और जिप के बीच हमेशा 1: 1 का मैच नहीं होता है।

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

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

ज़िप को आसानी से पार्स किया जा सकता है, और यह एक अच्छी जगह है। ज़िप कोड निर्देशिका के खिलाफ एक ज़िप कोड देखो। यदि परिणाम बिल्कुल शब्दों के एक तार से मेल खाता है, तो तुरंत ज़िप से पहले, यह पहचान लेता है कि रिकॉर्ड का कौन सा हिस्सा शहर का क्षेत्र है।

यदि कोई सटीक या असंदिग्ध मैच नहीं है, तो शहर के नामों की तुलना करें। शहर के नामों की सूची के माध्यम से सूचना दें। प्रत्येक नाम के लिए, उसमें शामिल शब्दों की संख्या निर्धारित करें और इसकी तुलना उस शब्द की संख्या से करें जो तुरंत ज़िप से पहले हो।

यदि आपको या तो प्रक्रिया के माध्यम से एक मैच मिलता है, तो शहर के बाईं ओर शेष सब कुछ सड़क का पता है।

स्प्रेडशीट की तुलना में इस तरह के एप्लिकेशन को डेटाबेस एप्लिकेशन के साथ करना बहुत आसान है। किसी भी तरह से, आप देख सकते हैं कि स्वचालित तरीके से ऐसा करने की कोशिश करना आसान काम नहीं है। आप इसे कुछ स्प्रेडशीट फ़ार्मुलों के साथ नहीं कर सकते।

कोई फर्क नहीं पड़ता कि आपकी प्रोग्रामिंग कितनी कठोर है, आप अभी भी रिकॉर्ड करने की संभावना रखते हैं जो आपको हाथ से पार्स करने की आवश्यकता है, और त्रुटियों को हाथ से ठीक करने की आवश्यकता है। आप इंगित नहीं करते हैं कि आपके पास कितने रिकॉर्ड हैं। यह केवल मैन्युअल रूप से करने के लिए कम काम हो सकता है।

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

जो रिकॉर्ड बचे हैं, उनके लिए आप पहले ही जिप और विवरण छील चुके हैं, यहां मैनुअल प्रक्रिया को तेज करने का एक तरीका है। रिकॉर्ड को देखो और नेत्रहीन शहर में "शब्दों" की संख्या की पहचान करें, जो एक तेज मानसिक कार्य है। एक निर्धारित सेल में दर्ज करें और स्पेस ब्रेक की संख्या के आधार पर शहर से सड़क को विभाजित करने के लिए एक सूत्र का उपयोग करें (Nth स्थान पर अलग जहां N = कुल रिक्त स्थान + 1 - शहर के नाम में शब्दों की संख्या)।


-1

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

सूत्र ... पता & amp; शहर: = LEFT (A2, FIND ("ओएच", ए 2) -1) राज्य: = MID (A2, FIND ("OH", A2), 2) - आपने उल्लेख किया सब कुछ OH है, इसलिए मैंने इसे सरल रखा ज़िप: = MID (A2, FIND ("OH", A2) +3,5) विवरण: = TRIM (MID (A2, FIND ("OH", A2) +8,30))

https://onedrive.live.com/redir?page=view&resid=D91C36B074F4D0F6!3224&authkey=!AO_MbW7Qxv4yWDo

enter image description here


1
आपको यहां वास्तविक फॉर्मूले भी पोस्ट करने चाहिए। मुझे पता है कि व्यक्तिगत रूप से मुझे बाहरी लिंक पर जाना पसंद नहीं है जो लोग पोस्ट करते हैं।
Eric F

-2

कोड:

Sub SplitAddress()
    Dim Addr As String
    Dim l As Integer
    Dim Desc As String
    Dim Zip As String
    Dim State As String
    Dim City As String

    Addr = Selection

    l = InStrRev(Addr, "(")
    Desc = Right(Addr, Len(Addr) - l + 1)

    Addr = Left(Addr, InStrRev(Addr, " ", l) - 1)

    l = InStrRev(Addr, " ")
    Zip = Right(Addr, Len(Addr) - l)

    Addr = Left(Addr, InStrRev(Addr, " ", l) - 1)

    l = InStrRev(Addr, " ")
    State = Right(Addr, Len(Addr) - l)

    Addr = Left(Addr, InStrRev(Addr, " ", l) - 1)

    l = InStrRev(Addr, " ")
    City = Right(Addr, Len(Addr) - l)

    Addr = Left(Addr, InStrRev(Addr, " ", l) - 1)

    Selection.Offset(0, 1) = Addr
    Selection.Offset(0, 2) = City
    Selection.Offset(0, 3) = State
    Selection.Range("B11").Offset(0, 4) = Zip
    Selection.Range("B11").Offset(0, 5) = Desc
End Sub

स्पष्टीकरण: दबाएँ Alt+F11 और दिखाई देने वाली विंडो में उपरोक्त कोड पेस्ट करें। फिर एक सेल का चयन करें जिसमें पता शामिल है और खिड़की पर वापस जाएं जहां आप कोड पेस्ट करें और दबाएं F5

अगर वह काम करता है तो हम इसे आपकी विशिष्ट स्थिति के लिए और अधिक विशिष्ट बनाने पर काम कर सकते हैं।


@Raystafarian, मुझे लगता है कि आपने प्रश्न को गलत बताया है। ओपी का कहना है कि डेटा हमेशा आपूर्ति प्रारूप में होता है। प्रश्न में प्रारूप रिक्त है।
Mr. Mascaro

1
दो-शब्द शहरों के बारे में क्या? तीन-शब्द वाले शहर?
Excellll

@ बाह्य, बिना डेटा के कोई समाधान सही नहीं होगा, लेकिन यह आपके द्वारा पोस्ट किए गए उत्तर की तुलना में करीब होगा।
Mr. Mascaro

1
अच्छी तरह से यह या तो सीमांकित किया जा सकता है या मेरे जवाब की तरह एक तालिका का संदर्भ दे सकता है। मुझे लगता है कि यह सिर्फ इस बात पर निर्भर करता है कि ओपी इसे कैसे संभालना चाहता है। मैंने फॉर्मूले का उपयोग करके जवाब दिया क्योंकि वह यह समझने में नहीं लगा कि वीबीए क्या है, फिर भी इसमें अकेले लिखें।
Eric F

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