فهرست مطالب
اگرچه مایکروسافت فرمول یا نحو مستقیمی برای استخراج فقط اعداد از سلول اکسل ارائه نکرده است، میتوانیم طیف وسیعی از فرمولهای اکسل را با هم ترکیب کنیم. یک تابع واحد بسازید که فقط برای استخراج اعداد یا ارقام از سلول های اکسل استفاده شود. در این مقاله سعی میکنیم به طور مفصل نشان دهیم و توضیح دهیم که چگونه میتوانیم فقط اعداد را از سلولها با فرمولهای مناسب تحت چند معیار بیرون آوریم.
دانلود کتاب تمرین تمرین
دانلود کتاب تمرینی به صورت رایگان که برای تهیه این مقاله از آن استفاده کرده ایم. می توانید مقادیر متن را با اعداد در سلول های انتخاب شده وارد کنید و نتایج را بلافاصله از طریق فرمول های تعبیه شده پیدا کنید.
استخراج اعداد از Cell.xlsm
7 روش موثر برای استخراج فقط اعداد از سلول اکسل
یک کد VBA، یک ویژگی اکسل و پنج فرمول عملی برای کمک به استخراج اعداد از یک سلول وجود خواهد داشت. مانند تصویر زیر، چند کد شامل ارقام و حروف داریم که در ابتدا ارقام وجود دارد. ما فقط باید آن ارقام یا اعداد را استخراج کنیم.
1. بیرون کشیدن اعداد از ابتدای متن
در این روش اول، ما ترکیب می کنیم LEFT ، SUM ، LEN و SUBSTITUTE برای بیرون آوردن اعداد از ابتدای رشته متن عمل می کند. ابتدا این فرمول را در سلول تایپ می کنیم وبخش قبل مقادیر حاصل پس از آن خواهد بود- {0,1,1,0,0,0,0,0,0,1}.
➤ SUM(LEN(B5)-LEN (جایگزین (B5، {"0″،"1"،"2"،"3"،"4"،"5"،"6"،"7"،"8"،"9"}، "") ))
- با کمک تابع SUM ، مقادیر داخل آرایه موجود در بخش آخر به 3 می رسد ( 0+1+1+0+0+0+0+0+0+1).
- بنابراین، طبق قسمت اول فرمول ما، A>0 (3>0) . اکنون، به قسمت بعدی تفکیک میرویم.
تجزیهبندی قسمت B = MID(0&B5, LARGE(INDEX(ISNUMBER(–MID(B5,ROW( INDIRECT("$1:$"&LEN(B5)))، 1))* ROW(INDIRECT("$1:$"&LEN(B5)))، 0)، ROW(INDIRECT("$1:$" &LEN(B5))))+1,1)
➤ INDIRECT("$1:$"&LEN(B5))
- تابع INDIRECT در اینجا مقادیر رشته را به عنوان مرجع آرایه ذخیره می کند. در داخل پرانتز، دستور علامت (&) به تعداد کاراکترهای موجود در سلول B5 با نحو محدوده سلولها میپیوندد. این بدان معناست که از 1 تا تعداد کاراکترهای تعریف شده، هر کدام به عنوان یک مرجع آرایه ذخیره می شوند.
➤ ROW(INDIRECT("$1:$"&LEN(B5)) )
- اکنون، این تابع ROW همه اعداد را از آرایه و مقادیر حاصل را برای سلول <2 خارج می کند>B5 خواهد بود- {1;2;3;4;5;6;7;8;9}.
➤ MID(B5,ROW( INDIRECT("$1:$"&LEN(B5))),1)
- در این بخش از فرمول،تابع MID همه کاراکترهای سلول B5 را بر اساس تمام موقعیتهایی که در بخش قبلی بهعنوان اعداد یافت شد، بیان میکند. بنابراین، مقادیر استخراج شده بعد از این قسمت پیدا می شود - {“1″;”9″;” ";"D";"D";"X";"2";"M";"N"}.
➤ ISNUMBER(–MID(B5,ROW(INDIRECT ("$1:$"&LEN(B5))),1))
- از آنجایی که ISNUMBER یک تابع منطقی است، به صورت جداگانه تعیین می کند که آیا مقادیر یافت شده در بخش قبل رشته های عددی هستند یا خیر. اگر بله، به صورت TRUE برمی گردد، در غیر این صورت، به صورت FALSE نمایش داده می شود.
- بنابراین، در مورد ما، نتیجه این خواهد بود- { TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE}.
➤ INDEX(ISNUMBER(–MID(B5,ROW(INDIRECT("$1:$" &LEN(B5))),1))*ROW(INDIRECT("$1:$"&LEN(B5)))،0)
- اگر متوجه شدید داخل تابع فوق، از یک خط فاصله، معروف به Double Unary استفاده شده است. برای تبدیل تمام مقادیر منطقی به رشته های اعداد استفاده می شود - 1(TRUE) یا 0(FALSE) . اکنون، تابع INDEX این نتیجه را به صورت- {1;1;0;0;0;0;1;0;0} برمی گرداند.
- بعد از که، مقادیر حاصل در مقادیر به دست آمده از تابع ROW در داخل آرایه ضرب می شود و نتیجه می شود- {1;2;0;0;0;0; 7;0;0}.
➤ LARGE(INDEX(ISNUMBER(–MID(B5,ROW(INDIRECT("$1:$"&LEN(B5))),1 ))*ROW(INDIRECT("$1:$"&LEN(B5)))، 0)ROW(INDIRECT("$1:$"&LEN(B5))))
- عملکرد LARGE اکنون بزرگترین را بازآرایی می کند مقادیر آرایه با توجه به موقعیت های بر اساس اعداد موجود در توابع ROW . & مقادیر حاصل ما برای این بخش از فرمول - {7;2;1;0;0;0;0;0;0} خواهد بود.
➤ MID(0&B5 , LARGE(INDEX(ISNUMBER(–MID(B5,ROW(INDIRECT("$1:$"&LEN(B5)))،1))*ROW(INDIRECT("$1:$"&LEN(B5)) ),0), ROW(INDIRECT("$1:$"&LEN(B5))))+1,1)
- اکنون، این بخش از تابع به هم متصل می شود 0 با متن های موجود در سلول B5 . سپس 1 را به صورت جداگانه با تمام اعداد موجود در بخش آخر اضافه می کند و کاراکترهای سلول B5 را بر اساس موقعیت های اعداد تعریف شده نشان می دهد.
- بنابراین، نتیجه ما از این بخش خواهد بود - {“2″;”9″;”1″;”0″;”0″;”0″;”0″;”0″;”0” }.
تفکیک قسمت C = (10^ROW(INDIRECT("$1:$"&LEN(B5)))/10)"")
- این قسمت قدرت های 10 & آنها را در داخل آرایه ذخیره کنید. ارقام توان ها اعدادی هستند که از تابع ROW قبالً پیدا شده اند.
- این قسمت از فرمول مقادیر را به صورت {1;10;100 برمی گرداند. ;1000;10000;100000;1000000;10000000;100000000}.
ضرب B n و C n >>در داخل آرایه ضرب شود. سپس حاصل ضرب های پیدا شده به صورت- {2;90;100;0;0;0;0;0;0} خواهد بود.
بیشتر بخوانید: نحوه جداسازی متن و اعداد در اکسل (4 روش آسان)
5. استخراج اعداد پنج رقمی از رشته
ما از فرمول دیگری برای استخراج اعداد پنج رقمی از هر قسمت از رشته در اکسل استفاده خواهیم کرد. ما از توابع CONCAT و SEQUENCE برای اولین بار در این بخش استفاده خواهیم کرد. علاوه بر این، مجموعه داده خود را برای این روش کمی تغییر داده ایم.
مراحل:
- ابتدا محدوده سلولی را انتخاب کنید C5:C12 .
- ثانیاً فرمول زیر را تایپ کنید.
=CONCAT(IFERROR(0+MID(B5,SEQUENCE(LEN(B5)),1),""))
- در نهایت، Ctrl+Enter را فشار دهید.
- خروجی: {1;2;3;4;5; 6;7;8;9;10;11} .
- این تابع یازده عدد اول را برمی گرداند.
- خروجی: {“1″;”9″;” “;”D”;”D”;”X”;”2″;”M”;”N”;”3″;”3″} .
- با استفاده از این قسمت، ماگرفتن کاراکترهای جداگانه از رشته.
- خروجی: {1;9; #VALUE!;#VALUE!;#VALUE!;#VALUE!;2;#VALUE!;#VALUE!;3;3} .
- وقتی صفر را با یک رشته اضافه کنیم، یک خطا برگردانید.
- خروجی: 19233 .
- در نهایت، ما تمام مقادیر را برای استخراج فقط اعداد پنج رقمی اضافه می کنیم.
6. استفاده از Flash Fill برای استخراج اعداد در محدوده
استفاده از فلش ویژگی Fill آسانتر و سادهتر از هر روش دیگری است که در بالا ذکر شد. ما اعداد را از هر موقعیتی در رشته های متنی استخراج می کنیم. برای اجرای صحیح این روش، باید به اکسل کمک کنیم تا الگوی مقادیر سلول را در یک ستون یا یک ردیف با انجام استخراج فقط برای دو مقدار اول پیدا کند.
مراحل:
- برای شروع، اعداد را به صورت دستی در سلول C5 تایپ کنید.
- سپس، شروع به تایپ اعداد از سلول B6 به سلول C6 کنید و اکسل به طور خودکار الگو را تشخیص می دهد.
- در نهایت، Enter را فشار دهید.
نکات: این روش مقداری دارداشکالات، به همین دلیل است که برای همه مواردی که نیاز به استخراج اعداد از رشته های متنی دارید، توصیه نمی شود. Flash Fill معمولاً از الگویی از سلول های یک ستون یا یک محدوده پیروی می کند. بنابراین، 2 یا 3 استخراج یا محاسبات اول باید به صورت دستی انجام شود تا به اکسل کمک شود الگوی رایج مقادیر حاصل را جذب کند. اما گاهی اوقات، الگوی دقیق مورد نیاز ما را دنبال نمی کند و در نتیجه، از الگوی خود پیروی می کند و نتیجه ای نامتناسب به شما می دهد.
به عنوان مثال، اگر مجبور بودیم دو صفر (00) را از آن استخراج کنیم. داده های داده شده، فقط یک صفر را نشان می دهد، نه دو را. سپس اگر میخواهید اعداد را از ابتدا یا آخرین موقعیتهای یک سلول استخراج کنید، مقادیر متن را نیز به همراه اعداد استخراج میکند.
بیشتر بخوانید: چگونه برای استخراج اعداد پس از یک متن خاص در اکسل (2 روش مناسب)
7. استفاده از کد VBA برای استخراج فقط اعداد از سلول اکسل
اگر علاقه مند به استفاده از <1 هستید> Excel VBA Macro
برای استخراج اعداد فقط از سلول ها، سپس می خواهید مراحل زیر را دنبال کنید. نحوه تایپ کد را در پنجره VBA Module به شما نشان خواهیم داد. این کد از کاربر می خواهد که محدوده سلول های ورودی و خروجی را مشخص کند.مراحل:
- ابتدا، ALT+F11 را فشار دهید. برای باز کردن پنجره VBA .
- سپس، از تب Insert ، را انتخاب کنید. فرمان Module . یک ماژول جدیدپنجره ای ظاهر می شود که در آن کدها را تایپ می کنید.
- ثالثاً، در داخل ماژول خود، کدهای زیر را پس از کپی پیست کنید.
2297
- بعد از آن، F5 را فشار دهید تا کد اجرا شود. یک کادر گفتگو با نام " انتخاب داده های ورودی " ظاهر می شود.
- سپس، تمام سلول های متن را انتخاب کنید (یعنی B5:B12 ) و OK را فشار دهید.
- پس از آن، کادر گفتگوی دیگری به نام « انتخاب سلول خروجی " ظاهر می شود که در آن باید یک سلول یا محدوده سلولی خاص را انتخاب کنید تا داده ها یا مقادیر خروجی را ببینید.
- در نهایت، محدوده سلولی را انتخاب کنید C5:C12 و فشار دادن Enter .
- در نتیجه، اعداد استخراج شده را مشاهده خواهید کرد متن ها به یکباره بنابراین، ما هفت روش سریع برای استخراج اعداد فقط از سلول اکسل را به پایان خواهیم رساند.
🔎 VBA Code Breakdown
➤ Declaring Parameters
8425
- در اینجا در این قسمت ابتدا، ما همه را اعلام می کنیم پارامترهای ما به عنوان اعداد صحیح، مقادیر رشته یا محدوده سلولها. سپس نام کادرهای گفتگوی خود را با "انتخاب داده های ورودی" و "انتخاب سلول خروجی" می دهیم.
➤ تعریف انواع ورودی ها & خروجیهای جعبههای گفتگو
6463
- اکنون در حال تعریف پارامترها و انواع آنها برای جعبههای گفتگو هستیم. در اینجا، اضافه کردن Type:=8 به معنی استدادههای ورودی و خروجی از سلولهای مرجع یا محدودهای از سلولها تشکیل میشوند.
- ما همچنین تعریف میکنیم که اگر دادههای ورودی پیدا نشد، زیربرنامه متوقف میشود. با ذکر این ماکرو، زیرروال برای داده های از دست رفته خراب نمی شود، بلکه از کار می افتد.
➤ ترکیب توابع داخل حلقه های کد برای تکرارها
3651
- آخر، از همه، این مهمترین بخش است که در آن ما توابع یا فرمول هایی را که باید به متون اختصاص دهیم برای یافتن مقادیر حاصل از رشته ها اعمال می کنیم. .
- یکی از مزایای عمده کدنویسی یک تابع برای اکسل این است که نیازی به تایپ فرمول بزرگ مانند روش های قبلی نیست، زیرا VBA دارای دستورات داخلی برای استفاده از حلقه های For یا while است. که در آن تکرار برای تک تک جزئیات در یک رشته متن بدون هیچ مشکلی قابل اجرا است.
بیشتر بخوانید: چگونه اعداد را از متن در Excel VBA جدا کنیم (3 روش ها)
نتیجه گیری
ما 7 روش آسان برای استخراج فقط اعداد از یک سلول اکسل را به شما نشان داده ایم. استخراج فقط اعداد از یک رشته متن آنقدرها هم که به نظر می رسد ساده نیست زیرا به ترکیبی از چندین تابع نیاز دارد که فرمول نهایی یا نحو را پیچیده می کند. اما ما امیدواریم که چگونه سعی کرده ایم فرمول ها را با تجزیه توابع درونی نشان دهیم به شما کمک کرده باشد تا نحو را با کمی راحتی درک کنید.آسان است.
اگر توابع یا فرمول دیگری پیدا کردید که باید در اینجا اضافه می کردیم، لطفاً از طریق نظرات ارزشمند خود به ما اطلاع دهید. یا می توانید نگاهی به مقالات آموزنده و جالب ما در رابطه با توابع اکسل در این وب سایت بیندازید.
سپس با استفاده از Fill Handle ، آن فرمول را در بقیه سلول ها کپی می کنیم.مراحل:
- ابتدا فرمول را در سلول تایپ کنید C5 .
=LEFT(B5,SUM(LEN(B5)-LEN(SUBSTITUTE(B5,{"0","1","2","3","4","5","6","7","8","9"},""))))
- دوم، Enter را فشار دهید و عدد 34 را برای کد اول دریافت خواهید کرد.
- ثالثاً، از Fill Handle استفاده کنید و سپس برای تکمیل خودکار تمام سلول های دیگر در ستون C<3 استفاده کنید> .
🔎 تجزیه فرمول
➤ جایگزین(B5,{“0″,”1″,”2″,”3″,”4″,”5″,”6″,”7″,”8″,”9″}, ””)
- در اینجا، تابع SUBSTITUTE ارقام (0-9) را به صورت متوالی پیدا می کند و در صورت یافتن، جایگزین می شود. آن رقم در سلول B5 با یک کاراکتر خالی هر بار. بنابراین، تابع به صورت- {"34DTXRF"، "34DTXRF"، "34DTXRF"، "4DTXRF"، "3DTXRF"، "34DTXRF"، "34DTXRF"، "34DTXRF"، "34DTXRF"، "34DTXRF"} باز خواهد گشت.
➤ LEN(جایگزین(B5,{“0″,”1″,”2″,”3″,”4″,”5″,”6″,”7 ″,”8″,”9″},””))
- تابع LEN تعداد کاراکترهای یک رشته را تعیین می کند. . بنابراین، در اینجا، تابع LEN همه کاراکترهایی را که به صورت جداگانه در متون یافت می شوند از طریق تابع SUBSTITUTE شمارش می کند. مقادیر حاصل در مورد ما اینجا خواهند بود - {7،7،7،6،6،7،7،7،7،7}.
➤ LEN(B5)- LEN(SUBSTITUTE(B5,{“0″,”1″,”2″,”3″,”4″,”5″,”6″,”7″,”8″,”9″},” )))
- اکنون، این قسمت استتفریق از تعداد کاراکترهای سلول B5 به سایر تعداد کاراکترهای موجود در بخش قبلی فرمول. بنابراین، در اینجا مقادیر حاصل خواهد شد - {0,0,0,1,1,0,0,0,0,0}.
➤ SUM(LEN(B5) -LEN(SUBSTITUTE(B5,{“0″,”1″,”2″,”3″,”4″,”5″,”6″,”7″,”8″,”9″},” ”)))
- تابع SUM سپس به سادگی تمام مقادیر تفریق شده یافت شده را جمع می کند & بنابراین نتیجه اینجا خواهد بود، 2 (0+0+0+1+1+0+0+0+0+0).
➤ = LEFT(B5,SUM(LEN(B5)-LEN(SUBSTITUTE(B5,{“0″,”1″,”2″,”3″,”4″,”5″,”6″,”7″, ”8″,”9″},””))))
- و اکنون این قسمت پایانی است که تابع LEFT مقادیر را با تعداد دقیق کاراکتر از سمت چپ که در بخش قبلی فرمول یافت شده است، برگردانید. همانطور که مقدار مجموع را به عنوان 2 دریافت کردیم، تابع LEFT در اینجا فقط 34 را از متن 34DTXRF برمی گرداند.
➥ مرتبط: نحوه جداسازی اعداد در اکسل با استفاده از فرمول (5 روش)
2. استخراج اعداد از سمت راست یک متن
در این بخش، اعداد یا ارقام را از سمت راست رشته متن استخراج می کنیم. ما در اینجا از توابع RIGHT ، MIN و SEARCH استفاده خواهیم کرد.
مراحل:
- برای شروع، در مجموعه داده ما باید آنچه را در سلول تایپ کنیم C5 is-
=RIGHT(B5,LEN(B5) - MIN(SEARCH({0,1,2,3,4,5,6,7,8,9}, B5&"0123456789")) +1)
- بعد، فشار دهید Enter را وارد کنید و سپس از Fill Handle برای تکمیل خودکار بقیه سلولها استفاده کنید.
13>
➤ SEARCH({0,1,2,3,4,5,6,7,8,9}, B5&”0123456789″)
- اکنون، تابع SEARCH تمام ارقام (0-9) را یک به یک جستجو می کند. مقدار حاصل از بخش قبل به دست آمده و موقعیت های آن 10 رقم را در کاراکترهای DTXRF340123456789 برمی گرداند. بنابراین، در اینجا مقادیر حاصل ما این خواهد بود- {8,9,10,6,7,13,14,15,16,17}.
➤ MIN(SEARCH({0 ,1,2,3,4,5,6,7,8,9}, B5&”0123456789″))
- MIN تابع برای یافتن کمترین رقم یا عدد در یک آرایه استفاده می شود. بنابراین، در اینجا حداقل یا کمترین مقدار خواهد بود- 6 از آرایه {8,9,10,6,7,13,14,15,16,17} موجود در بخش قبلی فرمول .
➤ LEN(B5) – MIN(SEARCH({0,1,2,3,4,5,6,7,8,9}, B5&”0123456789″ )) +1)
- اکنون، تعداد کاراکترهای B5 توسط LEN<پیدا می شود. 3> عملکرد. سپس مقدار 6 را کم می کند (که در قسمت آخر یافت شد) و سپس با اضافه کردن 1 نتیجه را برمی گرداند. در اینجا در مورد ما،مقدار حاصل 2 (7-6+1) خواهد بود.
➤ RIGHT(B5,LEN(B5) – MIN(SEARCH({0,1, 2,3,4,5,6,7,8,9}, B5&”0123456789″)) +1)
- RIGHT تابع تعداد مشخصی از کاراکترها را از آخرین یا سمت راست یک رشته برمی گرداند. پس از نتیجه یافت شده از طریق فرآیند تفریق در بخش قبل، در اینجا تابع RIGHT 2 کاراکتر آخر سلول را نشان می دهد B5 و این 34 خواهد بود.
بیشتر بخوانید: نحوه جداسازی اعداد در یک سلول در اکسل (5 روش)
3. استخراج اعداد از هر قسمت از یک رشته متن
اکنون، در اینجا یک راه حل گسترده برای همه موارد وجود دارد. این روش اعداد یا ارقام را از هر موقعیتی در یک رشته متنی خارج می کند. علاوه بر این، ما از TEXTJOIN ، IFERROR ، INDIRECT ، <1 استفاده خواهیم کرد. توابع> MID
و ROW در این روش.مراحل:
- ابتدا فرمول را در سلول مقصد خود به صورت زیر تایپ کنید-
=TEXTJOIN("",TRUE,IFERROR((MID(B5,ROW(INDIRECT("1:"&LEN(B5))),1)*1),""))
- سپس، اگر از Excel 2016 یا نسخه بالاتر استفاده می کنید، سپس Enter را فشار دهید، در غیر این صورت Ctrl+Shift+Enter را فشار دهید تا نتیجه این فرمول آرایه را دریافت کنید.
- پس از این مرحله، سلول های دیگر را با استفاده از Fill Handle به صورت خودکار پر کنید و کار شما تمام شد.
🔎 تفکیک فرمول
➤ INDIRECT("1:"&LEN(B5))
- تابع INDIRECT برای ذخیره آرایه ای از مقادیر سلول به عنوان متن مرجع در اینجا دستور (&) طول کاراکترهای سلول B5 را با نحو محدوده ناقص (1:) به هم می پیوندد.
- بنابراین، در اینجا تابع INDIRECT تمام اعداد بین 1 و طول کاراکترهای سلول B5 <را ذخیره می کند. 4> به عنوان یک متن مرجع.
➤ ROW(INDIRECT("1:"&LEN(B5)))
- تابع 1> ROW معمولاً شماره ردیف یک سلول را می گوید. اما در اینجا در تابع INDIRECT ، از آنجایی که هیچ سلول مرجعی ذکر نشده است، در این مورد، تابع ROW همه موارد را استخراج می کند. مقادیر یا اعداد از متون مرجع ذخیره شده در تابع INDIRECT .
- اکنون، برای سلول اول B5 ، مقادیر حاصل از این توابع ROW و INDIRECT خواهد بود- {1;2;3;4;5;6; 7;8;9}.
➤ (MID(B5،ROW(INDIRECT("1:"&LEN(B5)))،1))
- عملکرد MID به شما امکان می دهد کاراکترها را از وسط یک رشته متن، با توجه به موقعیت شروع و amp; طول.
- بنابراین، در اینجا برای تمام 9 موقعیت یافت شده در بخش قبل، تابع MID اکنون همه کاراکترها را یک به یک برای هر موقعیت نشان می دهد و amp; بنابراین مقادیر را به صورت- {“1″;”9″;” برمی گرداند.";"D";"D";"X";"2";"M";"N"}.
➤ IFERROR((MID(B5,ROW(INDIRECT ("1:"&LEN(B5)))،1)*1)"")
- اکنون، IFERROR یک تابع منطقی است که تعیین می کند رشته یک عدد است یا چیز دیگری. اگر رشته ای را با اعداد یا ارقام شناسایی نکند، آنگاه مقدار را با یک دستور متنی تعریف شده برمی گرداند.
- در مورد ما، تمام مقادیر یافت شده در بخش آخر در 1 ضرب می شوند، و هنگامی که نتایج به عنوان خطاهای مقدار برای حروف یا مقادیر متنی که قابل ضرب نیستند برگردانده می شوند، تابع IFERROR آنها خطاها را به رشته های خالی تبدیل می کند. بنابراین، مقادیر حاصل ما آنگاه خواهد بود- {1;9;””;””;””;””;2;””;””}.
➤ =TEXTJOIN ("",TRUE,IFERROR((MID(B5,ROW(INDIRECT("1:"&LEN(B5))),1)*1)""))
- و اکنون قسمت نهایی از طریق تابع TEXTJOIN اجرا خواهد شد. این تابع برای به هم پیوستن یا به هم پیوستن دو رشته با یک جداکننده مشخص استفاده میشود.
- بنابراین، مقادیر حاصل که در بخش قبل یافتیم اکنون در کنار این TEXTJOIN به یکدیگر متصل میشوند. تابع . و به این ترتیب عدد 192 را دریافت خواهیم کرد.
بیشتر بخوانید: نحوه استخراج اعداد متعدد از رشته در اکسل (6 روش)
4. تودرتوی توابع چندگانه برای بیرون آوردن فقط اعداد
اکنون، فرمول دیگری را به شما نشان خواهیم داد تا فقط اعداد را از هر موقعیتی از اکسل استخراج کنید.سلول. اگرچه ممکن است بسیار پیچیده به نظر برسد، ما کل فرمول را تجزیه می کنیم و سعی می کنیم تمام عملکردهای فشرده را به راحتی توضیح دهیم. علاوه بر این، ما از IF ، LARGE ، INDEX ، <1 استفاده خواهیم کرد. توابع> SUMPRODUCT و ISNUMBER در این فرمول وجود دارد.
- برای شروع، این فرمول را در سلول <تایپ کنید. 1> C5 . شما باید مرجع سلول را فقط بر اساس سلول خود در صفحه گسترده جایگزین کنید و سپس با جاسازی این فرمول، بلافاصله نتیجه مورد انتظار را دریافت خواهید کرد. و این فرمول در هر نسخه ای از اکسل کاملاً کار می کند.
=IF(SUM(LEN(B5)-LEN(SUBSTITUTE(B5, {"0","1","2","3","4","5","6","7","8","9"}, "")))>0, SUMPRODUCT(MID(0&B5, LARGE(INDEX(ISNUMBER(--MID(B5,ROW(INDIRECT("$1:$"&LEN(B5))),1))* ROW(INDIRECT("$1:$"&LEN(B5))),0), ROW(INDIRECT("$1:$"&LEN(B5))))+1,1) * 10^ROW(INDIRECT("$1:$"&LEN(B5)))/10),"")
>>
- بعد از آن، فقط پس از تایپ کل فرمول، Enter را فشار دهید و کارتان تمام شد.
فرمول فشرده، میتوانیم آن را به بخشهایی مانند-
=IF(A>0، SUMPRODUCT(B 1 جدا کنیم *C 1 ، B 2 *C 2 ، ……….B n C n )””)
این نحو به این معنی است که اگر A بزرگتر از 0 باشد، پس همه محصولات B n و C n به نتیجه نهایی خلاصه می شود. و اگر A بزرگتر از 0 نباشد، نتیجه به صورت یک سلول خالی یا خالی برمی گردد.
- A =SUM(LEN(B5)-LEN(SUBSTITUTE(B5, {“0″,”1″,”2″,”3″,”4″,”5″,”6″,”7″,”8″, ”9”}، “”
- B = MID(0&B5، LARGE(INDEX(ISNUMBER(–MID(B5,ROW(INDIRECT(“1$ :$"&LEN(B5)))، 1))* ROW(INDIRECT("$1:$"&LEN(B5)))، 0)، ROW(INDIRECT("$1:$"&LEN( B5))))+1،1)
- C = 10^ROW(INDIRECT("$1:$"&LEN(B5)))/ 10)،””
تجزیه قسمت A = SUM(LEN(B5)-LEN(SUBSTITUTE(B5, {“0″,”1″,”2″ ,”3″,”4″,”5″,”6″,”7″,”8″,”9”}, “”
➤ SUBSTITUTE(B5, { «0»، «1»، «2»، «3»، «4»، «5»، «6»،»7 اینچ،»8 اینچ،»9»}، «»)
- عملکرد SUBSTITUTE هر بار تمام ارقام (0-9) را یک به یک در متن 19 DDX2MN پیدا می کند و جایگزین آنها می شود. ارقام با یک رشته خالی در موقعیت ارقام.
- بنابراین مقادیر حاصل در یک آرایه خواهد بود-{“19 DDX2MN”,”9 DDX2MN”,”19 DDXMN”,””19 DDX2MN”،” 19 DDX2MN,”19 DDX2MN,”19 DDX2MN,”19 DDX2MN,”19 DDX2MN,”1 DDX2MN”}.
➤ LEN(SUBSTITUTE(B5, { «0»، «1»، «2»، «3»، «4»، «5»، «6»،»7 اینچ،»8 اینچ،»9»}، «»))
- تابع LEN اکنون تعداد کاراکترها را در تمام مقادیر رشته به دست آمده از بخش قبلی می شمارد. بنابراین، این تابع به صورت- {9,8,8,9,9,9,9,9,9,8} برمی گردد.
➤ LEN(B5)-LEN( SUBSTITUTE(B5، {“0″,”1″,”2″,”3″,”4″,”5″,”6″,”7″,”8″,”9”}, “”))
- اکنون در این قسمت از فرمول، تعدادی از کاراکترهای سلول B5 همه اعداد موجود در