فهرست مطالب
این بیت بعدی از عملیات ما با متن در صفحات گسترده به استخراج اختصاص دارد. راههایی برای استخراج دادههای مختلف بیابید - متن، نویسهها، اعداد، آدرسهای اینترنتی، آدرسهای ایمیل، تاریخ و … زمان و غیره — از موقعیتهای مختلف در چندین سلول Google Sheets به طور همزمان.
فرمولهای Google Sheets برای استخراج متن و اعداد از رشتهها
فرمولها در Google ورق همه چیز است. در حالی که برخی از ترکیبات ترکیبی متن & اعداد و کاراکترهای مختلف را حذف می کنند، برخی از آنها متن، اعداد، کاراکترهای جداگانه و غیره را نیز استخراج می کنند.
استخراج داده ها بر اساس موقعیت: first/last/middle N chars
ساده ترین توابع برای مقابله وقتی میخواهید دادهها را از برگههای Google خارج کنید سلولهای LEFT، RIGHT و MID هستند. آنها هر داده ای را بر اساس موقعیت دریافت می کنند.
استخراج داده ها از ابتدای سلول ها در برگه های Google
شما به راحتی می توانید N کاراکتر اول را با استفاده از تابع LEFT بیرون بیاورید:
LEFT(رشته، [تعداد_کاراکترها])- رشته متنی است که میخواهید دادهها را از آن استخراج کنید.
- تعداد_شخصیتها تعداد نویسههایی است که باید از آن خارج کنید. از سمت چپ.
در اینجا ساده ترین مثال است: بیایید کدهای کشور را از شماره تلفن ها خارج کنیم:
همانطور که می بینید، کشور کدها در ابتدای سلولها 6 علامت دارند، بنابراین فرمول مورد نیاز این است:
=LEFT(A2,6)
نکته. ArrayFormula امکان دریافت 6 کاراکتر از آن را فراهم می کندکل محدوده یکباره:
=ArrayFormula(LEFT(A2:A7,6))
استخراج دادهها از انتهای سلولها در Google Sheets
برای بیرون آوردن آخرین N کاراکتر از سلولها، به جای آن از تابع RIGHT استفاده کنید:
RIGHT(string,[number_of_characters])- string همچنان متن (یا مرجع سلول) برای استخراج داده ها است.
- تعداد_شخصیتها همچنین تعداد نویسههایی است که باید از سمت راست برداشته شوند.
بیایید نام کشورها را از همان شمارههای تلفن دریافت کنیم:
آنها فقط 2 کاراکتر می گیرند و این دقیقاً همان چیزی است که در فرمول ذکر می کنم:
=RIGHT(A2,2)
نکته. ArrayFormula همچنین به شما کمک میکند تا دادهها را از انتهای تمام سلولهای Google Sheets استخراج کنید:
=ArrayFormula(RIGHT(A2:A7,2))
دادهها را از وسط سلولها در Google Sheets استخراج کنید
اگر توابعی برای استخراج داده از ابتدا و انتهای سلول ها وجود دارد، باید تابعی برای استخراج داده ها از وسط نیز وجود داشته باشد. و بله — یکی وجود دارد.
نام آن MID است:
MID(رشته، شروع_در، استخراج_طول)- رشته — متنی که می خواهید خارج کنید قسمت میانی از.
- starting_at — موقعیت نویسه ای که می خواهید از آن داده ها را شروع کنید.
- exttract_length — عدد از نویسه هایی که باید بیرون بیاورید.
با مثال شماره تلفن های مشابه، بیایید خود شماره تلفن ها را بدون کد کشور و کشورشان پیدا کنیم.مخفف:
از آنجایی که کدهای کشور با نویسه ششم خاتمه مییابند و عدد هفتم خط تیره است، اعدادی را که از رقم هشتم شروع میشوند، میکشم. و من در مجموع 8 رقم دریافت خواهم کرد:
=MID(A2,8,8)
نکته. با تغییر یک سلول به کل محدوده و قرار دادن آن در ArrayFormula، نتیجه هر سلول به طور همزمان به شما ارائه می شود:
=ArrayFormula(MID(A2:A7,8,8))
استخراج متن/اعداد از رشته ها
گاهی اوقات استخراج متن بر اساس موقعیت (همانطور که در بالا نشان داده شده است) یک گزینه نیست. رشتههای مورد نیاز ممکن است در هر بخشی از سلولهای شما قرار داشته باشند و از تعداد کاراکترهای متفاوتی تشکیل شده باشند که شما را مجبور میکنند فرمولهای متفاوتی برای هر سلول ایجاد کنید.
اما اگر کاربرگنگار Google Sheets وجود نداشت، Google Sheets نبود. توابع دیگری که به استخراج متن از رشته ها کمک می کنند.
بیایید چند روش ممکن را که صفحات گسترده ارائه می دهند مرور کنیم.
داده ها را قبل از یک متن خاص استخراج کنید — LEFT+SEARCH
هر زمان که می خواهید داده هایی را که قبل از متن خاصی استخراج می شوند، از LEFT + SEARCH استفاده کنید:
- LEFT برای برگرداندن تعداد معینی کاراکتر از ابتدای سلول ها (از سمت چپ آنها) استفاده می شود.
- SEARCH به دنبال کاراکترها/رشتههای خاصی میگردد و موقعیت آنها را میگیرد.
اینها را ترکیب کنید — و LEFT تعداد کاراکترهای پیشنهادی SEARCH را برمیگرداند.
در اینجا یک مثال آورده شده است: چگونه کدهای متنی را قبل از هر "ea" استخراج می کنید؟
این فرمولی است که در موارد مشابه به شما کمک می کندموارد:
=LEFT(A2,SEARCH("ea",A2)-1)
این چیزی است که در فرمول اتفاق می افتد:
- SEARCH("ea",A2 ) به دنبال "ea" در A2 می گردد و موقعیتی را برمی گرداند که در آن "ea" برای هر سلول - 10 شروع می شود.
- بنابراین موقعیت دهم جایی است که "e" در آن قرار دارد. اما از آنجایی که من همه چیز را قبل از "ea" می خواهم، باید 1 را از آن موقعیت کم کنم. در غیر این صورت، 'e' نیز برگردانده خواهد شد. بنابراین نهایتاً 9 میگیرم.
- LEFT به A2 نگاه میکند و 9 کاراکتر اول را میگیرد.
دادهها را بعد از متن استخراج کنید
در آنجا همچنین به معنای دریافت همه چیز پس از یک رشته متن خاص هستند. اما این بار، RIGHT کمکی نخواهد کرد. در عوض، REGEXREPLACE نوبت خود را می گیرد.
نکته. REGEXREPLACE از عبارات منظم استفاده می کند. اگر آمادگی مقابله با آنها را ندارید، راه حل بسیار ساده تری وجود دارد که در زیر توضیح داده شده است. REGEXREPLACE (متن، بیان_قابلیت، جایگزینی)
- text رشته یا سلولی است که می خواهید تغییراتی در آن ایجاد کنید
- expression_regular ترکیبی از کاراکترهایی که مخفف بخشی از متنی است که شما به دنبال آن هستید
- جایگزین هر چیزی است که می خواهید به جای آن متن
بنابراین، چگونه از آن برای استخراج داده ها پس از یک متن خاص استفاده می کنید - در مثال من 'ea'؟
آسان — با استفاده از این فرمول:
=REGEXREPLACE(A2,"(.*)ea(.*)","$2")
اجازه دهید توضیح دهم این فرمول دقیقا چگونه کار می کند:
- A2 سلولی است که من در حال استخراج هستم داده از.
- "(.*)ea(.*)" معمولی من استبیان (یا می توانید آن را ماسک بنامید). من به دنبال "ea" می گردم و همه شخصیت های دیگر را در پرانتز قرار می دهم. دو گروه از کاراکترها وجود دارد - همه چیز قبل از "ea" اولین گروه (.*) و همه چیز بعد از "ea" دومین گروه (.*) است. کل ماسک به صورت دو نقل قول قرار می گیرد.
- "$2" چیزی است که من می خواهم دریافت کنم - گروه دوم (از این رو شماره 2 آن) از آرگومان قبلی.
نکته. تمام کاراکترهای استفاده شده در عبارات منظم در این صفحه ویژه جمع آوری شده است.
استخراج اعداد از سلولهای کاربرگنگار Google
اگر بخواهید فقط اعداد را در موقعیت آنها استخراج کنید و هر چیزی که قبل از آن باشد & بعد مهم نیست؟
ماسک ها (معروف به عبارات منظم) نیز کمک خواهند کرد. در واقع، من همان تابع REGEXREPLACE را میگیرم و عبارت منظم را تغییر میدهم:
=REGEXREPLACE(A2,"[^[:digit:]]", "")
- A2 سلولی که میخواهم آن اعداد را از آنجا دریافت کنم.
- "[^[:digit:]]" یک عبارت منظم است که همه چیز را به جز ارقام میگیرد. این نماد ^caret چیزی است که برای ارقام استثنا ایجاد می کند.
- "" همه چیز را به جز کاراکترهای عددی با "هیچ چیز" جایگزین می کند. یا به عبارت دیگر، آن را به طور کامل حذف می کند و فقط اعداد را در سلول ها باقی می گذارد. یا اعداد را استخراج می کند :)
متن را با نادیده گرفتن اعداد و سایر نویسه ها استخراج کنید
به روشی مشابه، می توانید فقط داده های الفبایی را از سلول های برگه های Google خارج کنید. انقباض برای عبارت منظم کهمخفف متن بر این اساس نامیده می شود — آلفا:
=REGEXREPLACE(A2,"[^[:alpha:]]", "")
این فرمول همه چیز را می گیرد به جز حروف (A-Z، a-z) و به معنای واقعی کلمه آن را با "هیچ چیز" جایگزین می کند. . یا، به بیان دیگر، فقط حروف را حذف می کند.
روش های بدون فرمول برای استخراج داده ها از سلول های برگه های Google
اگر به دنبال یک راه آسان بدون فرمول برای انواع مختلفی از داده ها را استخراج کنید، به جای درستی آمده اید. افزونه Power Tools ما فقط ابزارهای لازم برای انجام کار را دارد.
استخراج انواع مختلف داده با استفاده از افزونه های Power Tools
اولین ابزاری که می خواهم بدانید استخراج نام دارد. . این دقیقاً همان کاری را انجام می دهد که شما در این مقاله به دنبال آن هستید - انواع مختلف داده ها را از سلول های Google Sheets استخراج می کند.
تنظیمات کاربرپسند
همه مواردی که در بالا توضیح دادم اینگونه نیستند. فقط با افزونه قابل حل است. این ابزار کاربرپسند است بنابراین تنها کاری که باید انجام دهید این است که محدوده ای را که می خواهید پردازش کنید انتخاب کنید و چک باکس های مورد نیاز را علامت بزنید. بدون فرمول، بدون عبارات منظم.
نکته دوم این مقاله با REGEXREPLACE و عبارات منظم را به خاطر دارید؟ برای این افزونه ساده است:
گزینه های اضافی
همانطور که می بینید، برخی گزینه های اضافی وجود دارد (فقط کادرهای انتخاب) که میتوانید به سرعت آن را روشن/خاموش کنید تا دقیقترین نتیجه را دریافت کنید:
- فقط رشتههای حروف متن مورد نیاز را دریافت کنید.
- تمام رخدادها را از هر کدام بیرون بکشیدسلول و آنها را در یک سلول یا ستون های جداگانه قرار دهید.
- یک ستون جدید با نتیجه در سمت راست داده منبع وارد کنید.
- متن استخراج شده را از داده های منبع پاک کنید.
استخراج انواع مختلف داده
نه تنها Power Tools داده ها را قبل/بعد/بین رشته های متنی خاص و اولین/آخرین N کاراکتر استخراج می کند. اما موارد زیر را نیز حذف می کند:
- اعداد به همراه اعشار آنها با حفظ جداکننده اعشاری/هزاران دست نخورده:
هر رشته ای از داده ها را از همه جا استخراج کنید
موارد وجود دارد همچنین گزینه ای برای تنظیم الگوی دقیق خود و استفاده از آن برای استخراج. استخراج با ماسک و کاراکترهای عام آن — * و ؟ — این کار را انجام دهید:
- به عنوان مثال، می توانید بیرون بیاورید همه چیز بین براکت ها با استفاده از ماسک زیر: (*)
- یا آن SKUهایی را که فقط 5 شماره در شناسه خود دارند دریافت کنید: SKU?????
- یا، همانطور که در تصویر زیر نشان میدهم، همه چیز را بعد از هر "ea" در هر سلول بکشید: ea*
استخراج تاریخ و زمان از مُهرهای زمانی
به عنوان یک امتیاز، ابزار کوچکتری وجود دارد که تاریخ و زمان را از مُهرهای زمانی استخراج میکند - به نام Split Date & زمان.
اگرچه در وهله اول برای تقسیم مهرهای زمانی ایجاد شد، اما کاملاًقادر به دریافت یکی از واحدهای مورد نظر به صورت جداگانه:
فقط یکی از کادرهای انتخاب را بسته به آنچه میخواهید استخراج کنید - تاریخ یا زمان - از مهرهای زمانی در Google Sheets انتخاب کنید و ضربه بزنید. تقسیم . واحد مورد نیاز در یک ستون جدید کپی می شود (یا اگر آخرین چک باکس را نیز انتخاب کنید جایگزین داده های اصلی می شود):
این ابزار نیز بخشی از افزونه Power Tools، بنابراین هنگامی که آن را برای دریافت هرگونه داده از سلولهای Google Sheets نصب میکنید، کاملاً شما را تحت پوشش قرار میدهد. اگر نه، لطفا نظر بدهید و ما به شما کمک خواهیم کرد :)