فہرست کا خانہ
ٹیوٹوریل دکھاتا ہے کہ فارمولوں اور ایکسٹریکٹ ٹول کا استعمال کرکے ایکسل میں مختلف ٹیکسٹ سٹرنگز سے نمبر کیسے نکالا جاتا ہے۔
جب کسی دی گئی لمبائی کے ٹیکسٹ سٹرنگ کے کچھ حصے کو نکالنے کی بات آتی ہے۔ ، ایکسل کام کو تیزی سے سنبھالنے کے لیے تین سبسٹرنگ فنکشنز (بائیں، دائیں اور وسط) فراہم کرتا ہے۔ جب الفانیومیرک سٹرنگ سے نمبر نکالنے کی بات آتی ہے تو مائیکروسافٹ ایکسل فراہم کرتا ہے… کچھ بھی نہیں۔
ایکسل میں کسی سٹرنگ سے نمبر حاصل کرنے کے لیے، اس میں تھوڑی آسانی، تھوڑا صبر، اور مختلف فنکشنز کا ایک گروپ درکار ہوتا ہے۔ ایک دوسرے میں گھونسلا. یا، آپ Extract ٹول چلا سکتے ہیں اور ماؤس کے کلک سے کام کروا سکتے ہیں۔ ذیل میں آپ کو دونوں طریقوں کے بارے میں مکمل تفصیلات ملیں گی۔
ٹیکسٹ سٹرنگ کے آخر سے نمبر کیسے نکالا جائے
جب آپ کے پاس حروف نمبری سٹرنگز کا ایک کالم ہو جس کے بعد نمبر آتا ہے۔ متن، آپ اسے حاصل کرنے کے لیے درج ذیل فارمولہ استعمال کر سکتے ہیں۔
RIGHT( cell, LEN( cell) - MAX(IF(ISNUMBER(MID( cell))))، 0)))ہم تھوڑی دیر بعد فارمولے کی منطق پر غور کریں گے۔ ابھی کے لیے، صرف سیل کو اصل سٹرنگ والے سیل کے حوالے سے تبدیل کریں (ہمارے معاملے میں A2)، اور اسی قطار میں کسی بھی خالی سیل میں فارمولہ درج کریں، B2 میں بولیں:
=RIGHT(A2, LEN(A2) - MAX(IF(ISNUMBER(MID(A2, ROW(INDIRECT("1:"&LEN(A2))), 1) *1)=FALSE, ROW(INDIRECT("1:"&LEN(A2))), 0)))
یہ فارمولہ صرف آخر سے نمبر حاصل کرتا ہے۔ اگر کسی سٹرنگ کے شروع یا درمیان میں بھی نمبر ہیں تو وہ ہیں۔نظر انداز کیا گیا:
نکالنا RIGHT فنکشن کے ساتھ انجام دیا جاتا ہے جو ٹیکسٹ فنکشنز کے زمرے سے تعلق رکھتا ہے۔ اس فنکشن کا آؤٹ پٹ ہمیشہ text ہوتا ہے۔ ہمارے معاملے میں، نتیجہ ایک عددی ذیلی اسٹرنگ ہے، جو ایکسل کے لحاظ سے متن بھی ہے، نمبر نہیں۔
اگر آپ کو نتیجہ نمبر ہونا چاہیے (جسے آپ مزید حسابات میں استعمال کر سکتے ہیں)، پھر فارمولے کو VALUE فنکشن میں لپیٹیں یا ایک ریاضی کا عمل انجام دیں جس سے نتیجہ تبدیل نہ ہو، کہہ لیں، 1 سے ضرب کریں یا 0 کا اضافہ کریں۔ واحد نمبر، IFERROR فنکشن استعمال کریں۔ مثال کے طور پر:
=IFERROR(VALUE(RIGHT(A2, LEN(A2) - MAX(IF(ISNUMBER(MID(A2, ROW(INDIRECT("1:"&LEN(A2))), 1)*1)=FALSE, ROW(INDIRECT("1:"&LEN(A2))), 0)))), "")
یا
=IFERROR(RIGHT(A2, LEN(A2) - MAX(IF(ISNUMBER(MID(A2, ROW(INDIRECT("1:"&LEN(A2))), 1) *1)=FALSE, ROW(INDIRECT("1:"&LEN(A2))), 0))) +0, "")
11>
نوٹ۔ Dynamic Array Excel (Office 365 اور 2021) میں، آپ Enter کلید کے ساتھ معمول کے طریقے سے فارمولا درج کرتے ہیں۔ Excel 2019 اور اس سے پہلے میں، یہ صرف ایک ارے فارمولے کے طور پر کام کرتا ہے، لہذا اسے مکمل کرنے کے لیے Ctrl + Shift + Enter دبانا یاد رکھیں۔
یہ فارمولہ کیسے کام کرتا ہے:
حروفِ عددی تار سے نمبر نکالنے کے لیے، سب سے پہلے آپ کو یہ جاننے کی ضرورت ہے کہ نکالنا کہاں سے شروع کرنا ہے۔ اسٹرنگ میں آخری غیر عددی کریکٹر کی پوزیشن کا تعین اس مشکل فارمولے کی مدد سے کیا جاتا ہے:
MAX(IF(ISNUMBER(MID(A2, ROW(INDIRECT("1:"&LEN( A2))), 1)*1)=FALSE, ROW(INDIRECT("1:"&LEN(A2))), 0))
منطق کو سمجھنے کے لیے، آئیے اس کی اندر سے چھان بین کرتے ہیں۔ :
The ROW(Indirect("1:"&LEN(A2))) مجموعہسورس سٹرنگ (A2) میں کل حروف کے مطابق نمبروں کا ایک سلسلہ بناتا ہے، اور ہم ان ترتیب وار نمبروں کو MID کو ابتدائی نمبروں کے طور پر پیش کرتے ہیں:
MID(A2, {1;2;3;4) ;5;6;7;8}, 1)
MID فنکشن A2 سے ہر ایک کریکٹر کو کھینچتا ہے اور انہیں ایک صف کے طور پر واپس کرتا ہے:
{"0";"5";" -"؛"E"؛"C"؛"-"؛"0"؛"1"
چونکہ MID ایک ٹیکسٹ فنکشن ہے، اس لیے اس کا آؤٹ پٹ ہمیشہ ٹیکسٹ ہوتا ہے (جیسا کہ آپ دیکھ سکتے ہیں، تمام حروف کوٹیشن مارکس میں بند ہیں)۔ عددی کو اعداد میں تبدیل کرنے کے لیے، ہم صف کو 1 سے ضرب دیتے ہیں (ڈبل نفی --MID() کا وہی اثر ہوگا)۔ اس آپریشن کا نتیجہ نمبرز اور #VALUE! غلطیاں جو غیر عددی حروف کی نمائندگی کرتی ہیں:
ISNUMBER({0;5;#VALUE!;#VALUE!;#VALUE!;#VALUE!;0;1})
ISNUMBER فنکشن صف کے ہر عنصر کا جائزہ لیتا ہے اور بولین اقدار کی شکل میں اپنا فیصلہ دیتا ہے - نمبرز کے لیے TRUE، کسی بھی چیز کے لیے FALSE:
{TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE}
یہ صف IF فنکشن کے منطقی امتحان پر جاتی ہے، جہاں صف کے ہر عنصر کا FALSE سے موازنہ کیا جاتا ہے:
IF({TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;TRUE ;TRUE}=FALSE, ROW(INDIRECT("1:"&LEN(A2))), 0)
ہر FALSE (غیر عددی قدر) کے لیے، ایک اور ROW(INDIRECT()) فنکشن لوٹاتا ہے۔ تار میں اس کی رشتہ دار پوزیشن۔ ہر TRUE (عددی قدر) کے لیے، ایک صفر لوٹایا جاتا ہے۔ نتیجے میں صف کے طور پر لگتا ہےمندرجہ ذیل ہے:
{0;0;3;4;5;6;0;0}
باقی آسان ہے۔ MAX فنکشن مندرجہ بالا صف میں سب سے زیادہ نمبر تلاش کرتا ہے، جو سٹرنگ میں آخری غیر عددی قدر کی پوزیشن ہے (ہمارے معاملے میں 6)۔ بس، LEN کی طرف سے لوٹائی گئی سٹرنگ کی کل لمبائی سے اس پوزیشن کو گھٹائیں، اور نتیجہ کو دائیں طرف منتقل کریں تاکہ اسے معلوم ہو سکے کہ سٹرنگ کے دائیں جانب سے کتنے حروف نکالنے ہیں:
RIGHT(A2, LEN (A2) - 6)
ہو گیا!
ٹیکسٹ سٹرنگ کے آغاز سے نمبر کیسے نکالا جائے
اگر آپ ایسے ریکارڈز کے ساتھ کام کر رہے ہیں جہاں نمبر کے بعد ٹیکسٹ ظاہر ہوتا ہے، تو آپ اس عام فارمولے کا استعمال کرتے ہوئے سٹرنگ کے آغاز سے نمبر نکالیں:
LEFT( cell, MATCH(FALSE, ISNUMBER(MID( cell, ROW(INDIRECT("1: "&LEN( سیل)+1))، 1) *1)، 0) -1)A2 میں اصل سٹرنگ کے ساتھ، نمبر حاصل کرنے کے لیے درج ذیل فارمولے کا استعمال کریں:
=LEFT(A2, MATCH(FALSE, ISNUMBER(MID(A2, ROW(INDIRECT("1:"&LEN(A2)+1)), 1) *1), 0) -1)
اس سے کوئی فرق نہیں پڑتا ہے کہ درمیان یا آخر میں کتنے ہندسے ہوں، صرف ابتدائی نمبر نکالا جاتا ہے:
نوٹ۔ Excel 365 اور Excel 2021 میں، متحرک صفوں کی حمایت کی وجہ سے، ایک باقاعدہ فارمولہ ٹھیک کام کرتا ہے۔ ایکسل 2019 اور اس سے پہلے میں، آپ کو Ctrl + Shift + Enter کو واضح طور پر اری فارمولہ بنانے کے لیے دبانا چاہیے۔
یہ فارمولہ کیسے کام کرتا ہے:
یہاں، ہم دوبارہ ROW، INDIRECT اور LEN فنکشنز کے امتزاج کا استعمال کرتے ہیں تاکہ ماخذ سٹرنگ پلس 1 (اس کا کرداراضافی کریکٹر تھوڑی دیر بعد واضح ہو جائے گا۔
ROW(INDIRECT("1:"&LEN(A2)+1))
MID اور ISNUMBER وہی کام کرتے ہیں جیسا کہ پچھلی مثال - MID انفرادی حروف کو کھینچتا ہے اور ISNUMBER انہیں منطقی اقدار میں تبدیل کرتا ہے۔ TRUE's اور FALSE's کی نتیجہ خیز صف MATCH فنکشن میں ایک تلاش کی صف کے طور پر جاتی ہے:
MATCH(FALSE, {TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE;FALSE}, 0)
MATCH پہلے FALSE کی ایک رشتہ دار پوزیشن کا حساب لگاتا ہے، جو ہمیں سٹرنگ میں پہلے غیر عددی کریکٹر کی پوزیشن دیتا ہے (A2 میں 3)۔ پچھلے نمبروں کو نکالنے کے لیے، ہم 1 کو پہلے ٹیکسٹ کریکٹر کی پوزیشن سے گھٹاتے ہیں اور فرق کو num_chars LEFT فنکشن کی دلیل میں پیش کرتے ہیں:
LEFT(A2, 3-1)<3
اب، ROW(INDIRECT()+1)) کے ذریعے تیار کردہ ترتیب میں ایک "اضافی" کردار پر واپس جائیں۔ جیسا کہ آپ پہلے ہی جانتے ہیں، یہ ترتیب MID فنکشن کے لیے نقطہ آغاز فراہم کرتی ہے۔ +1 کے بغیر، MID بالکل اتنے ہی حروف نکالے گا جتنے اصل سٹرنگ میں ہیں۔ اگر اسٹرنگ میں صرف نمبر ہوں تو ISNUMBER صرف TRUE واپس کرے گا جبکہ MATCH کو کم از کم ایک FALSE کی ضرورت ہے۔ اس بات کو یقینی بنانے کے لیے، ہم سٹرنگ کی کل لمبائی میں ایک اور حرف شامل کرتے ہیں، جسے MID فنکشن خالی سٹرنگ میں تبدیل کر دے گا۔ مثال کے طور پر، B7 میں، MID اس صف کو لوٹاتا ہے:
{"1";"2";"3";"4";""
نوٹ۔ جیسا کہ RIGHT فنکشن کا معاملہ ہے، LEFT بھی ایک عددی لوٹاتا ہے۔substring ، جو تکنیکی طور پر متن ہے، نمبر نہیں۔ عددی اسٹرنگ کے بجائے ایک نمبر کے طور پر نتیجہ حاصل کرنے کے لیے، VALUE فنکشن میں فارمولے کو نیسٹ کریں یا نتیجہ کو 1 سے ضرب دیں جیسا کہ پہلی مثال میں دکھایا گیا ہے۔
سٹرنگ میں کسی بھی پوزیشن سے نمبر کیسے حاصل کیا جائے
اگر آپ کا کام سٹرنگ میں کہیں سے بھی نمبر نکالنے کا مطلب ہے، تو آپ MrExcel فورم پر شائع ہونے والے مندرجہ ذیل ذہن کو حیران کرنے والے فارمولے کا استعمال کر سکتے ہیں:
=SUMPRODUCT(MID(0&A2, LARGE(INDEX(ISNUMBER(--MID(A2, ROW(INDIRECT("1:"&LEN(A2))), 1)) * ROW(INDIRECT("1:"&LEN(A2))), 0), ROW(INDIRECT("1:"&LEN(A2))))+1, 1) * 10^ROW(INDIRECT("1:"&LEN(A2)))/10)
جہاں A2 ہے اصل متن کی تار۔
اس فارمولے کو توڑنے کے لیے ایک الگ مضمون کی ضرورت ہوگی، لہذا آپ اسے اپنی ورک شیٹ میں کاپی کر سکتے ہیں تاکہ یہ یقینی بنایا جا سکے کہ یہ واقعی کام کرتا ہے :)
نتائج کا جائزہ لینے پر، تاہم، آپ کو ایک معمولی خرابی نظر آ سکتی ہے - اگر سورس سٹرنگ میں کوئی نمبر نہیں ہے، تو فارمولہ صفر لوٹاتا ہے، جیسا کہ اوپر اسکرین شاٹ میں قطار 6 میں ہے۔ اسے ٹھیک کرنے کے لیے، آپ فارمولے کو IF اسٹیٹمنٹ میں لپیٹ سکتے ہیں، جس کا منطقی ٹیسٹ یہ چیک کرتا ہے کہ آیا سورس سٹرنگ میں کوئی نمبر ہے۔ اگر ایسا ہوتا ہے تو، فارمولہ نمبر نکالتا ہے، بصورت دیگر ایک خالی سٹرنگ لوٹاتا ہے:
=IF(SUM(LEN(A2)-LEN(SUBSTITUTE(A2, {"0","1","2","3","4","5","6","7","8","9"}, "")))>0, SUMPRODUCT(MID(0&A2, LARGE(INDEX(ISNUMBER(--MID(A2,ROW(INDIRECT("$1:$"&LEN(A2))),1))* ROW(INDIRECT("$1:$"&LEN(A2))),0), ROW(INDIRECT("$1:$"&LEN(A2))))+1,1) * 10^ROW(INDIRECT("$1:$"&LEN(A2)))/10),"")
جیسا کہ ذیل کے اسکرین شاٹ میں دکھایا گیا ہے، بہتر فارمولہ خوبصورتی سے کام کرتا ہے (الیکس کا شکریہ، ہمارے ایکسل گرو، اس بہتری کے لیے):
پچھلی تمام مثالوں کے برعکس، اس فارمولے کا نتیجہ نمبر ہے۔ اس بات کو یقینی بنانے کے لیے، صرف کالم B میں دائیں سیدھ والی قدروں اور کٹے ہوئے لیڈنگ صفر کو دیکھیں۔
ٹپ۔ ایکسل 365 میں -Excel 2019، TEXTJOIN فنکشن کی مدد سے ایک بہت آسان حل ہے۔ براہ کرم ٹیکسٹ کو ہٹانے اور نمبر رکھنے کا طریقہ دیکھیں۔
الٹیمیٹ سویٹ کے ساتھ ٹیکسٹ اسٹرنگ سے نمبر نکالیں
جیسا کہ آپ نے ابھی دیکھا ہے، ٹیکسٹ اسٹرنگ سے نمبر نکالنے کا کوئی معمولی ایکسل فارمولا نہیں ہے۔ اگر آپ کو اپنے ڈیٹا سیٹس کے لیے فارمولوں کو سمجھنے یا ان میں ترمیم کرنے میں دشواری پیش آتی ہے، تو آپ کو Excel میں سٹرنگ سے نمبر حاصل کرنے کا یہ آسان طریقہ پسند آسکتا ہے۔
ہمارے Ultimate Suite کو آپ کے Excel ربن میں شامل کرنے کے ساتھ، آپ اس طرح کسی بھی حروف نمبری سٹرنگ سے تیزی سے نمبر بازیافت کر سکتے ہیں:
- Ablebits Data ٹیب > Text گروپ پر جائیں، اور Extract پر کلک کریں۔ :
- سورس سٹرنگ کے ساتھ تمام سیلز کو منتخب کریں۔
- ایکسٹریکٹ ٹول کے پین پر، نمبرز نکالیں ریڈیو بٹن کو منتخب کریں۔ 16
- نتائج داخل کریں بٹن پر کلک کریں۔ ہو گیا!
میرا مشورہ یہ ہے کہ اس باکس کو منتخب کریں اگر آپ چاہتے ہیں کہ نکالے گئے نمبرز خود بخود اپ ڈیٹ ہوجائیں جیسے ہی سورس سٹرنگز میں کوئی تبدیلی کی جائے۔ اگر آپ چاہتے ہیں کہ نتائج اصل تاروں پر آزاد ہوں (مثال کے طور پر اگر آپ بعد میں سورس ڈیٹا کو ہٹانے کا ارادہ رکھتے ہیں)، تو اس باکس کو منتخب نہ کریں۔
پچھلی مثال کی طرح، کے نتائجاخراج نمبرز ہیں، یعنی آپ ان کے ساتھ گننے، رقم، اوسط، یا کوئی اور حساب کرنے کے لیے آزاد ہیں۔
اس مثال میں، ہم نے نتائج کو <9 کے طور پر داخل کرنے کا انتخاب کیا ہے۔>values ، اور ایڈ ان نے بالکل وہی کیا جس کے لیے کہا گیا تھا:
اگر فارمولہ کے طور پر داخل کریں چیک باکس کو منتخب کیا گیا تھا، تو آپ فارمولا بار میں فارمولہ کا مشاہدہ کریں۔ کون سا جاننے کے لیے تجسس ہے؟ بس الٹیمیٹ سویٹ کا ٹرائل ڈاؤن لوڈ کریں اور خود دیکھیں :)
دستیاب ڈاؤن لوڈز
ایکسل ایکسٹریکٹ نمبر - نمونہ ورک بک (.xlsx فائل)
الٹیمیٹ سویٹ - ٹرائل ورژن (.exe فائل)