فهرست مطالب
فرمولها و روشهای بدون فرمول را برای کوتاه کردن فضاهای خالی، حذف نمادهای خاص (حتی اولین/آخرین N کاراکتر) و رشتههای متنی مشابه قبل/بعد از نویسههای خاص از چندین سلول به طور همزمان بیاموزید.
حذف یک قسمت از متن از چندین سلول به طور همزمان می تواند به اندازه اضافه کردن آن مهم و دشوار باشد. حتی اگر برخی از راه ها را بلد باشید، قطعا راه های جدیدی را در پست امروز وبلاگ پیدا خواهید کرد. من تعداد زیادی توابع و فرمول های آماده آنها را به اشتراک می گذارم و مثل همیشه، ساده ترین - بدون فرمول - را برای آخرین بار ذخیره می کنم ;)
فرمول های Google Sheets برای حذف متن از سلول ها
میخواهم با توابع استاندارد Google Sheets شروع کنم که رشتههای متن و کاراکترهای شما را از سلولها حذف میکند. هیچ عملکرد جهانی برای این کار وجود ندارد، بنابراین فرمولهای مختلف و ترکیبهای آنها را برای موارد مختلف ارائه میدهم.
کاربرگنگار Google: حذف فضای سفید
Whitespace به راحتی میتواند پس از وارد کردن یا در صورت وجود چندین کاربر وارد سلولها شود. همزمان برگه را ویرایش کنید. در واقع، فضاهای اضافی به قدری رایج هستند که Google Sheets یک ابزار Trim ویژه برای حذف تمام فضاهای سفید دارد.
فقط تمام سلولهای Google Sheets را در جایی که میخواهید فضای سفید حذف کنید انتخاب کنید و Data > برش فضای سفید در منوی صفحهگسترده:
هنگامی که روی گزینه کلیک میکنید، همه فضاهای اصلی و انتهایی در انتخاب به طور کامل حذف میشوند در حالی که تمام فضاهای اضافی دربه عبارت دیگر، این افزونه برای کاربرگنگار Google واحد زمان را از مهر زمانی حذف میکند:
شما میتوانید با نصب افزودنی از فروشگاه Google. 30 روز اول کاملاً رایگان و کاملاً کاربردی است، بنابراین شما زمان دارید تا تصمیم بگیرید که آیا ارزش سرمایه گذاری دارد یا خیر.
اگر سؤالی در رابطه با هر بخشی از این پست وبلاگ دارید، شما را در اینجا می بینم. بخش نظرات در زیر!بین دادهها به یک کاهش مییابد:
حذف سایر نویسههای خاص از رشتههای متنی در Google Sheets
افسوس، Google Sheets ابزاری ارائه نمیکند برای "تریم" شخصیت های دیگر به جز فضاها. اینجا باید با فرمول ها سر و کار داشته باشید.
نکته. یا به جای آن از ابزار ما استفاده کنید - ابزارهای قدرت دامنه شما را از هر کاراکتری که با یک کلیک مشخص می کنید، از جمله فضای خالی، آزاد می کند.
در اینجا من با هشتگ قبل از شماره آپارتمان و شماره تلفن با خط تیره و پرانتز در بین آنها صحبت کرده ام:
از فرمول هایی برای حذف آن کاراکترهای خاص استفاده خواهم کرد.
عملکرد SUBSTITUTE در این مورد به من کمک می کند. معمولاً برای جایگزینی یک کاراکتر با کاراکتر دیگر استفاده میشود، اما شما میتوانید آن را به نفع خود تبدیل کنید و کاراکترهای ناخواسته را با… خوب، هیچ چیز :) به عبارت دیگر، آن را حذف کنید.
بیایید ببینیم تابع چه آرگومانی است. نیاز دارد:
SUBSTITUTE(text_to_search، search_for، جایگزین_با، [شماره_رویداد])- text_to_search یا متنی است که باید پردازش شود یا سلولی که حاوی آن متن است. الزامی است.
- search_for کاراکتری است که می خواهید پیدا و حذف کنید. الزامی است.
- replace_with - کاراکتری که به جای نماد ناخواسته درج خواهید کرد. الزامی است.
- تعداد_وقوع — اگر چندین نمونه از کاراکتر مورد نظر شما وجود دارد، در اینجا می توانید مشخص کنید که کدام یک جایگزین شود. کاملا اختیاری است،و اگر این آرگومان را حذف کنید، همه نمونهها با چیزی جدید جایگزین میشوند ( replace_for ).
پس بیایید بازی کنیم. من باید یک هشتگ ( # ) در A1 پیدا کنم و آن را با "هیچ چیز" جایگزین کنم که در صفحات گسترده با گیومه های دوتایی ( """ ) مشخص شده است. با در نظر گرفتن تمام این موارد، می توانم فرمول زیر را بسازم:
=SUBSTITUTE(A1,"#","")
نکته. این هشتگ نیز در دو گیومه قرار دارد، زیرا این روشی است که باید رشتههای متنی را در فرمولهای Google Sheets ذکر کنید.
سپس اگر Google Sheets این کار را به صورت خودکار پیشنهاد نداد، این فرمول را در ستون کپی کنید، و آدرسهای خود را بدون هشتگ دریافت خواهید کرد:
اما چه در مورد آن خط تیره ها و براکت ها؟ آیا باید فرمول های اضافی ایجاد کنید؟ اصلا! اگر چندین تابع SUBSTITUTE را در یک فرمول Google Sheets قرار دهید، همه این نویسهها را از هر سلول حذف خواهید کرد:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"#",""),"(",""),")",""),"-","")
این فرمول نویسهها را یکی یکی و هر SUBSTITUTE را از وسط حذف میکند. ، تبدیل به محدوده ای می شود که باید برای جایگزین بعدی به آن نگاه کرد:
نکته. علاوه بر این، میتوانید آن را در ArrayFormula بپیچید و کل ستون را به یکباره بپوشانید. در این مورد، مرجع سلول ( A1 ) را به داده های خود در ستون ( A1:A7 ) نیز تغییر دهید:
=ArrayFormula(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1:A7,"#",""),"(",""),")",""),"-",""))
برداشتن متن خاص از سلولها در Google Sheets
اگرچه میتوانید از تابع SUBSTITUTE فوقالذکر برای Google Sheets برای حذف متن از سلولها استفاده کنید، من میخواهم نشان دهمیک تابع دیگر نیز - REGEXREPLACE.
نام آن مخفف عبارت 'Regar expression replace' است. و من قصد دارم از عبارات منظم برای جستجوی رشته ها برای حذف و جایگزینی آنها با ' nothing' ( "" ) استفاده کنم.
نکته. اگر علاقه ای به استفاده از عبارات منظم ندارید، در پایان این پست وبلاگ راه بسیار ساده تری را شرح می دهم.
نکته. اگر به دنبال راههایی برای یافتن و حذف موارد تکراری در Google Sheets هستید، به جای آن از این پست وبلاگ دیدن کنید. REGEXREPLACE(text، regular_expression، جایگزینی)
همانطور که می بینید، سه آرگومان برای تابع وجود دارد:
- text — جایی است که شما به دنبال متن هستید رشته برای حذف این می تواند خود متن در گیومه های دوتایی یا اشاره ای به یک سلول/محدوده با متن باشد.
- ظاهر_قاعده - الگوی جستجوی شما که از ترکیب های مختلف کاراکتر تشکیل شده است. شما به دنبال تمام رشته هایی هستید که با این الگو مطابقت دارند. این استدلال جایی است که همه سرگرمی ها اتفاق می افتد، اگر بتوانم بگویم.
- جایگزینی — یک رشته متن دلخواه جدید.
فرض کنیم سلول های من دارای داده است. همچنین حاوی نام کشور ( US ) اگر مکانهای مختلف در سلولها باشد:
چگونه REGEXREPLACE به من کمک میکند آن را حذف کنم؟
=REGEXREPLACE(A1,"(.*)US(.*)","$1 $2")
این فرمول دقیقاً چگونه کار می کند:
- محتویات سلول را اسکن می کند A1
- برای مطابقت با این ماسک: "(.*)US(.*)"
این ماسک به تابع می گویدبه دنبال US باشید، مهم نیست که چه تعداد نویسه دیگر ممکن است قبل از (.*) یا به دنبال (.*) نام کشور باشد.
و کل ماسک به ازای نیازهای تابع به دو نقل قول قرار می گیرد :)
- آخرین آرگومان - "$1 $2" — چیزی است که من می خواهم به جای آن دریافت کنم. $1 و $2 هر کدام یکی از آن 2 گروه کاراکتر - (.*) - را از آرگومان قبلی نشان میدهند. شما باید آن گروهها را در آرگومان سوم به این ترتیب ذکر کنید تا فرمول بتواند هر چیزی را که احتمالاً قبل و بعد از US
وجود دارد برگرداند، در مورد خود US ، من به سادگی آن را در آرگومان سوم ذکر نکنید - به این معنی که من میخواهم همه چیز را از A1 بدون US برگردانم.
نکته. یک صفحه ویژه وجود دارد که می توانید به آن مراجعه کنید تا عبارات منظم مختلف بسازید و متن را در موقعیت های مختلف سلول ها جستجو کنید.
نکته. در مورد کاماهای باقی مانده، تابع SUBSTITUTE که در بالا توضیح داده شد به خلاص شدن از شر آنها کمک می کند. نویسه های خاص در تمام سلول های انتخاب شده
مثال 1. عملکرد REGEXREPLACE برای برگه های Google
وقتی نوبت به خلاص شدن از شر همه چیزهای قبل و بعد از نویسه های خاص می رسد، REGEXREPLACE نیز کمک می کند. به یاد داشته باشید، تابع به 3 آرگومان نیاز دارد:
REGEXREPLACE(text,regular_expression، جایگزینی)و همانطور که در بالا ذکر کردم هنگام معرفی تابع، این دومین موردی است که باید به درستی استفاده کنید تا تابع بداند چه چیزی را پیدا و حذف کند.
پس چگونه آدرس ها را حذف کنم. و فقط شماره تلفن ها را در سلول ها نگه دارید؟
فرمولی که من استفاده خواهم کرد این است:
=REGEXREPLACE(A1,".*\n.*(\+.*)","$1")
- این عبارت منظمی است که در این مورد استفاده می کنم: ".*\n.*(\+.*)"
در قسمت اول — .*\n .* — من از backslash+n استفاده می کنم تا بگویم سلول من بیش از یک ردیف دارد. بنابراین من می خواهم که تابع همه چیز را قبل و بعد از آن خط شکسته (از جمله آن) حذف کند.
قسمت دوم که در پرانتز است (\+.*) می گوید که می خواهم نگه دارم علامت مثبت و هر چیزی که به دنبال آن است دست نخورده است. من این قسمت را در پرانتز قرار می دهم تا آن را گروه بندی کنم و آن را برای بعد در ذهن نگه دارم.
نکته. بک اسلش قبل از علامت مثبت استفاده می شود تا آن را به شخصیتی که به دنبال آن هستید تبدیل کند. بدون آن، به علاوه فقط بخشی از عبارتی است که مخفف برخی از شخصیت های دیگر است (مثلاً مانند یک ستاره).
- در مورد آخرین آرگومان - $1 - تابعی را که فقط آن را از آرگومان دوم گروه بندی می کند، برمی گرداند: علامت مثبت و هر چیزی که به دنبال آن (\+.*) .
به روشی مشابه، میتوانید همه شمارههای تلفن را حذف کنید، اما آدرسهای زیر را حفظ کنید:
=REGEXREPLACE(A1,"(.*\n).*","$1")
فقط این بار، تابع را به گروه میگویید (و بازگشت) همه چیز قبل ازخط را بشکنید و بقیه را پاک کنید:
مثال 2. RIGHT+LEN+FIND
چند تابع دیگر Google Sheets وجود دارد که به شما امکان می دهد متن قبل از یک شخصیت خاص آنها RIGHT، LEN و FIND هستند.
توجه داشته باشید. این توابع فقط در صورتی کمک میکنند که طول سوابق نگهداشته شده مشابه شماره تلفنهای مورد من باشد. اگر اینطور نیست، فقط به جای آن از REGEXREPLACE یا حتی بهتر، از ابزار سادهتری که در پایان توضیح داده شد استفاده کنید.
استفاده از این سهگانه در یک ترتیب خاص به من کمک میکند همان نتیجه را بگیرم و کل متن را قبل از یک کاراکتر حذف کنم - علامت مثبت:
=RIGHT(A1,(LEN(A1)-(FIND("+",A1)-1)))
اجازه دهید نحوه عملکرد این فرمول را توضیح دهم:
- FIND("+",A1)-1 شماره موقعیت علامت مثبت را در A1 ( 24) تعیین می کند ) و 1 را تفریق می کند بنابراین مجموع شامل خود مثبت نمی شود: 23 .
- LEN(A1)-(FIND("+",A1)- 1) تعداد کل کاراکترها را در A1 بررسی می کند ( 40 ) و 23 (شمرده شده توسط FIND) را از آن کم می کند: 17 .
- و سپس RIGHT 17 کاراکتر از انتهای (راست) A1 را برمی گرداند.
متاسفانه، این روش کمک زیادی به حذف متن پس از خط شکن در مورد من نمی کند (شماره تلفن ها را پاک کنید و آدرس ها را حفظ کنید)، چون طول آدرس ها متفاوت است.
خب، همه چیز درست است. ابزار در انتها این کار را بهتر انجام می دهد ;)
حذف اولین/آخرین N کاراکتر از رشته ها در Google Sheets
هر زمان که نیاز به حذفتعداد معینی از کاراکترهای مختلف از ابتدا یا انتهای یک سلول، REGEXREPLACE و RIGHT/LEFT+LEN نیز کمک خواهند کرد.
توجه داشته باشید. از آنجایی که قبلاً این توابع را در بالا معرفی کردم، این نکته را کوتاه میکنم و چند فرمول آماده ارائه میکنم. یا راحتتر به سادهترین راهحلی که در پایان توضیح داده شد بروید.
بنابراین، چگونه می توانم کدهای این شماره تلفن ها را پاک کنم؟ یا به عبارت دیگر، 9 کاراکتر اول را از سلول ها حذف کنید:
- از REGEXREPLACE استفاده کنید. یک عبارت منظم ایجاد کنید که همه چیز را تا نویسه نهم (از جمله نویسه نهم) پیدا و حذف کند:
=REGEXREPLACE(A1,"(.{9})(.*)","$2")
.
نکته. برای حذف آخرین N کاراکتر، کافی است گروه ها را در عبارت منظم عوض کنید:
=REGEXREPLACE(A1,"(.*)(.{9})","$1")
- RIGHT/LEFT+LEN همچنین تعداد کاراکترهای حذف شده را شمارش کرده و قسمت باقی مانده را برگردانید. از انتهای یا ابتدای یک سلول به ترتیب:
=RIGHT(A1,LEN(A1)-9)
نکته. برای حذف 9 کاراکتر آخر از سلولها، RIGHT را با LEFT جایگزین کنید:
=LEFT(A1,LEN(A1)-9)
- آخرین اما مهمتر از آن تابع REPLACE است. شما به آن میگویید که 9 کاراکتر را که از سمت چپ شروع میشود، بگیرد و آنها را با چیزی جایگزین کند ( "" ):
=REPLACE(A1,1,9,"")
توجه داشته باشید. از آنجایی که REPLACE برای پردازش متن به یک موقعیت شروع نیاز دارد، اگر نیاز به حذف N کاراکتر از انتهای یک سلول داشته باشید، این کار انجام نمی شود.
روشی بدون فرمول برای حذف متن خاص در Google Sheets — ابزارهای برقافزونه
عملکرد دارد و هر زمان که برای کشتن وقت داشته باشید همه چیز خوب است. اما آیا میدانید ابزار خاصی وجود دارد که همه راههای ذکر شده را در بر میگیرد و تنها کاری که باید انجام دهید این است که دکمه رادیویی مورد نیاز را انتخاب کنید؟ :) بدون فرمول، بدون ستون اضافی — شما نمی توانید برای کمکی بهتر آرزو کنید. D
لازم نیست حرف من را قبول کنید، فقط Power Tools را نصب کنید و خودتان آن را ببینید:
- گروه اول به شما امکان می دهد چند رشته فرعی یا نویسه های منفرد را از هر موقعیتی در تمام سلول های انتخاب شده در یک زمان حذف کنید:
یک ابزار دیگر از Power Tools واحدهای زمان و تاریخ را از مُهرهای زمانی حذف میکند. اسمش Split Date & زمان:
ابزار تقسیم چه ربطی به حذف واحدهای زمان و تاریخ دارد؟ خوب، برای حذف زمان از مهرهای زمانی، تاریخ را انتخاب کنید زیرا بخشی است که میخواهید نگه دارید و همچنین جایگزینی داده منبع را علامت بزنید، درست مانند تصویر صفحه بالا.
ابزار واحد تاریخ را استخراج می کند و کل مهر زمانی را با آن جایگزین می کند. یا در موارد دیگر