सामग्री तालिका
यस ट्यूटोरियलमा, हामी धेरै शब्दहरू, स्ट्रिङहरू, वा व्यक्तिगत क्यारेक्टरहरू फेला पार्ने र प्रतिस्थापन गर्ने धेरै तरिकाहरू हेर्नेछौं, ताकि तपाईं आफ्नो आवश्यकता अनुसार सबैभन्दा उपयुक्त छनौट गर्न सक्नुहुन्छ।
मानिसहरूले सामान्यतया Excel मा कसरी खोज्छन्? अधिकतर, खोज र amp प्रयोग गरेर; सुविधा बदल्नुहोस्, जसले एकल मानहरूको लागि राम्रो काम गर्दछ। तर यदि तपाईंसँग दसौं वा सयौं वस्तुहरू बदल्नको लागि छ भने के हुन्छ? पक्कै पनि, कोही पनि ती सबै प्रतिस्थापनहरू म्यानुअल रूपमा एक-एक-एक गर्न चाहँदैनन्, र डेटा परिवर्तन हुँदा यो सबै फेरि गर्नुहोस्। सौभाग्यवश, Excel मा मास रिप्लेस गर्नका लागि केही थप प्रभावकारी विधिहरू छन्, र हामी ती प्रत्येकलाई विस्तृत रूपमा अनुसन्धान गर्न जाँदैछौँ।
नेस्टेड SUBSTITUTE सँग धेरै मानहरू फेला पार्नुहोस् र प्रतिस्थापन गर्नुहोस्<7
एक्सेलमा धेरै प्रविष्टिहरू फेला पार्ने र प्रतिस्थापन गर्ने सबैभन्दा सजिलो तरिका SUBSTITUTE प्रकार्य प्रयोग गरेर हो।
सूत्रको तर्क धेरै सरल छ: तपाईंले पुरानो मानलाई नयाँसँग बदल्न केही व्यक्तिगत प्रकार्यहरू लेख्नुहुन्छ। । र त्यसपछि, तपाईंले ती प्रकार्यहरू एक अर्कामा नेस्ट गर्नुहुन्छ, ताकि प्रत्येक पछिल्ला SUBSTITUTE ले अघिल्लो SUBSTITUTE को आउटपुट प्रयोग गरी अर्को मान खोज्छ।
SUBSTITUTE(SUBSTITUTE(SUBSTITUTE( text , old_text1 , new_text1 ), old_text2 , new_text2 ), old_text3 , new_text3 )A2:A10 मा स्थानहरूको सूचीमा, मान्नुहोस् कि तपाईंले संक्षिप्त देश नामहरू (जस्तै FR , UK र USA ) लाई पूर्ण रूपमा बदल्न चाहनुहुन्छ। MassReplace प्रकार्यले कार्यपुस्तिकामा मात्र काम गर्नेछ जसमा तपाईंले कोड घुसाउनु भएको छ। यदि तपाइँ यसलाई सही तरिकाले कसरी गर्ने भनेर निश्चित हुनुहुन्न भने, कृपया एक्सेलमा VBA कोड कसरी घुसाउने मा वर्णन गरिएका चरणहरू पालना गर्नुहोस्।
कोड तपाइँको कार्यपुस्तिकामा थपिएपछि, प्रकार्य सुत्र इन्टेलिसेन्समा देखा पर्नेछ - मात्र प्रकार्यको नाम, तर्क होइन! यद्यपि, मलाई लाग्छ सिन्ट्याक्स सम्झनु कुनै ठूलो कुरा होइन:
MassReplace(input_range, find_range, replace_range)जहाँ:
- Input_range - स्रोत दायरा जहाँ तपाईं मानहरू प्रतिस्थापन गर्न चाहनुहुन्छ।
- Find_range - खोज गर्नका लागि क्यारेक्टर, स्ट्रिङ वा शब्दहरू।
- Replace_range - क्यारेक्टर, स्ट्रिङ, वा प्रतिस्थापन गर्नका लागि शब्दहरू।
Excel 365 मा, गतिशील arrays को समर्थनको कारणले, यसले सामान्य सूत्रको रूपमा काम गर्दछ, जसलाई केवल शीर्ष कक्ष (B2) मा प्रविष्ट गर्न आवश्यक छ:
=MassReplace(A2:A10, D2:D4, E2:E4)
पूर्व-गतिशील एक्सेलमा, यसले पुरानो शैलीको CSE एरे सूत्रको रूपमा काम गर्दछ: तपाईंले सम्पूर्ण स्रोत दायरा (B2:B10) चयन गर्नुहुन्छ, टाइप गर्नुहोस्। सूत्र, र यसलाई पूरा गर्नको लागि Ctrl + Shift + Enter कुञ्जीहरू एकैसाथ थिच्नुहोस्।
फायदाहरू : Excel 2019 मा अनुकूलन LAMBDA प्रकार्यको एक सभ्य विकल्प , Excel 2016 र अघिल्लो संस्करणहरू
कमजोरीहरू : कार्यपुस्तिकालाई म्याक्रो-सक्षम .xlsm फाइलको रूपमा सुरक्षित गर्नुपर्छ
VBA म्याक्रोसँग एक्सेलमा बल्क प्रतिस्थापन गर्नुहोस्
यदि तपाइँ अटो मन पराउनुहुन्छ म्याक्रोसँग सामान्य कार्यहरू मिलाउनुहोस्, त्यसपछि तपाईंदायरामा धेरै मानहरू फेला पार्न र प्रतिस्थापन गर्न निम्न VBA कोड प्रयोग गर्न सक्छ।
Sub BulkReplace() Dim Rng as Range, SourceRng as Range, ReplaceRng As Range On Error अर्को सेट SourceRng = Application.InputBox( "स्रोत डेटा: " , "बल्क प्रतिस्थापन" , अनुप्रयोग। चयन। ठेगाना, प्रकार :=8) त्रुटि। यदि SourceRng केही छैन भने खाली गर्नुहोस् तब ReplaceRng = Application.InputBox सेट गर्नुहोस् Err.Clear यदि ReplaceRng केहि पनि छैन तब Application.ScreenUpdating = False प्रत्येक Rng को लागि ReplaceRng.Columns(1).Cells SourceRng.Replace what:=Rng.Value, प्रतिस्थापन:=Rng.Offset(0, 1).Value next Application.ScreenUpdating = True End If End यदि End Subम्याक्रोको प्रयोग तुरुन्तै गर्नको लागि, तपाईंले कोड समावेश भएको हाम्रो नमूना कार्यपुस्तिका डाउनलोड गर्न सक्नुहुन्छ। वा तपाईले आफ्नै कार्यपुस्तिकामा कोड घुसाउन सक्नुहुन्छ।
म्याक्रो कसरी प्रयोग गर्ने
म्याक्रो चलाउनु अघि, पुरानो र नयाँ मानहरूलाई दुई छेउछाउको स्तम्भहरूमा टाइप गर्नुहोस् जुन तलको छविमा देखाइएको छ ( C2:D4)।
र त्यसपछि, आफ्नो स्रोत डेटा चयन गर्नुहोस्, Alt + F8 थिच्नुहोस्, BulkReplace म्याक्रो छान्नुहोस्, र Run मा क्लिक गर्नुहोस्।
जसरी स्रोत क्रोध पूर्व चयन गरिएको छ, केवल सन्दर्भ प्रमाणित गर्नुहोस्, र ठीक क्लिक गर्नुहोस्:
25>
त्यसपछि, रिप्लेस दायरा चयन गर्नुहोस्, र ठीक क्लिक गर्नुहोस्:
सम्पन्न!
फाइदाहरू : एक पटक सेटअप गर्नुहोस्, जुनसुकै बेला पुन: प्रयोग गर्नुहोस्
कमजोरीहरू : म्याक्रो प्रत्येक डेटासँग चलाउन आवश्यक छपरिवर्तन
सबस्ट्रिङ उपकरणको साथ एक्सेलमा बहु खोज्नुहोस् र प्रतिस्थापन गर्नुहोस्
पहिलो उदाहरणमा, मैले नेस्टेड SUBSTITUTE एक्सेलमा बहु मानहरू प्रतिस्थापन गर्ने सबैभन्दा सजिलो तरिका हो भनेर उल्लेख गरें। म स्वीकार्छु कि म गलत थिएँ। हाम्रो अल्टिमेट सुइटले चीजहरूलाई अझ सजिलो बनाउँछ!
तपाईँको कार्यपत्रमा ठूलो मात्रामा प्रतिस्थापन गर्न, Ablebits Data ट्याबमा जानुहोस् र सबस्ट्रिङ उपकरण > मा क्लिक गर्नुहोस्। सबस्ट्रिङहरू बदल्नुहोस् ।
सबस्ट्रिङहरू बदल्नुहोस् संवाद बाकसले तपाईंलाई स्रोत दायरा र <1 परिभाषित गर्न सोध्ने देखिन्छ।>सबस्ट्रिङ्स दायरा।
दुई दायराहरू चयन गरी, बदल्नुहोस् बटनमा क्लिक गर्नुहोस् र दायाँतिर घुसाइएको नयाँ स्तम्भमा परिणामहरू फेला पार्नुहोस्। मूल डाटा को। हो, यो एकदम सजिलो छ!
टिप। बदल्नुहोस् क्लिक गर्नु अघि, तपाईंले विचार गर्नुपर्ने एउटा महत्त्वपूर्ण कुरा छ - केस-संवेदनशील बाकस। यदि तपाइँ ठूला र सानो अक्षरहरू फरक क्यारेक्टरहरूको रूपमा ह्यान्डल गर्न चाहनुहुन्छ भने यसलाई चयन गर्न निश्चित हुनुहोस्। यस उदाहरणमा, हामी यो विकल्पमा टिक गर्छौं किनभने हामी केवल क्यापिटलाइज्ड स्ट्रिङहरू प्रतिस्थापन गर्न चाहन्छौं र अन्य शब्दहरूमा "fr", "uk", वा "ak" जस्ता सबस्ट्रिङहरू छोड्न चाहन्छौं।
यदि तपाइँ स्ट्रिङहरूमा अन्य बल्क अपरेशनहरू के गर्न सकिन्छ भनेर जान्न उत्सुक हुनुहुन्छ भने, हाम्रो अल्टिमेट सूटमा समावेश गरिएका अन्य सबस्ट्रिङ उपकरणहरू हेर्नुहोस्। वा अझ राम्रो, तलको मूल्याङ्कन संस्करण डाउनलोड गर्नुहोस् र यसलाई प्रयास गर्नुहोस्!
फेला पार्ने र प्रतिस्थापन गर्ने तरिका यही हो।Excel मा एकै पटक धेरै शब्द र वर्णहरू। पढ्नुभएकोमा म तपाईंलाई धन्यवाद दिन्छु र अर्को हप्ता हाम्रो ब्लगमा तपाईंलाई भेट्ने आशा गर्दछु!
उपलब्ध डाउनलोडहरू
एक्सेलमा बहु खोज र प्रतिस्थापन (.xlsm फाइल)
अल्टिमेट सुइट 14 -दिन पूर्ण-कार्यात्मक संस्करण (.exe फाइल)
नामहरू।यो गर्नको लागि, पुरानो मानहरू D2:D4 मा प्रविष्ट गर्नुहोस् र E2:E4 मा नयाँ मानहरू तलको स्क्रिनसटमा देखाइएको जस्तै। र त्यसपछि, तलको सूत्रलाई B2 मा राख्नुहोस् र Enter थिच्नुहोस्:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2:A10, D2, E2), D3, E3), D4, E4)
…र तपाईंले सबै प्रतिस्थापनहरू एकै पटकमा गर्नुहुनेछ:
कृपया ध्यान दिनुहोस्, माथिको दृष्टिकोणले Excel 365 मा मात्र काम गर्छ जसले गतिशील arrays लाई समर्थन गर्दछ।
Excel 2019, Excel 2016 र पहिलेका प्रि-डायनामिक संस्करणहरूमा, सूत्र हुन आवश्यक छ। शीर्ष कक्ष (B2) को लागि लेखिएको, र त्यसपछि तलको कक्षहरूमा प्रतिलिपि गरियो:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, $D$2, $E$2), $D$3, $E$3), $D$4, $E$4)
कृपया ध्यान दिनुहोस् कि, यस अवस्थामा, हामी निरपेक्ष कक्ष सन्दर्भहरूसँग प्रतिस्थापन मानहरू लक गर्छौं, त्यसैले सूत्र तल प्रतिलिपि गर्दा तिनीहरू सर्दैनन्।
नोट। SUBSTITUTE प्रकार्य केस-सेन्सिटिभ हो, यसको मतलब तपाईंले पुरानो मानहरू ( old_text ) त्यही अक्षरमा टाइप गर्नुपर्छ जुन तिनीहरू मूल डेटामा देखा पर्छन्।
यो सम्भव भए जति सजिलो हुन सक्छ, यो विधिमा महत्त्वपूर्ण कमजोरी छ - जब तपाईंसँग प्रतिस्थापन गर्न दर्जनौं वस्तुहरू छन्, नेस्टेड प्रकार्यहरू व्यवस्थापन गर्न एकदमै गाह्रो हुन्छ।
लाभहरू : सजिलो - कार्यान्वयन गर्न; सबै एक्सेल संस्करणहरूमा समर्थित
कमजोरीहरू : सीमित संख्यामा फेला पार्ने/बदल्ने मानहरूका लागि प्रयोग गर्न उत्तम
XLOOKUP संग धेरै प्रविष्टिहरू खोज्नुहोस् र प्रतिस्थापन गर्नुहोस्
<0 जब तपाईं सम्पूर्ण सेल सामग्री बदल्न खोज्दै हुनुहुन्छ, यसको भाग होइन, XLOOKUP प्रकार्य काममा आउँछ।आउनुहोस्।तपाईंसँग स्तम्भ A मा देशहरूको सूची छ भन्नुहोस् र सम्बन्धित पूरा नामहरूका साथ सबै संक्षिप्त नामहरू प्रतिस्थापन गर्ने लक्ष्य राख्नुहोस्। अघिल्लो उदाहरणमा जस्तै, तपाईले "फेला पार्नुहोस्" र "बदल्नुहोस्" वस्तुहरू अलग-अलग स्तम्भहरूमा (क्रमशः D र E) इनपुट गरेर सुरु गर्नुहोस्, र त्यसपछि यो सूत्र B2:
=XLOOKUP(A2, $D$2:$D$4, $E$2:$E$4, A2)
मा प्रविष्ट गर्नुहोस्। Excel भाषाबाट मानव भाषामा अनुवाद गरिएको, यहाँ सूत्रले के गर्छ:
D2:D4 (lookup_array) मा A2 मान (lookup_value) खोज्नुहोस् र E2:E4 (return_array) बाट मिलान फर्काउनुहोस्। यदि फेला परेन भने, A2 बाट मूल मान तान्नुहोस्।
तलका कक्षहरूमा प्रतिलिपि गरिएको सूत्र प्राप्त गर्न फिल ह्यान्डलमा डबल-क्लिक गर्नुहोस्, र परिणामले तपाईंलाई पर्खिरहने छैन:
XLOOKUP प्रकार्य Excel 365 मा मात्र उपलब्ध भएको हुनाले, माथिको सूत्रले अघिल्लो संस्करणहरूमा काम गर्ने छैन। यद्यपि, तपाईं सजिलैसँग IFERROR वा IFNA र VLOOKUP:
=IFNA(VLOOKUP(A2, $D$2:$E$4, 2, FALSE), A2)
नोटको संयोजनको साथ यो व्यवहारको नक्कल गर्न सक्नुहुन्छ। SUBSTITUTE को विपरीत, XLOOKUP र VLOOKUP प्रकार्यहरू केस-सेन्सेटिभ होइनन् , यसको मतलब तिनीहरूले अक्षर केसलाई बेवास्ता गर्दै लुकअप मानहरू खोज्छन्। उदाहरणका लागि, हाम्रो सूत्रले FR र fr लाई France लाई प्रतिस्थापन गर्नेछ।
लाभहरू : सामान्य प्रकार्यहरूको असामान्य प्रयोग; सबै एक्सेल संस्करणहरूमा काम गर्दछ
कमजोरीहरू : सेल स्तरमा काम गर्दछ, सेल सामग्रीको अंश बदल्न सक्दैन
पुनरावर्ती LAMBDA प्रकार्य प्रयोग गरेर बहु प्रतिस्थापन
माइक्रोसफ्ट को लागी365 सदस्यहरू, एक्सेलले एक विशेष प्रकार्य प्रदान गर्दछ जसले परम्परागत सूत्र भाषा प्रयोग गरेर अनुकूलन प्रकार्यहरू सिर्जना गर्न अनुमति दिन्छ। हो, म LAMBDA को बारेमा कुरा गर्दैछु। यस विधिको सुन्दरता यो हो कि यसले धेरै लामो र जटिल सूत्रलाई धेरै कम्प्याक्ट र सरलमा रूपान्तरण गर्न सक्छ। यसबाहेक, यसले तपाइँलाई तपाइँको आफ्नै प्रकार्यहरू सिर्जना गर्न दिन्छ जुन Excel मा अवस्थित छैन, केहि जुन पहिले VBA सँग मात्र सम्भव थियो।
अनुकूल LAMBDA प्रकार्यहरू सिर्जना गर्ने र प्रयोग गर्ने बारे विस्तृत जानकारीको लागि, कृपया यो ट्यूटोरियल हेर्नुहोस्: कसरी Excel मा LAMBDA प्रकार्यहरू लेख्न। यहाँ, हामी केही व्यावहारिक उदाहरणहरू छलफल गर्नेछौं।
लाभहरू : परिणाम एक सुरुचिपूर्ण र अचम्मको रूपमा कार्य प्रयोग गर्न सरल छ, प्रतिस्थापन जोडीहरूको संख्यामा कुनै फरक पर्दैन
कमजोरीहरू : एक्सेल ३६५ मा मात्र उपलब्ध; कार्यपुस्तिका-विशिष्ट र विभिन्न कार्यपुस्तिकाहरूमा पुन: प्रयोग गर्न सकिँदैन
उदाहरण १. एकै पटकमा धेरै शब्दहरू / स्ट्रिङहरू खोज्नुहोस् र प्रतिस्थापन गर्नुहोस्
एक पटकमा धेरै शब्दहरू वा पाठहरू प्रतिस्थापन गर्न, हामीले एउटा अनुकूलन सिर्जना गरेका छौं। LAMBDA प्रकार्य, नाम MultiReplace , जसले यी मध्ये एउटा फारम लिन सक्छ:
=LAMBDA(text, old, new, IF(old"", MultiReplace(SUBSTITUTE(text, old, new), OFFSET(old, 1, 0), OFFSET(new, 1, 0)), text))
वा
=LAMBDA(text, old, new, IF(old="", text, MultiReplace(SUBSTITUTE(text, old, new), OFFSET(old, 1, 0), OFFSET(new, 1, 0))))
दुबै पुनरावर्ती छन् कार्यहरू जुन आफैलाई कल गर्दछ। भिन्नता केवल निकास बिन्दु कसरी स्थापित हुन्छ भन्नेमा मात्र हो।
पहिलो सूत्रमा, IF प्रकार्यले पुरानो सूची खाली छैन (पुरानो"") छ कि छैन भनेर जाँच गर्छ। यदि TRUE, MultiReplace प्रकार्य भनिन्छ। यदि FALSE, प्रकार्य पाठ यसलाई यसको हालको रूप फर्काउँछ र बाहिर निस्कन्छ।
दोस्रो सूत्रले उल्टो तर्क प्रयोग गर्दछ: यदि पुरानो खाली छ (old=""), त्यसपछि <1 फर्काउनुहोस्।>पाठ र बाहिर निस्कनुहोस्; अन्यथा MultiReplace लाई कल गर्नुहोस्।
सबैभन्दा कठिन भाग पूरा भयो! तलको स्क्रिनसटमा देखाइए जस्तै नाम प्रबन्धकमा MultiReplace प्रकार्यलाई नाम दिनको लागि के गर्न बाँकी छ। विस्तृत दिशानिर्देशहरूका लागि, कृपया LAMBDA प्रकार्यलाई कसरी नाम दिने हेर्नुहोस्।
एकपटक प्रकार्यले नाम प्राप्त गरेपछि, तपाइँ यसलाई अन्य कुनै पनि इनबिल्ट प्रकार्य जस्तै प्रयोग गर्न सक्नुहुन्छ।
0 17> पाठ - स्रोत डेटाअघिल्लो उदाहरणलाई अलि अगाडि लिएर, देशको संक्षिप्त नाम मात्र होइन राज्यको संक्षिप्त नामलाई पनि प्रतिस्थापन गरौं। यसको लागि, D2 मा सुरु हुने स्तम्भ D मा संक्षिप्त नामहरू ( पुरानो मानहरू) टाइप गर्नुहोस् र E2 मा सुरु हुने स्तम्भ E मा पूरा नामहरू ( नयाँ मानहरू) टाइप गर्नुहोस्।
मा B2, MultiReplace प्रकार्य प्रविष्ट गर्नुहोस्:
=MultiReplace(A2:A10, D2, E2)
इन्टर थिच्नुहोस् र परिणामहरूको आनन्द लिनुहोस् :)
19>
यस सूत्रले कसरी काम गर्दछ
सूत्र बुझ्ने सुराग भनेको पुनरावृत्ति बुझ्नु हो। यो जटिल लाग्न सक्छ, तर सिद्धान्त एकदम सरल छ। प्रत्येक संगपुनरावृत्ति, एक पुनरावर्ती प्रकार्यले ठूलो समस्याको एउटा सानो उदाहरण हल गर्दछ। हाम्रो अवस्थामा, MultiReplace प्रकार्य पुरानो र नयाँ मानहरू मार्फत लुप हुन्छ र, प्रत्येक लूपको साथ, एउटा प्रतिस्थापन कार्य गर्दछ:
MultiReplace (SUBSTITUTE(text, old, new), OFFSET(old, 1, 0), OFFSET(new, 1, 0))
नेस्टेड SUBSTITUTE प्रकार्यहरू जस्तै, अघिल्लो SUBSTITUTE को परिणाम अर्को SUBSTITUTE को लागि text प्यारामिटर बन्छ। अर्को शब्दमा, MultiReplace को प्रत्येक अर्को कलमा, SUBSTITUTE प्रकार्यले मूल पाठ स्ट्रिङलाई होइन, तर अघिल्लो कलको आउटपुटलाई प्रशोधन गर्छ।
<1 मा सबै वस्तुहरू ह्यान्डल गर्न>पुरानो सूची, हामी शीर्ष सेलबाट सुरु गर्छौं, र प्रत्येक अन्तरक्रियाको साथ 1 पङ्क्ति तल सार्न OFFSET प्रकार्य प्रयोग गर्छौं:
OFFSET(old, 1, 0)
उस्तै को लागि गरिन्छ। new list:
OFFSET(new, 1, 0)
महत्वपूर्ण कुरा भनेको निकासको बिन्दु प्रदान गर्नु हो ताकि पुनरावृत्ति कलहरूलाई सदाका लागि अगाडि बढ्नबाट रोक्नको लागि। यो IF प्रकार्यको मद्दतले गरिन्छ - यदि पुरानो कक्ष खाली छ भने, प्रकार्यले पाठ यसलाई यसको वर्तमान रूप फर्काउँछ र बाहिर निस्कन्छ:
=LAMBDA(text, old, new, IF(old="", text, MultiReplace(…)))
वा
=LAMBDA(text, old, new, IF(old"", MultiReplace(…), text))
उदाहरण २. एक्सेलमा धेरै क्यारेक्टरहरू बदल्नुहोस्
सिद्धान्तमा, अघिल्लो उदाहरणमा छलफल गरिएको MultiReplace प्रकार्यले व्यक्तिगत क्यारेक्टरहरू पनि ह्यान्डल गर्नुहोस्, प्रत्येक पुरानो र नयाँ क्यारेक्टरलाई छुट्टै कक्षमा प्रविष्ट गरिएको छ, ठ्याक्कै माथिको स्क्रिनसटहरूमा संक्षिप्त र पूरा नामहरू जस्तै।एउटा कक्षमा क्यारेक्टरहरू र अर्को सेलमा नयाँ क्यारेक्टरहरू, वा तिनीहरूलाई सिधै सूत्रमा टाइप गर्नुहोस्, त्यसपछि तपाईंले यी सूत्रहरू मध्ये एउटा प्रयोग गरेर ReplaceChars नामक अर्को अनुकूलन प्रकार्य सिर्जना गर्न सक्नुहुन्छ:
=LAMBDA(text, old_chars, new_chars, IF(old_chars"", ReplaceChars(SUBSTITUTE(text, LEFT(old_chars), LEFT(new_chars)), RIGHT(old_chars, LEN(old_chars)-1), RIGHT(new_chars, LEN(new_chars)-1)), text))
वा
=LAMBDA(text, old_chars, new_chars, IF(old_chars="", text, ReplaceChars(SUBSTITUTE(text, LEFT(old_chars), LEFT(new_chars)), RIGHT(old_chars, LEN(old_chars)-1), RIGHT(new_chars, LEN(new_chars)-1))))
नाम प्रबन्धकमा तपाईंको नयाँ Lambda प्रकार्यलाई सामान्य रूपमा नाम दिन सम्झनुहोस्:
र तपाईंको नयाँ अनुकूलन प्रकार्य प्रयोगको लागि तयार छ:
बदल्नुहोस्(पाठ, पुरानो_चार्स, नयाँ_चार्स)कहाँ:
- 17> पाठ - मूल स्ट्रिङहरू
- पुरानो - खोज्नका लागि क्यारेक्टरहरू
- नयाँ - क्यारेक्टरहरू प्रतिस्थापन गर्न
यसलाई फिल्ड टेस्ट दिन, आयातित डेटामा प्रायः प्रदर्शन हुने केहि गरौं - स्मार्ट उद्धरणहरू र स्मार्ट अपोस्ट्रफीहरूलाई सीधा उद्धरणहरू र सीधा अपोस्ट्रोफीहरूद्वारा प्रतिस्थापन गर्नुहोस्।
पहिले, हामी D2 मा स्मार्ट उद्धरणहरू र स्मार्ट अपोस्ट्रोफहरू, E2 मा सीधा उद्धरणहरू र सीधा अपोस्ट्रफीहरू इनपुट गर्छौं। , राम्रो पठनीयताको लागि खाली ठाउँहरू सहित क्यारेक्टरहरू अलग गर्दै। (हामीले दुबै कक्षहरूमा एउटै डिलिमिटर प्रयोग गर्दा, यसले परिणाममा कुनै प्रभाव पार्दैन - एक्सेलले खाली ठाउँलाई स्पेसले बदल्नेछ।)
त्यसपछि, हामी यो सूत्र B2 मा प्रविष्ट गर्छौं:
=ReplaceChars(A2:A4, D2, E2)
र हामीले खोजेका नतिजाहरू ठ्याक्कै प्राप्त गर्नुहोस्:
21>
यो सूत्रमा सिधै क्यारेक्टरहरू टाइप गर्न सम्भव छ। हाम्रो केसमा, यस प्रकारका सीधा उद्धरणहरू "डुप्लिकेट" गर्न सम्झनुहोस्:
=ReplaceChars(A2:A4, "“ ” ’", """ "" '")
यस सूत्रले कसरी काम गर्दछ
The ReplaceChars पुरानो_chars र new_chars स्ट्रिङहरू मार्फत प्रकार्य चक्र चलाउँछ र बायाँको पहिलो क्यारेक्टरबाट सुरु हुने एक पटकमा एउटा प्रतिस्थापन गर्छ। यो भाग SUBSTITUTE प्रकार्यद्वारा गरिन्छ:
SUBSTITUTE(text, LEFT(old_chars), LEFT(new_chars))
प्रत्येक पुनरावृत्तिको साथ, RIGHT प्रकार्यले old_chars र दुवैको बायाँबाट एउटा क्यारेक्टरलाई हटाउँछ। new_chars स्ट्रिङहरू, ताकि LEFT ले प्रतिस्थापनका लागि अक्षरहरूको अर्को जोडी ल्याउन सक्छ:
ReplaceChars(SUBSTITUTE(text, LEFT(old_chars), LEFT(new_chars)), RIGHT(old_chars, LEN(old_chars)-1), RIGHT(new_chars, LEN(new_chars)-1))
प्रत्येक पुनरावृत्ति कल अघि, IF प्रकार्यले old_chars string को मूल्याङ्कन गर्छ। । यदि यो खाली छैन भने, प्रकार्यले आफैलाई कल गर्दछ। अन्तिम क्यारेक्टर प्रतिस्थापन हुने बित्तिकै, पुनरावृत्ति प्रक्रिया समाप्त हुन्छ, सूत्रले पाठ यसको वर्तमान रूप फर्काउँछ र बाहिर निस्कन्छ।
नोट। किनभने हाम्रो मूल सूत्रहरूमा प्रयोग गरिएको SUBSTITUTE प्रकार्य केस-संवेदनशील हो, दुबै Lambdas ( MultiReplace र ReplaceChars ) ले अपरकेस र लोअरकेस अक्षरहरूलाई फरक क्यारेक्टरहरू मान्छन्।
UDF सँग मास फेला पार्नुहोस् र प्रतिस्थापन गर्नुहोस्
यदि LAMBDA प्रकार्य तपाईंको एक्सेलमा उपलब्ध छैन भने, तपाइँ VBA प्रयोग गरी परम्परागत तरिकामा बहु-प्रतिस्थापनको लागि प्रयोगकर्ता-परिभाषित प्रकार्य लेख्न सक्नुहुन्छ।
UDF लाई LAMBDA-परिभाषित MultiReplace प्रकार्यबाट छुट्याउन, हामी यसलाई फरक नाम दिनेछौँ, भन्नुहोस् MassReplace । प्रकार्यको कोड निम्नानुसार छ:
फंक्शन मास रिप्लेस (इनपुटआरएन दायराको रूपमा, दायराको रूपमा खोज्नुहोस्, दायराको रूपमा बदल्नुहोस्) भेरियन्टको रूपमा () डिमarRes() variant 'array को रूपमा परिणामहरू भण्डारण गर्न Dim arSearchReplace(), sTmp as String' array जहाँ फेला पार्ने/बदल्ने जोडीहरू भण्डारण गर्ने, अस्थायी स्ट्रिङ Dim iFindCurRow, cntFindRows As Long 'SearchReplace array को हालको पङ्क्तिको अनुक्रमणिका, गणना गर्नुहोस्। पङ्क्तिहरूको dim iInputCurRow, iInputCurCol, cntInputRows, cntInputCols स्रोत दायरामा हालको पङ्क्तिको लामो 'सूचकाङ्कको रूपमा, स्रोत दायरामा हालको स्तम्भको अनुक्रमणिका, पङ्क्तिहरूको गणना, स्तम्भहरूको गणना cntInputRows = InputRng.InputRng.InputRngCounts = InputRng. .Columns.Count cntFindRows = FindRng.Rows.Count ReDim arRes(1 to cntInputRows, 1 to cntInputCols) ReDim arSearchReplace(1 to cntFindRows, 1 to 2) 'iFindRow का लागि फेला/रिप्लेस जोडीको एरे तयार गर्दै iFindCurRow, 1) = FindRng.Cells(iFindCurRow, 1)। Value arSearchReplace(iFindCurRow, 2) = ReplaceRng.Cells(iFindCurRow, 1)। Value Next 'खोजी र स्रोत दायरामा प्रतिस्थापन गर्दै 1 cntInputCols sTm मा p = InputRng.Cells(iInputCurRow, iInputCurCol)। मान ' iFindCurRow = 1 को लागि cntFindRows sTmp = प्रतिस्थापन(sTmp, arSearchReplace(iFindCurRow, 1), arSearch2, अर्को, arSearch2 (iInputCurRow, iInputCurCol) = sTmp अर्को अर्को MassReplace = arRes End प्रकार्यLAMBDA-परिभाषित प्रकार्यहरू जस्तै, UDF हरू कार्यपुस्तिका-वाइड हुन्। यसको मतलब छ