एक्सेल: एकाच वेळी अनेक मूल्ये शोधा आणि बदला

  • ह्याचा प्रसार करा
Michael Brown

सामग्री सारणी

या ट्युटोरियलमध्ये, आम्ही अनेक शब्द, स्ट्रिंग किंवा वैयक्तिक वर्ण शोधण्याचे आणि बदलण्याचे अनेक मार्ग पाहू, जेणेकरुन तुम्ही तुमच्या गरजेनुसार सर्वात योग्य एक निवडू शकता.

लोक सहसा Excel मध्ये कसे शोधतात? मुख्यतः, शोधा वापरून & वैशिष्ट्य बदला, जे एकल मूल्यांसाठी चांगले कार्य करते. पण तुमच्याकडे दहापट किंवा शेकडो वस्तू बदलण्यासाठी असतील तर? निश्चितपणे, कोणीही त्या सर्व बदल्या व्यक्तिचलितपणे एक-एक करून करू इच्छित नाही आणि डेटा बदलल्यावर ते सर्व पुन्हा करा. सुदैवाने, 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 - वर्ण, स्ट्रिंग, किंवा बदलण्यासाठी शब्द.

    एक्सेल 365 मध्ये, डायनॅमिक अॅरेच्या समर्थनामुळे, हे सामान्य सूत्र म्हणून कार्य करते, जे फक्त शीर्ष सेल (B2) मध्ये प्रविष्ट करणे आवश्यक आहे:

    =MassReplace(A2:A10, D2:D4, E2:E4)

    प्री-डायनॅमिक एक्सेलमध्ये, हे जुन्या-शैलीतील CSE अॅरे फॉर्म्युला म्हणून कार्य करते: तुम्ही संपूर्ण स्रोत श्रेणी (B2:B10) निवडा, टाइप करा फॉर्म्युला, आणि ते पूर्ण करण्यासाठी Ctrl + Shift + Enter की एकाच वेळी दाबा.

    फायदे : Excel 2019 मधील कस्टम LAMBDA फंक्शनचा एक सभ्य पर्याय , Excel 2016 आणि पूर्वीच्या आवृत्त्या

    उणिवा : कार्यपुस्तिका मॅक्रो-सक्षम .xlsm फाइल म्हणून जतन करणे आवश्यक आहे

    VBA मॅक्रोसह एक्सेलमध्ये मोठ्या प्रमाणात बदला

    तुम्हाला ऑटो आवडत असल्यास मॅक्रोसह सामान्य कार्ये जुळवा, मग तुम्हीश्रेणीतील एकाधिक मूल्ये शोधण्यासाठी आणि पुनर्स्थित करण्यासाठी खालील VBA कोड वापरू शकता.

    Sub BulkReplace() श्रेणी म्हणून मंद Rng, श्रेणी म्हणून SourceRng, एररवर श्रेणी म्हणून बदला Rng पुढील सेट करा SourceRng = Application.InputBox( "स्रोत डेटा: " , "बल्क रिप्लेस" , ऍप्लिकेशन.निवड.पत्ता, प्रकार :=8) त्रुटी.साफ करा जर SourceRng काहीही नसेल तर ReplaceRng = Application.InputBox सेट करा ("रेंज बदला:" , "बल्क रिप्लेस" , प्रकार :=8) एरर.Clear ReplaceRng काहीही नाही तर Application.ScreenUpdating = False प्रत्येक Rng साठी ReplaceRng.Columns(1).Cells SourceRng.Replace what:=Rng.Value, replacement:=Rng.Offset(0, 1).पुढील मूल्य Application.ScreenUpdating = True End If End If End Sub

    लगेच मॅक्रो वापरण्यासाठी, तुम्ही कोड असलेली आमची नमुना कार्यपुस्तिका डाउनलोड करू शकता. किंवा तुम्ही तुमच्या स्वतःच्या वर्कबुकमध्ये कोड टाकू शकता.

    मॅक्रो कसे वापरावे

    मॅक्रो चालवण्यापूर्वी, खालील इमेजमध्ये दाखवल्याप्रमाणे जुनी आणि नवीन व्हॅल्यू दोन जवळच्या कॉलममध्ये टाइप करा ( C2:D4).

    आणि नंतर, तुमचा स्रोत डेटा निवडा, Alt + F8 दाबा, BulkReplace मॅक्रो निवडा आणि Run वर क्लिक करा.

    <0

    जसे स्रोत राग पूर्वनिवडलेले आहे, फक्त संदर्भ सत्यापित करा, आणि ओके क्लिक करा:

    25>

    त्यानंतर, रिप्लेस रेंज निवडा आणि ओके क्लिक करा:

    पूर्ण!

    फायदे : एकदा सेटअप, कधीही पुन्हा वापरा

    तोटे : मॅक्रो प्रत्येक डेटासह चालवणे आवश्यक आहेबदला

    सबस्ट्रिंग टूलसह एक्सेलमध्ये एकाधिक शोधा आणि बदला

    पहिल्याच उदाहरणात, मी नमूद केले आहे की नेस्टेड सबस्टिट्यूट हा एक्सेलमध्ये एकाधिक मूल्ये बदलण्याचा सर्वात सोपा मार्ग आहे. माझी चूक होती हे मी कबूल करतो. आमचा अल्टिमेट सूट गोष्टी आणखी सोपा करतो!

    तुमच्या वर्कशीटमध्ये मोठ्या प्रमाणात बदल करण्यासाठी, अॅबलिबिट्स डेटा टॅबवर जा आणि सबस्ट्रिंग टूल्स > क्लिक करा. सबस्ट्रिंग्स बदला .

    सबस्ट्रिंग्स बदला डायलॉग बॉक्स तुम्हाला स्रोत श्रेणी आणि <1 परिभाषित करण्यास सांगेल>सबस्ट्रिंग्स श्रेणी.

    निवडलेल्या दोन श्रेणींसह, बदला बटणावर क्लिक करा आणि उजवीकडे घातलेल्या नवीन स्तंभात परिणाम शोधा मूळ डेटाचा. होय, ते सोपे आहे!

    टीप. बदला वर क्लिक करण्यापूर्वी, तुमच्यासाठी एक महत्त्वाची गोष्ट आहे - केस-संवेदी बॉक्स. तुम्हाला अपरकेस आणि लोअरकेस अक्षरे भिन्न वर्ण म्हणून हाताळायची असल्यास ते निवडण्याची खात्री करा. या उदाहरणात, आम्ही या पर्यायावर खूण करतो कारण आम्हाला फक्त कॅपिटलाइझ केलेल्या स्ट्रिंग्स बदलायच्या आहेत आणि "fr", "uk", किंवा "ak" सारख्या सबस्ट्रिंग्स इतर शब्दांमध्ये अखंड ठेवायचे आहेत.

    स्ट्रिंगवर इतर कोणत्या मोठ्या प्रमाणात ऑपरेशन्स करता येतील हे जाणून घेण्यास उत्सुक असल्यास, आमच्या अल्टिमेट सूटमध्ये समाविष्ट असलेली इतर सबस्ट्रिंग टूल्स पहा. किंवा त्याहूनही चांगले, खालील मूल्यमापन आवृत्ती डाउनलोड करा आणि ते वापरून पहा!

    असे कसे शोधायचे आणि बदलायचेExcel मध्ये एकाच वेळी अनेक शब्द आणि वर्ण. वाचल्याबद्दल मी तुमचा आभारी आहे आणि पुढच्या आठवड्यात तुम्हाला आमच्या ब्लॉगवर भेटण्याची आशा आहे!

    उपलब्ध डाउनलोड

    एक्सेल (.xlsm फाइल) मध्ये एकाधिक शोधा आणि बदला

    अल्टीमेट सूट 14 -दिवस पूर्ण-कार्यक्षम आवृत्ती (.exe फाइल)

    नावे.

    ते पूर्ण करण्यासाठी, D2:D4 मध्ये जुनी मूल्ये आणि E2:E4 मधील नवीन मूल्ये खालील स्क्रीनशॉटमध्ये दर्शविल्याप्रमाणे प्रविष्ट करा. आणि नंतर, खालील सूत्र B2 मध्ये ठेवा आणि एंटर दाबा:

    =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2:A10, D2, E2), D3, E3), D4, E4)

    …आणि तुमच्याकडे सर्व बदल एकाच वेळी केले जातील:

    कृपया लक्षात ठेवा, वरील दृष्टीकोन केवळ Excel 365 मध्ये कार्य करतो जो डायनॅमिक अॅरेला सपोर्ट करतो.

    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 सह एकाधिक नोंदी शोधा आणि बदला

    जेव्हा तुम्ही संपूर्ण सेल सामग्री बदलण्याचा विचार करत असाल, त्याचा भाग नाही, तेव्हा XLOOKUP फंक्शन उपयोगी पडेल.

    चलातुमच्याकडे स्तंभ A मध्ये देशांची यादी आहे असे म्हणा आणि संबंधित पूर्ण नावांसह सर्व संक्षेप पुनर्स्थित करण्याचे लक्ष्य ठेवा. मागील उदाहरणाप्रमाणे, तुम्ही "शोधा" आणि "पुन्हा बदला" आयटम स्वतंत्र स्तंभांमध्ये (अनुक्रमे डी आणि ई) इनपुट करून प्रारंभ करा आणि नंतर हे सूत्र B2:

    =XLOOKUP(A2, $D$2:$D$4, $E$2:$E$4, A2)

    मध्ये प्रविष्ट करा. एक्सेल भाषेतून मानवी भाषेत अनुवादित केलेले, सूत्र काय करते ते येथे आहे:

    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 दोन्ही फ्रान्स ने बदलेल.

    फायदे : नेहमीच्या फंक्शन्सचा असामान्य वापर; सर्व एक्सेल आवृत्त्यांमध्ये कार्य करते

    उणिवा : सेल स्तरावर कार्य करते, सेल सामग्रीचा भाग बदलू शकत नाही

    पुनरावर्ती LAMBDA फंक्शन वापरून एकाधिक बदलू शकते

    मायक्रोसॉफ्टसाठी365 सदस्य, एक्सेल एक विशेष कार्य प्रदान करते जे पारंपारिक सूत्र भाषा वापरून सानुकूल कार्ये तयार करण्यास अनुमती देते. होय, मी LAMBDA बद्दल बोलत आहे. या पद्धतीचे सौंदर्य हे आहे की ते खूप लांब आणि गुंतागुंतीचे सूत्र अतिशय संक्षिप्त आणि सोप्यामध्ये रूपांतरित करू शकते. शिवाय, ते तुम्हाला तुमची स्वतःची फंक्शन्स तयार करू देते जी एक्सेलमध्ये अस्तित्वात नाहीत, जे आधी VBA सह शक्य होते.

    सानुकूल LAMBDA फंक्शन्स तयार करणे आणि वापरणे याबद्दल तपशीलवार माहितीसाठी, कृपया हे ट्युटोरियल पहा: कसे Excel मध्ये LAMBDA फंक्शन्स लिहिण्यासाठी. येथे, आम्ही काही व्यावहारिक उदाहरणांवर चर्चा करू.

    फायदे : परिणाम एक मोहक आणि वापरण्यास आश्चर्यकारकपणे सोपे आहे, बदली जोड्यांची संख्या काहीही असो

    तोटे : फक्त Excel 365 मध्ये उपलब्ध; वर्कबुक-विशिष्ट आणि वेगवेगळ्या वर्कबुकमध्ये पुन्हा वापरता येत नाही

    उदाहरण 1. एकाच वेळी अनेक शब्द / स्ट्रिंग शोधा आणि बदला

    एकाधिक शब्द किंवा मजकूर एकाच वेळी बदलण्यासाठी, आम्ही एक सानुकूल तयार केला आहे 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 फंक्शन जुनी यादी रिक्त नाही (जुनी"") आहे की नाही हे तपासते. खरे असल्यास, MultiReplace फंक्शन कॉल केले जाते. FALSE असल्यास, फंक्शन मजकूर त्याचे वर्तमान फॉर्म परत करतो आणि बाहेर पडतो.

    दुसरा फॉर्म्युला रिव्हर्स लॉजिक वापरतो: जर जुना रिक्त असेल (old=""), तर <1 परत करा>मजकूर आणि बाहेर पडा; अन्यथा MultiReplace ला कॉल करा.

    सर्वात अवघड भाग पूर्ण झाला आहे! खाली स्क्रीनशॉटमध्ये दाखवल्याप्रमाणे नेम मॅनेजरमधील MultiReplace फंक्शनला नाव देणे तुमच्यासाठी बाकी आहे. तपशीलवार मार्गदर्शक तत्त्वांसाठी, कृपया LAMBDA फंक्शनचे नाव कसे द्यायचे ते पहा.

    एकदा फंक्शनला नाव मिळाले की, तुम्ही ते इतर कोणत्याही इनबिल्ट फंक्शनप्रमाणे वापरू शकता.

    अंतिम-वापरकर्त्याच्या दृष्टीकोनातून तुम्ही निवडलेल्या दोन फॉर्म्युलाच्या फरकांपैकी कोणतेही सिंटॅक्स यासारखे सोपे आहे:

    MultiReplace(मजकूर, जुने, नवीन)

    कुठे:

    • मजकूर - स्त्रोत डेटा
    • जुना - शोधण्यासाठी मूल्ये
    • नवीन - बदलण्यासाठी मूल्ये

    मागील उदाहरण थोडे पुढे नेऊन, फक्त देशाचे संक्षेपच नव्हे तर राज्य संक्षेप देखील बदलू. यासाठी, D2 पासून सुरू होणार्‍या स्तंभ D मध्ये संक्षेप ( जुनी मूल्ये) टाईप करा आणि E2 पासून सुरू होणार्‍या स्तंभ E मध्ये पूर्ण नावे ( नवीन मूल्ये) टाइप करा.

    मध्ये B2, मल्टीरिप्लेस फंक्शन एंटर करा:

    =MultiReplace(A2:A10, D2, E2)

    एंटर दाबा आणि परिणामांचा आनंद घ्या :)

    हे सूत्र कसे कार्य करते

    सूत्र समजून घेण्याचा संकेत म्हणजे पुनरावृत्ती समजून घेणे. हे क्लिष्ट वाटू शकते, परंतु तत्त्व अगदी सोपे आहे. प्रत्येकासहपुनरावृत्ती, रिकर्सिव फंक्शन मोठ्या समस्येचे एक लहान उदाहरण सोडवते. आमच्या बाबतीत, 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(…))) <3

    किंवा

    =LAMBDA(text, old, new, IF(old"", MultiReplace(…), text))

    उदाहरण 2. एक्सेलमध्ये एकाधिक वर्ण पुनर्स्थित करा

    तत्त्वानुसार, मागील उदाहरणामध्ये चर्चा केलेले मल्टीरिप्लेस फंक्शन हे करू शकते वरील स्क्रीनशॉट्समधील संक्षिप्त आणि पूर्ण नावांप्रमाणेच, प्रत्येक जुने आणि नवीन वर्ण वेगळ्या सेलमध्ये प्रविष्ट केले असल्यास, वैयक्तिक वर्ण देखील हाताळा.

    तुम्ही जुने इनपुट करू इच्छित असल्यासएका सेलमधील वर्ण आणि दुसर्‍या सेलमध्ये नवीन वर्ण, किंवा त्यांना थेट सूत्रामध्ये टाइप करा, त्यानंतर तुम्ही यापैकी एक सूत्र वापरून, 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))))

    नेम मॅनेजरमध्ये तुमच्या नवीन लॅम्बडा फंक्शनला नेहमीप्रमाणे नाव देण्याचे लक्षात ठेवा:

    आणि तुमचे नवीन कस्टम फंक्शन वापरासाठी तयार आहे:

    रिप्लेसचार्स(मजकूर, जुने_चार, नवीन_चार)

    कुठे:

    • टेक्स्ट - मूळ स्ट्रिंग्स
    • जुने - शोधण्यासाठी वर्ण
    • नवीन - बदलण्यासाठी वर्ण

    याची फील्ड चाचणी देण्यासाठी, चला असे काहीतरी करू जे बर्‍याचदा इंपोर्टेड डेटावर केले जाते - स्मार्ट कोट्स आणि स्मार्ट अॅपोस्ट्रॉफीस स्ट्रेट कोट्स आणि स्ट्रेट अॅपोस्ट्रॉफीने बदला.

    प्रथम, आम्ही D2 मध्ये स्मार्ट कोट्स आणि स्मार्ट अॅपोस्ट्रॉफी, सरळ कोट्स आणि E2 मध्ये सरळ अॅपोस्ट्रॉफी इनपुट करू , चांगल्या वाचनीयतेसाठी स्पेससह वर्ण वेगळे करणे. (आम्ही दोन्ही सेलमध्ये समान परिसीमक वापरत असल्याने, त्याचा परिणामावर कोणताही परिणाम होणार नाही - एक्सेल फक्त एका स्पेसला स्पेसने बदलेल.)

    त्यानंतर, आम्ही हे सूत्र B2 मध्ये प्रविष्ट करतो:

    =ReplaceChars(A2:A4, D2, E2)

    आणि आम्ही जे शोधत होतो तेच परिणाम मिळवा:

    21>

    सूत्रात थेट वर्ण टाइप करणे देखील शक्य आहे. आमच्या बाबतीत, फक्त याप्रमाणे सरळ कोट "डुप्लिकेट" करणे लक्षात ठेवा:

    =ReplaceChars(A2:A4, "“ ” ’", """ "" '")

    हे सूत्र कसे कार्य करते

    The ReplaceChars old_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 स्ट्रिंगचे मूल्यांकन करते . जर ते रिकामे नसेल, तर फंक्शन स्वतःच कॉल करते. शेवटचा वर्ण बदलताच, पुनरावृत्ती प्रक्रिया पूर्ण होते, सूत्र मजकूर त्याचे वर्तमान स्वरूप परत करते आणि बाहेर पडते.

    टीप. आमच्या मुख्य सूत्रांमध्ये वापरलेले SUBSTITUTE फंक्शन केस-सेन्सिटिव्ह असल्याने, दोन्ही Lambdas ( MultiReplace आणि ReplaceChars ) अप्परकेस आणि लोअरकेस अक्षरे भिन्न वर्ण मानतात.

    UDF सह मोठ्या प्रमाणात शोधा आणि बदला

    तुमच्या Excel मध्ये LAMBDA फंक्शन उपलब्ध नसल्यास, तुम्ही VBA वापरून पारंपारिक पद्धतीने मल्टी-रिप्लेससाठी वापरकर्ता-परिभाषित फंक्शन लिहू शकता.

    UDF ला LAMBDA-परिभाषित MultiReplace फंक्शन पासून वेगळे करण्यासाठी, आम्ही त्याला वेगळे नाव देणार आहोत, म्हणा MassReplace . फंक्शनचा कोड खालीलप्रमाणे आहे:

    फंक्शन मास रिप्लेस (इनपुटआरएनजी रेंज म्हणून, रेंज म्हणून शोधा, आरएनजी रेंज म्हणून बदला) व्हेरिएंट म्हणून () मंदपरिणाम संचयित करण्यासाठी arRes() व्हेरिएंट 'अॅरे म्हणून मंद arSearchReplace(), स्ट्रिंग म्हणून sTmp' अॅरे जेथे शोधा/बदली जोड्या संग्रहित कराव्यात, तात्पुरती स्ट्रिंग Dim iFindCurRow, cntFindRows As Long' इंडेक्स SearchReplace अॅरेच्या सध्याच्या पंक्तीची, मोजा पंक्ती मंद करा iInputCurRow, iInputCurCol, cntInputRows, cntInputCols 'स्रोत श्रेणीतील वर्तमान पंक्तीची अनुक्रमणिका, स्रोत श्रेणीतील वर्तमान स्तंभाची अनुक्रमणिका, पंक्तींची संख्या, स्तंभांची संख्या cntInputRows = InputRng.InputRng.InputCols = InputRng. .Columns.Count cntFindRows = FindRng.Rows.Count ReDim arRes(1 to cntInputRows, 1 to cntInputCols) reDim arSearchReplace(1 to cntFindRows, 1 to 2) 'iFindsRow =cRNtRows साठी find/replace जोड्या तयार करणे iFindCurRow, 1) = FindRng.Cells(iFindCurRow, 1). Value arSearchReplace(iFindCurRow, 2) = ReplaceRng.Cells(iFindCurRow, 1). मूल्य पुढील ' iInCownt to iCurnt = iInCurputs = iInCourput साठी स्रोत श्रेणीमध्ये शोधणे आणि बदलणे 1 ते cntInputCols sTm p = InputRng.Cells(iInputCurRow, iInputCurCol).मूल्य 'प्रत्येक सेलमधील सर्व फाइंड/रिप्लेस जोड्या बदलणे iFindCurRow = 1 ते cntFindRows sTmp = Replace(sTmp, arSearchReplace(iFindCurRow, 1), arSearch2) Next(arSearch2) (iInputCurRow, iInputCurCol) = sTmp नेक्स्ट Next MassReplace = arRes एंड फंक्शन

    LAMBDA-परिभाषित फंक्शन्स प्रमाणे, UDF वर्कबुक-व्यापी आहेत. म्हणजे द

    मायकेल ब्राउन हे सॉफ्टवेअर टूल्स वापरून जटिल प्रक्रिया सुलभ करण्याच्या उत्कटतेने एक समर्पित तंत्रज्ञान उत्साही आहे. टेक उद्योगातील एका दशकाहून अधिक अनुभवासह, त्यांनी Microsoft Excel आणि Outlook, तसेच Google Sheets आणि Docs मध्ये आपल्या कौशल्यांचा गौरव केला आहे. मायकेलचा ब्लॉग त्याचे ज्ञान आणि कौशल्य इतरांसोबत सामायिक करण्यासाठी समर्पित आहे, उत्पादकता आणि कार्यक्षमता सुधारण्यासाठी सुलभ टिपा आणि ट्यूटोरियल प्रदान करतो. तुम्ही अनुभवी व्यावसायिक असाल किंवा नवशिक्या असाल, मायकेलचा ब्लॉग या आवश्यक सॉफ्टवेअर टूल्सचा जास्तीत जास्त फायदा घेण्यासाठी मौल्यवान अंतर्दृष्टी आणि व्यावहारिक सल्ला देतो.