فهرست مطالب
سه راه برای یافتن و حذف موارد تکراری در یک سلول در اکسل وجود دارد. فقط یکی را انتخاب کنید که برای شما مناسب است.
در مورد حذف مقادیر یا ردیف های تکراری، مایکروسافت اکسل مجموعه ای از گزینه های مختلف را ارائه می دهد. اما وقتی نوبت به حذف متن یکسان در یک سلول داده می شود، اکسل هیچ چیز را ارائه نمی دهد. بدون ابزار، بدون ویژگی، بدون فرمول، بدون هیچ چیز. آیا ما را از رسیدن به هدفمان باز می دارد؟ در هیچ موردی. اگر اکسل تابع مورد نیاز ما را ندارد، بیایید برویم یکی از خودمان را بنویسیم :)
چگونه کلمات تکراری را در سلول اکسل حذف کنیم
مشکل : شما کلمات یا رشته های متنی یکسانی در یک سلول دارید و می خواهید دومین و همه تکرارهای بعدی را حذف کنید.
راه حل : یک تابع سفارشی تعریف شده توسط کاربر یا ماکرو VBA.
عملکرد تعریف شده توسط کاربر برای حذف موارد تکراری در یک سلول
برای حذف متن تکراری در یک سلول، می توانید از تابع تعریف شده توسط کاربر (UDF) زیر استفاده کنید. , با نام RemoveDupeWords :
تابع RemoveDupeWords(text As String , Optional delimiter As String = " " ) As String Dim فرهنگ لغت به عنوان Object Dim x, part Set dictionary = CreateObject ( "Scripting.Dictionary" ) .CompareMode = vbTextCompare For Every x In Split(text, delimiter) part = Trim(x) If part "" And not dictionary.Exists(part) سپس dictionary.Add part, Nothing End If Next If dictionary.Count > 0 سپس RemoveDupeWords = Join(dictionary.keys,جداکننده) Else RemoveDupeWords = "" End If Set dictionary = Nothing End Functionچگونه کد تابع را در کتاب کار خود وارد کنیم
برای افزودن کد بالا به Excel، این کاری است که باید انجام دهید:
- Alt + F11 را فشار دهید تا ویرایشگر ویژوال بیسیک باز شود.
- در پنجره سمت چپ، روی ThisWorkbook کلیک راست کرده و Insert را انتخاب کنید. > Module .
- کد بالا را در پنجره Code جایگذاری کنید.
برای اطلاعات بیشتر، لطفاً به نحوه درج VBA مراجعه کنید. کد در اکسل.
سینتکس تابع RemoveDupeWords
عملکرد تازه ایجاد شده ما برای حذف متن تکراری در یک سلول دارای نحو زیر است:
RemoveDupeWords(text, [delimiter])Where :
- Text (الزامی) - رشته یا سلولی که میخواهید متن تکراری را از آن حذف کنید.
- Limiter (اختیاری) - جداکننده ای که متن تکرار شده با آن جدا می شود. اگر حذف شود، یک فاصله برای جداکننده استفاده میشود.
این تابع به حروف کوچک و بزرگ حساس نیست ، به این معنی که حروف کوچک و بزرگ بهعنوان کاراکترهای یکسان در نظر گرفته میشوند.
نحوه استفاده از تابع RemoveDupeWords
هنگامی که کد تابع به کتاب کار شما اضافه شد، می توانید به همان روشی که از توابع داخلی اکسل استفاده می کنید، از آن در فرمول های خود استفاده کنید.
کافی است نام تابع را بعد از علامت مساوی تایپ کنید و در فرمول intellisense ظاهر می شود. روی تابع دابل کلیک کنید، آن را خواهید داشتدر یک سلول قرار داده شده است. آرگومان ها را تعریف کنید، پرانتز پایانی را تایپ کنید، Enter را فشار دهید و فرمول شما تکمیل می شود.
به عنوان مثال، برای حذف کلمات تکراری جدا شده با کاما و فاصله از A2، فرمول زیر را در B2 وارد کنید، و سپس آن را از طریق سلول های مورد نیاز به پایین بکشید:
=RemoveDupeWords(A2, ", ")
در نتیجه، لیستی از کلمات یا زیر رشته های منحصر به فرد خواهید داشت که با یک <از هم جدا شده اند. 17>کاما و فاصله :
اگر ترجیح می دهید یک لیست جدا شده با کاما دریافت کنید، از فقط کاما برای جداکننده استفاده کنید. :
=RemoveDupeWords(A2, ",")
اگر اطلاعات منبع شما با یک فاصله از هم جدا شده باشد، آرگومان دوم باید " " باشد یا حذف شود:
=RemoveDupeWords(A2)
مانند هر تابع دیگر اکسل، UDF ما با تغییر داده های منبع به طور خودکار دوباره محاسبه می شود، بنابراین نتایج شما همیشه به روز خواهد بود.
ماکرو VBA برای حذف متن تکراری از چندین سلول به طور همزمان
اگر به دنبال حذف متن تکراری از چندین سلول در یک حرکت هستید، می توانید تابع RemoveDupeWords را فراخوانی کنید. m در یک ماکرو. در این حالت، جداکننده هاردکد است و هر بار که جداکننده تغییر می کند، باید کد ماکرو را به روز کنید. از طرف دیگر، میتوانید چند تغییر کد برای متداولترین جداکنندهها، مثلاً یک فاصله، کاما، یا کاما و فاصله بنویسید و به ماکروهای خود نامهای معنیداری بدهید، مثلاً. RemoveDupesDelimSpace .
کد ماکرو به شرح زیر است:
Public Sub RemoveDupeWords2() سلول کم نور به عنوان محدوده برای هر سلول در Application.Selection cell.Value = RemoveDupeWords(cell.Value, ", " ) انتهای بعدی Subدر کد بالا، جداکننده یک کاما است و فضا . برای استفاده از یک جداکننده متفاوت، "، " را با نویسه(های) دیگری در این خط کد جایگزین کنید:
cell.Value = RemoveDupeWords(cell.Value, ", ")
توجه. برای اینکه ماکرو کار کند، کد آن و کد تابع RemoveDupeWords باید روی یک ماژول قرار داده شوند.
نحوه استفاده از ماکرو
کد ماکرو را در کتاب کار خود وارد کنید یا نمونه کار ماکرو را با کد باز کنید و سپس مراحل زیر را برای اجرای ماکرو انجام دهید.
- محدوده ای از سلول ها را انتخاب کنید که می خواهید متن تکراری را از آنها حذف کنید.
- Alt + F8 را فشار دهید تا کادر محاوره ای Macro باز شود.
- در لیست ماکروها، RemoveDupeWords2 را انتخاب کنید.
- روی Run کلیک کنید.
برای جزئیات بیشتر، لطفاً به نحوه انجام یک ماکرو در اکسل اجرا کنید.
توجه داشته باشید. از آنجایی که عملکرد یک ماکرو قابل بازگشت نیست ، اکیداً توصیه می کنیم کتاب کار خود را درست قبل از استفاده از ماکرو ذخیره کنید. به این ترتیب، اگر مشکلی پیش آمد، می توانید به سادگی کتاب کار را ببندید و دوباره باز کنید و دقیقاً به همان جایی که بودید برمی گردید. یا فقط می توانید یک کپی از کاربرگ(هایی) که ممکن است تحت تأثیر ماکرو قرار گیرند، تهیه کنید.
نحوه حذف کاراکترهای تکراری در یک سلول
مشکل : شما چندین تکرار از یک کاراکتر در یک سلول دارید، در حالی که هر کدامسلول فقط باید شامل یک اتفاق واحد از یک کاراکتر باشد.
راه حل : یک تابع سفارشی تعریف شده توسط کاربر یا ماکرو VBA.
عملکرد تعریف شده توسط کاربر برای حذف کاراکترهای تکراری
برای حذف کاراکترهای تکراری در سلولی که فقط اولین اتفاقات را نگه می دارد، می توانید از تابع تعریف شده توسط کاربر زیر به نام RemoveDupeChars استفاده کنید:
تابع RemoveDupeChars(text As String) به عنوان رشته Dim فرهنگ لغت به عنوان Object Dim char به عنوان String Dim نتیجه به عنوان مجموعه رشته فرهنگ لغت = CreateObject ("Scripting.Dictionary") برای i = 1 To Len(text) char = Mid(text, i, 1 ) اگر Not dictionary.Exists(char) سپس dictionary.Add char, Nothing result = result & char End If Next RemoveDupeChars = نتیجه مجموعه دیکشنری = Nothing End Functionبرای درج کد تابع در Workbook خود، مراحل دقیقاً مانند مثال قبلی است.
RemoveDupeChars syntax تابع
نحو این تابع سفارشی به همان اندازه که ممکن است ساده است - فقط یک آرگومان مورد نیاز است:
RemoveDupeChars(text)که در آن text رشته یا سلولی است که شما می خواهید برای حذف کاراکترهای تکراری.
این تابع به حروف کوچک و بزرگ حساس است و با حروف کوچک و بزرگ به عنوان کاراکترهای مختلف رفتار می کند.
نحوه استفاده از تابع RemoveDupeChars
همه آنچه در مورد استفاده از RemoveDupeWords گفتیم برای RemoveDupeChars صادق است. بنابراین، بدون رفتنبیش از حد در تئوری، اجازه دهید مستقیماً به یک مثال برویم.
برای حذف کاراکترهای تکراری از ستون A که در A2 شروع می شود، این فرمول را در B2 وارد کنید و آن را کپی کنید:
=RemoveDupeChars(A2)
همانطور که در تصویر زیر می بینید، این تابع با موفقیت انواع کاراکترهای مختلف از جمله حروف، ارقام و نمادهای خاص را کنترل می کند:
نکته. اگر کاراکترهای شما با جداکننده مانند فاصله، کاما یا خط فاصله از یکدیگر جدا شده اند، از تابع RemoveDupeWords همانطور که در مثال قبلی نشان داده شده است استفاده کنید.
ماکرو VBA برای حذف کاراکترهای مشابه از یک سلول
مانند RemoveDupeWords ، تابع RemoveDupeChars نیز میتواند از داخل یک ماکرو فراخوانی شود:
عمومی سلول زیر RemoveDupeChars2() کم نور به عنوان محدوده برای هر سلول در Application.Selection cell.Value = RemoveDupeChars(cell.Value) پایان بعدی Subاز آنجایی که این UDF از هیچ جداکننده استفاده نمی کند، نیازی به انجام هیچ گونه تنظیماتی در آن نیست. کد.
توجه داشته باشید. برای اینکه ماکرو کار کند، کد آن و کد RemoveDupeChars UDF باید روی همان ماژول در ویرایشگر VBA قرار داده شود.
نحوه استفاده از ماکرو
با فرض اینکه قبلاً کد ماکرو را در کتاب کار خود وارد کرده اید یا نمونه کار ماکرو حاوی کد را باز کرده اید، ماکرو را از این طریق راه اندازی کنید.
- محدوده ای از سلول ها را انتخاب کنید که می خواهید نویسه های تکراری را حذف کنید.
- Alt + F8 را فشار دهید تا گفتگوی Macro باز شود.کادر.
- در لیست ماکروها، RemoveDupeChars2 را انتخاب کنید.
- کلیک کنید Run .
حذف زیر رشته های تکراری با Ultimate Suite
در ابتدای این آموزش ذکر شد که مایکروسافت اکسل ویژگی داخلی برای حذف موارد تکراری در یک سلول ندارد. اما Ultimate Suite ما این کار را انجام می دهد!
شما می توانید آن را در منوی کشویی Duplicate Remover در برگه Ablebits Data ، در Dedupe<2 پیدا کنید> گروه اگر گزینه Remove Duplicate Substrings در Excel شما ظاهر نمی شود، مطمئن شوید که آخرین نسخه Ultimate Suite را نصب کرده اید (یک نسخه آزمایشی رایگان از اینجا قابل دانلود است).
<. 3>
برای حذف کلمات یا متن تکراری از چندین سلول در 5 ثانیه (یک ثانیه در هر مرحله :)، این کاری است که باید انجام دهید:
- داده های منبع خود را انتخاب کنید و <را راه اندازی کنید 1>ابزار Duplicate Substrings را حذف کنید.
- جداکننده را مشخص کنید.
- تعریف کنید که آیا جداکننده های متوالی را به عنوان یکی (پیش فرض) در نظر بگیرید یا خیر.
- انتخاب کنید جستجوی حساس به بزرگی یا حساس به بزرگی انجام شود.
- روی حذف کلیک کنید.
انجام شد! بدون مشکل VBA یا فرمول، فقط نتایج سریع و دقیق.
برای اطلاعات بیشتر در مورد این افزونه عالی، لطفا از صفحه اصلی آن دیدن کنید. یا حتی بهتر از آن، نسخه ارزیابی را در زیر دانلود کنید و آن را امتحان کنید!
این روش حذف متن تکراری در یک سلول است.از خواندن شما سپاسگزارم و امیدوارم هفته آینده شما را در وبلاگ خود ببینیم!
بارگیری های موجود
نمونه هایی برای حذف موارد تکراری در سلول (فایل xlsm.)
Ultimate Suite 14 نسخه کاملاً کاربردی -day (فایل exe)