فہرست کا خانہ
یہ ٹیوٹوریل آپ کو سکھائے گا کہ مقامی فارمولوں اور حسب ضرورت فنکشنز کا استعمال کرکے ایکسل میں متن کو نمبروں سے کیسے الگ کیا جائے۔ آپ متن اور نمبروں کو دو الگ الگ کالموں میں تقسیم کرنے کا طریقہ بھی سیکھیں گے۔
اس کا تصور کریں: آپ کو تجزیہ کے لیے خام ڈیٹا ملتا ہے اور معلوم ہوتا ہے کہ نمبرز کو ایک کالم میں متن کے ساتھ ملایا گیا ہے۔ زیادہ تر حالات میں، قریب سے جانچنے کے لیے انہیں علیحدہ کالموں میں رکھنا یقینی طور پر زیادہ آسان ہوگا۔
اگر آپ یکساں ڈیٹا کے ساتھ کام کر رہے ہیں، تو آپ ممکنہ طور پر بائیں، دائیں، اور درمیانی فنکشنز کو نکالنے کے لیے استعمال کر سکتے ہیں۔ ایک ہی پوزیشن سے حروف کی ایک ہی تعداد۔ لیکن یہ لیبارٹری ٹیسٹ کے لیے ایک مثالی منظر ہے۔ حقیقی زندگی میں، آپ کو مختلف اعداد و شمار سے نمٹنے کا زیادہ امکان ہوتا ہے جہاں نمبر متن سے پہلے، متن کے بعد یا متن کے درمیان آتے ہیں۔ نیچے دی گئی مثالیں اس معاملے کے لیے بالکل حل فراہم کرتی ہیں۔
ٹیکسٹ کو کیسے ہٹایا جائے اور ایکسل سیلز میں نمبر کیسے رکھیں
سلول ایکسل 365، ایکسل 2021 میں کام کرتا ہے۔ ، اور Excel 2019
Microsoft Excel 2019 نے کچھ نئے فنکشنز متعارف کرائے ہیں جو پہلے کے ورژنز میں دستیاب نہیں ہیں، اور ہم ایسے فنکشنز میں سے ایک کا استعمال کرنے جا رہے ہیں، یعنی TEXTJOIN، سیل سے ٹیکسٹ کریکٹرز کو ہٹانے کے لیے۔ اعداد پر مشتمل۔
عام فارمولہ ہے:
TEXTJOIN("", TRUE, IFERROR(MID( cell, ROW(INDIRECT( "1:"&LEN( cell))), 1) *1, ""))ایکسل 365 اور 2021 میں، یہ بھی کام کرے گا:
TEXTJOIN("", TRUE,IFERROR(MID( cell, SEQUENCE(LEN( cell)), 1) *1, ""))پہلی نظر میں، فارمولے کچھ خوفناک لگ سکتے ہیں، لیکن وہ کام کرتے ہیں۔ ایکسل 365 - 2019 میں:
=TEXTJOIN("", TRUE, IFERROR(MID(A2, ROW(INDIRECT( "1:"&LEN(A2))), 1) *1, ""))
ایکسل 2019 میں، اسے Ctrl + Shift + Enter کے ساتھ ایک صف کے فارمولے کے طور پر درج کیا جانا چاہیے۔ متحرک صف ایکسل میں، یہ Enter کلید کے ساتھ مکمل ہونے والے ایک عام فارمولے کے طور پر کام کرتا ہے۔
ایکسل 365 اور 2021 میں:
=TEXTJOIN("", TRUE, IFERROR(MID(A2, SEQUENCE(LEN(A2)), 1) *1, ""))
نتیجتاً، تمام ٹیکسٹ حروف سیل سے ہٹا دیا جاتا ہے اور نمبر رکھے جاتے ہیں:
یہ فارمولا کیسے کام کرتا ہے:
منطق کو بہتر طور پر سمجھنے کے لیے، آئیے تحقیقات شروع کرتے ہیں۔ اندر سے فارمولہ:
آپ یا تو ROW(INDIRECT("1:"&LEN(string))) یا SEQUENCE(LEN(string)) کا استعمال کرتے ہیں تاکہ کل تعداد سے مماثل نمبر بنائیں سورس سٹرنگ میں حروف کی تعداد، اور پھر ان ترتیب وار نمبروں کو MID فنکشن میں ابتدائی نمبروں کے طور پر فیڈ کریں۔ B2 میں، فارمولے کا یہ حصہ اس طرح نظر آتا ہے:
MID(A2, {1;2;3;4;5;6;7;8;9;10;11;12;13;14;15}, 1)
MID فنکشن A2 سے ہر ایک حرف کو پہلے والے سے نکالتا ہے اور انہیں ایک صف کے طور پر واپس کرتا ہے:
{"2";"1";"0";" ";"S";"u";"n";"s";"e";"t";" ";"R";"o";"a";"d"}
اس صف کو 1 سے ضرب کیا جاتا ہے۔ عددی قدریں بغیر کسی تبدیلی کے زندہ رہتی ہیں، جب کہ ایک غیر عددی حرف کو ضرب کرنے سے #VALUE! خرابی:
{2;1;0;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!}
IFERROR فنکشن ہینڈل کرتا ہے۔یہ خامیاں اور ان کو خالی تاروں سے بدل دیتی ہیں:
{2;1;0;"";"";"";"";"";"";"";"";"";"";"";""}
یہ حتمی صف TEXTJOIN فنکشن میں پیش کی جاتی ہے، جو صف میں موجود غیر خالی اقدار کو جوڑتی ہے ( ignore_empty ڈیلیمیٹر کے لیے خالی سٹرنگ ("") کا استعمال کرتے ہوئے دلیل درست پر سیٹ کی گئی:
TEXTJOIN("", TRUE, {2;1;0;"";"";"";"";"";"";"";"";"";"";"";""})
ٹِپ۔ Excel 2016 - 2007 کے لیے، ایک حل بھی موجود ہے، لیکن فارمولہ کہیں زیادہ پیچیدہ ہے۔ آپ اسے اس ٹیوٹوریل میں تلاش کر سکتے ہیں: ایکسل میں نمبر کیسے نکالیں۔
نمبروں سے متن کو ہٹانے کے لیے کسٹم فنکشن
حل تمام ایکسل ورژنز کے لیے کام کرتا ہے
اگر آپ ایکسل کا پرانا ورژن استعمال کررہے ہیں یا اوپر والے فارمولے بھی تلاش کرتے ہیں یاد رکھنا مشکل ہے، کوئی بھی چیز آپ کو آسان نحو اور صارف دوست نام جیسے RemoveText کے ساتھ اپنا فنکشن بنانے سے نہیں روکتی۔ یوزر ڈیفائنڈ فنکشن (UDF) کو دو طریقوں سے لکھا جا سکتا ہے:
VBA کوڈ 1:
یہاں، ہم سورس سٹرنگ میں ہر کریکٹر کو ایک ایک کرکے دیکھتے ہیں۔ ایک اور چیک کریں کہ آیا یہ عددی ہے یا نہیں۔ اگر ایک عدد ہے، تو کریکٹر کو نتیجے میں آنے والی سٹرنگ میں شامل کیا جاتا ہے۔
فنکشن RemoveText(str As String ) Dim sRes as String sRes = "" For i = 1 To Len(str) If True = IsNumeric(Mid(str, i) , 1)) پھر sRes = sRes & Mid(str, i, 1) End If Next i RemoveText = sRes End فنکشنVBA کوڈ 2:
کوڈ ریگولر ایکسپریشن پر کارروائی کرنے کے لیے ایک آبجیکٹ بناتا ہے۔ RegExp کا استعمال کرتے ہوئے، ہم سورس سٹرنگ سے ہندسوں 0-9 کے علاوہ تمام حروف کو ہٹا دیتے ہیں۔
CreateObject ( "VBScript.RegExp" ) کے ساتھ سٹرنگ کے بطور فنکشن RemoveText(string ) .Global = True .Pattern = "[^0-9]" RemoveText = .Replace(str, "" ) اختتام فنکشن کے ساتھ ختم کریںچھوٹی ورک شیٹس پر، دونوں کوڈز یکساں طور پر اچھی کارکردگی کا مظاہرہ کریں گے۔ بڑی ورک شیٹس پر جہاں فنکشن کو سینکڑوں یا ہزاروں بار کہا جاتا ہے، VBScript.RegExp استعمال کرنے والا کوڈ 2 تیزی سے کام کرے گا۔
آپ کی ورک بک میں کوڈ داخل کرنے کے تفصیلی اقدامات یہاں مل سکتے ہیں: VBA کیسے داخل کریں ایکسل میں کوڈ۔
آپ جو بھی نقطہ نظر منتخب کرتے ہیں، اختتامی صارف کے نقطہ نظر سے، متن کو حذف کرنے اور نمبروں کو چھوڑنے کا فنکشن اتنا ہی آسان ہے:
RemoveText(string)مثال کے طور پر، سیل A2 سے غیر عددی حروف کو ہٹا دیں، B2 میں فارمولا ہے:
=RemoveText(A2)
اسے کالم کے نیچے کاپی کریں، اور آپ کو یہ نتیجہ ملے گا:
نوٹ۔ مقامی فارمولے اور حسب ضرورت فنکشن دونوں ایک عددی سٹرنگ آؤٹ پٹ کرتے ہیں۔ اسے عدد میں تبدیل کرنے کے لیے، نتیجہ کو 1 سے ضرب دیں، یا صفر کا اضافہ کریں، یا فارمولے کو VALUE فنکشن میں لپیٹ دیں۔ مثال کے طور پر:
=RemoveText(A2) + 0
=VALUE(RemoveText(A2))
ایکسل میں ٹیکسٹ سٹرنگ سے نمبرز کو کیسے ہٹایا جائے
حل ایکسل 365، ایکسل 2021 اور ایکسل میں کام کرتا ہے۔ 2019
حروف نمبری اسٹرنگ سے اعداد کو ہٹانے کے فارمولے کافی حد تک ان فارمولوں سے ملتے جلتے ہیں جن پر پچھلی مثال میں بات کی گئی ہے۔
ایکسل 365 - 2019 کے لیے:
TEXTJOIN(" ", TRUE, IF(ISERR(MID( cell , ROW(Indirect(1 سیل ))))، 1)، ""))ایکسل 2019 میں، Ctrl + Shift + Enter کیز کو ایک ساتھ دبا کر اسے اری فارمولہ بنانا یاد رکھیں۔
ایکسل 365 اور 2021 کے لیے:
TEXTJOIN("", TRUE, IF(ISERROR(MID( cell , SEQUENCE(LEN( cell 1) *1), MID ( cell , SEQUENCE(LEN( cell )), 1), ""))مثال کے طور پر، A2 میں سٹرنگ سے نمبروں کو نکالنے کے لیے، فارمولا یہ ہے:
=TEXTJOIN("", TRUE, IF(ISERR(MID(A2, ROW(INDIRECT( "1:"&LEN(A2) )), 1) *1), MID(A2, ROW(INDIRECT("1:"&LEN(A2))), 1), ""))
یا
=TEXTJOIN("", TRUE, IF(ISERROR(MID(A2, SEQUENCE(LEN(A2)), 1) *1), MID(A2, SEQUENCE(LEN(A2)), 1), ""))
نتیجے کے طور پر، تمام نمبرز سیل سے ہٹا دیے جاتے ہیں اور متن کے حروف رکھے جاتے ہیں:
جیسا کہ اوپر اسکرین شاٹ میں دکھایا گیا ہے، فارمولہ سٹرنگ میں کسی بھی پوزیشن سے عددی حروف کو ہٹا دیتا ہے: شروع میں، آخر میں اور درمیان میں۔ تاہم، ایک انتباہ ہے: اگر کوئی سٹرنگ 9 ، فارمولے کو TRIM فنکشن میں اس طرح لپیٹیں:
=TRIM(TEXTJOIN("", TRUE, IF(ISERROR(MID(A2, SEQUENCE(LEN(A2)), 1) *1), MID(A2, SEQUENCE(LEN(A2)), 1), "")))
اب، آپ کے نتائج بالکل پرفیکٹ ہیں!
15>
یہ فارمولہ کیسے کام کرتا ہے:
جوہر میں، فارمولہ وہی کام کرتا ہے جیسا کہ پچھلی مثال میں بیان کیا گیا ہے۔ فرق یہ ہے کہ، TEXTJOIN فنکشن میں پیش کی جانے والی آخری صف سے، آپ کو نمبروں کو ہٹانے کی ضرورت ہے، متن کی نہیں۔ اسے مکمل کرنے کے لیے، ہم IF اور ISERROR فنکشنز کا مجموعہ استعمال کرتے ہیں۔
جیسا کہ آپ کو یاد ہے،MID(…)+0 نمبرز اور #VALUE! ایک ہی پوزیشن میں متن کے حروف کی نمائندگی کرنے والی خرابیاں:
{2;1;0;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!}
ISERROR فنکشن غلطیوں کو پکڑتا ہے اور نتیجے میں بولین قدروں کی صف کو IF:
{FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE}
{"";"";"";" ";"S";"u";"n";"s";"e";"t";" ";"R";"o";"a";"d"}
یہ حتمی صف TEXTJOIN کو دے دی جاتی ہے، لہذا یہ متن کے حروف کو جوڑتا ہے اور آؤٹ پٹ کرتا ہے۔ نتیجہ۔
متن سے نمبروں کو ہٹانے کے لیے حسب ضرورت فنکشن
حل تمام Excel ورژنز کے لیے کام کرتا ہے
اس بات کو ذہن میں رکھتے ہوئے کہ ایک مضبوط فارمولہ رکھا جانا چاہیے۔ سادہ، میں کسی بھی عددی کیریکٹر کو ختم کرنے کے لیے یوزر ڈیفائنڈ فنکشن (UDF) کا کوڈ شیئر کروں گا۔
VBA کوڈ 1:
فنکشن RemoveNumbers(str As String) Dim sRes بطور اسٹرنگ sRes = "" i = 1 سے Len(str) کے لیے اگر False = IsNumeric(Mid(str, i, 1)) تو sRes = sRes & Mid(str, i, 1) End If Next i RemoveNumbers = sRes End فنکشنVBA کوڈ 2:
فنکشن RemoveNumbers(str As String ) CreateObject ( "VBScript.RegExp" کے ساتھ سٹرنگ کے طور پر ) .Global = True .Pattern = "[0-9]" RemoveNumbers2 = .Replace(str, "" ) End with End Functionجیسا کہ RemoveText فنکشن کا معاملہ ہے، دوسرا کوڈ اس میں استعمال کرنا بہتر ہے۔ بڑاکارکردگی کو بہتر بنانے کے لیے ورک شیٹس۔
ایک بار جب آپ کی ورک بک میں کوڈ شامل ہوجاتا ہے، تو آپ اس حسب ضرورت فنکشن کا استعمال کرتے ہوئے سیل سے تمام عددی حروف کو ہٹا سکتے ہیں:
RemoveNumbers(string)ہمارے معاملے میں، B2 میں فارمولہ یہ ہے:
=RemoveNumbers(A2)
اگر کوئی ہے تو لیڈنگ اسپیس کو تراشنے کے لیے، TRIM کے اندر اپنی مرضی کے فنکشن کو نیسٹ کریں جیسا کہ آپ مقامی فارمولہ:
=TRIM(RemoveNumbers(A2))
نمبروں اور متن کو الگ الگ کالموں میں تقسیم کریں
اس صورت حال میں جب آپ متن اور نمبروں کو دو کالموں میں الگ کرنا چاہتے ہیں، یہ کام ایک فارمولے کے ساتھ کرنا اچھا ہوگا۔ متفق ہیں؟ اس کے لیے، ہم صرف RemoveText اور RemoveNumbers فنکشنز کے کوڈ کو ایک فنکشن میں ضم کرتے ہیں، جس کا نام SplitTextNumbers ہے، یا صرف Split ، یا جو بھی آپ کو پسند ہے :)
VBA کوڈ 1:
فنکشن SplitTextNumbers(str As String , is_remove_text As Boolean ) As String Dim sNum, sText, sChar As String sCurChar = sNum = sText = "" کے لیے i = 1 سے Len(str) sCurChar = Mid(str, i, 1) If True = IsNumeric(sCurChar) تو sNum = sNum & sCurChar Else sText = sText & sCurChar End If Next i If True = is_remove_text پھر SplitTextNumbers = sNum ورنہ SplitTextNumbers = sText End اگر اختتام فنکشنVBA کوڈ 2:
فنکشن SplitTextNumbers(str As String، is_remove_text) As_remove_text CreateObject ( "VBScript.RegExp" ) کے ساتھ .Global = True If True = is_remove_text پھر .Pattern = "[^0-9]" اور.Pattern = "[0-9]" End If SplitTextNumbers = .Replace(str, "" ) End فنکشن کے ساتھ ختم کریںہمارے نئے کسٹم فنکشن کے لیے دو دلائل درکار ہیں:
SplitTextNumbers(string, is_remove_text)جہاں 1
ہمارے نمونہ ڈیٹاسیٹ کے لیے، فارمولے یہ فارم لیتے ہیں:
غیر عددی حروف کو ہٹانے کے لیے:
=SplitTextNumbers(A2, TRUE)
عددی حروف کو حذف کرنے کے لیے :
=SplitTextNumbers(A2, FALSE)
ٹپ۔ لیڈنگ اسپیس کے ممکنہ مسئلے سے بچنے کے لیے، میں ہمیشہ اس فارمولے کو لپیٹنے کی تجویز کرتا ہوں جو TRIM فنکشن میں نمبرز کو ہٹاتا ہے:
=TRIM(SplitTextNumbers(A2, FALSE))
نمبرز یا ٹیکسٹ کو ہٹانے کا خصوصی ٹول
ان لوگوں کے لیے جو چیزوں کو غیر ضروری طور پر پیچیدہ کرنا پسند نہیں، میں ایکسل میں متن یا نمبرز کو ہٹانے کا اپنا طریقہ دکھاؤں گا۔
یہ فرض کرتے ہوئے کہ ہمارا الٹیمیٹ سویٹ آپ کے ایکسل ربن میں شامل ہو گیا ہے، آپ یہ کرتے ہیں:
- Ablebits Data ٹیب پر، Text گروپ میں، ہٹائیں > کریکٹرز ہٹائیں پر کلک کریں۔
ٹپ۔ اگر نتائج میں کچھ سرکردہ خالی جگہیں ہوں تو، خالی جگہوں کو تراشیں۔ٹول انہیں کسی بھی وقت ختم کردے گا۔
اس طرح ایکسل میں سٹرنگ سے متن یا عددی حروف کو ہٹانا ہے۔ میں پڑھنے کے لیے آپ کا شکریہ ادا کرتا ہوں اور اگلے ہفتے آپ کو ہمارے بلاگ پر دیکھنے کا منتظر ہوں!
دستیاب ڈاؤن لوڈ
ایکسل میں متن یا نمبر ہٹائیں - مثالیں (.xlsm فائل)
الٹیمیٹ سویٹ - ٹرائل ورژن (.exe فائل)