فہرست کا خانہ
آج ہم حسب ضرورت Excel فنکشنز کو تلاش کرنا جاری رکھیں گے۔ جیسا کہ آپ پہلے ہی جانتے ہیں کہ UDFs کیسے بنانا ہے (اور، مجھے امید ہے کہ آپ نے انہیں اپنے ایکسل میں لاگو کرنے کی بھی کوشش کی ہوگی)، آئیے تھوڑا گہرائی میں کھودیں اور سیکھیں کہ کس طرح ایکسل میں صارف کے بیان کردہ فنکشنز کو استعمال اور اسٹور کرنا ہے۔
مزید برآں، ہم آپ کو دکھائیں گے کہ آپ کے فنکشنز کو ایکسل ایڈ ان فائل میں آسانی سے محفوظ کرنے کا طریقہ کچھ کلکس میں بعد میں استعمال کرنے کے لیے۔
لہذا، ہم اس کے بارے میں بات کرنے جارہے ہیں:
ایکسل میں UDF استعمال کرنے کے مختلف طریقے
ورک شیٹس میں UDFs کا استعمال
ایک بار جب آپ نے تصدیق کر لی کہ آپ کے UDF صحیح طریقے سے کام کر رہے ہیں، تو آپ انہیں Excel میں استعمال کر سکتے ہیں۔ فارمولے یا VBA کوڈ میں۔
آپ ایکسل ورک بک میں حسب ضرورت فنکشن اسی طرح لاگو کرسکتے ہیں جس طرح آپ باقاعدہ فنکشنز استعمال کرتے ہیں۔ مثال کے طور پر، صرف سیل میں درج ذیل فارمولہ کو لکھیں:
= GetMaxBetween(A1:A6,10,50)
UDF کو باقاعدہ افعال کے ساتھ ملا کر استعمال کیا جا سکتا ہے۔ مثال کے طور پر، حساب کی گئی زیادہ سے زیادہ قدر میں متن شامل کریں:
= CONCATENATE("Maximum value between 10 and 50 is ", GetMaxBetween(A1: A6,10,50))
آپ نیچے اسکرین شاٹ میں نتیجہ دیکھ سکتے ہیں:
آپ وہ نمبر تلاش کر سکتا ہے جو زیادہ سے زیادہ ہو اور 10 سے 50 کی حد میں ہو۔
آئیے ایک اور فارمولہ چیک کریں:
= INDEX(A2:A9, MATCH(GetMaxBetween(B2:B9, F1, F2), B2:B9,0)), the
کسٹم فنکشن GetMaxBetween رینج B2:B9 کو چیک کرتا ہے اور 10 اور 50 کے درمیان زیادہ سے زیادہ نمبر تلاش کرتا ہے۔ پھر، INDEX + MATCH کا استعمال کرتے ہوئے، ہمیں پروڈکٹ کا نام ملتا ہے جو اس زیادہ سے زیادہ قدر سے ملتا ہے:
<0 جیسا کہ آپ دیکھ سکتے ہیں، حسب ضرورت فنکشنز کا استعمال باقاعدہ ایکسل سے زیادہ مختلف نہیں ہے۔فنکشنز۔
ایسا کرتے وقت، یاد رکھیں کہ صارف کی طرف سے بیان کردہ فنکشن صرف ایک قدر واپس کر سکتا ہے، لیکن کوئی دوسری کارروائی نہیں کر سکتا۔ صارف کی طرف سے طے شدہ فنکشنز کی پابندیوں کے بارے میں مزید پڑھیں۔
VBA طریقہ کار اور فنکشنز میں UDF کا استعمال
UDFs کو VBA میکرو میں بھی استعمال کیا جا سکتا ہے۔ ذیل میں آپ میکرو کوڈ دیکھ سکتے ہیں جو فعال سیل پر مشتمل کالم میں 10 سے 50 کی حد میں زیادہ سے زیادہ قدر تلاش کرتا ہے۔
Sub MacroWithUDF() Dim Rng As Range, maxcase, i As Long With ActiveSheet.Range( Cells(ActiveCell.CurrentRegion.Row, ActiveCell.Column), Cells(ActiveCell.CurrentRegion.Rows.Count _ + ActiveCell.CurrentRegion.Row - 1, ActiveCell.Column)) maxcase = GetMaxBetween(.Cells = 0,5) Application.Match(maxcase, .Cells, 0) .Cells(i).Interior.Color = vbRed End with End Subمیکرو کوڈ حسب ضرورت فنکشن پر مشتمل ہے
GetMaxBetween(.Cells, 10, 50)
یہ فعال کالم میں زیادہ سے زیادہ قدر تلاش کرتا ہے۔ اس قدر کو تب اجاگر کیا جائے گا۔ آپ نیچے دیے گئے اسکرین شاٹ میں میکرو کا نتیجہ دیکھ سکتے ہیں۔
ایک کسٹم فنکشن کو دوسرے کسٹم فنکشن کے اندر بھی استعمال کیا جاسکتا ہے۔ اس سے پہلے اپنے بلاگ میں، ہم نے SpellNumber نامی کسٹم فنکشن کا استعمال کرتے ہوئے نمبر کو متن میں تبدیل کرنے کے مسئلے کو دیکھا۔
اس کی مدد سے، ہم حد سے زیادہ سے زیادہ قیمت حاصل کر سکتے ہیں اور فوری طور پر اسے متن کے طور پر لکھیں۔
ایسا کرنے کے لیے، ہم ایک نیا کسٹم فنکشن بنائیں گے جس میں ہم فنکشنز9 فنکشن
جیسا کہ آپ دیکھ سکتے ہیں، GetMaxBetween فنکشن ایک اور کسٹم فنکشن، SpellNumber کی دلیل ہے۔ یہ زیادہ سے زیادہ قدر کی وضاحت کرتا ہے، جیسا کہ ہم پہلے کئی بار کر چکے ہیں۔ اس نمبر کو پھر ٹیکسٹ میں تبدیل کر دیا جاتا ہے۔
اوپر اسکرین شاٹ میں، آپ دیکھ سکتے ہیں کہ کس طرح SpellGetMaxBetween فنکشن 100 اور 500 کے درمیان زیادہ سے زیادہ نمبر تلاش کرتا ہے۔ پھر اسے متن میں تبدیل کر دیتا ہے۔
دوسری ورک بک سے UDF کال کرنا
اگر آپ نے اپنی ورک بک میں UDF بنایا ہے، بدقسمتی سے، اس کا مطلب یہ نہیں ہے کہ آپ کو کسی بھی قسم کی پریشانی کا سامنا نہیں کرنا پڑے گا۔
میرے تجربے میں، زیادہ تر صارفین جلد یا بدیر انفرادی عمل اور حسابات کو خودکار کرنے کے لیے میکروز اور حسب ضرورت فنکشنز کا اپنا ذاتی مجموعہ بناتے ہیں۔ اور یہاں مسئلہ پیدا ہوتا ہے - Visual Basic میں صارف کے متعین فنکشنز کے کوڈ کو بعد میں کام میں استعمال کرنے کے لیے کہیں اسٹور کرنے کی ضرورت ہے۔ آپ کے ایکسل میں۔ اگر یہ نہیں ہے، تو آپ کو #NAME ملے گا! اسے استعمال کرنے کی کوشش کرتے وقت غلطی۔ یہ غلطی بتاتی ہے کہ Excel اس فنکشن کا نام نہیں جانتا ہے جسے آپ فارمولے میں استعمال کرنا چاہتے ہیں۔
آئیے ان طریقوں پر ایک نظر ڈالتے ہیں۔جسے آپ اپنی تخلیق کردہ حسب ضرورت فنکشنز کو استعمال کرسکتے ہیں۔
طریقہ 1. ورک بک کا نام فنکشن میں شامل کریں
آپ ورک بک کا نام بتا سکتے ہیں جس میں یہ اس کے نام سے پہلے واقع ہے۔ فنکشن مثال کے طور پر، اگر آپ نے ایک کسٹم فنکشن GetMaxBetween() کو My_Functions.xlsm نامی ورک بک میں محفوظ کیا ہے، تو آپ کو درج ذیل فارمولہ درج کرنا ہوگا:
= My_Functions.xlsm!GetMaxBetween(A1:A6,10,50)
طریقہ 2. تمام UDFs کو ایک مشترکہ فائل میں اسٹور کریں
تمام کسٹم فنکشنز کو ایک خصوصی ورک بک میں محفوظ کریں (مثال کے طور پر، My_Functions.xlsm ) اور اس میں سے مطلوبہ فنکشن کاپی کریں۔ موجودہ ورک بک، اگر ضروری ہو تو۔
ہر بار جب آپ کوئی نیا کسٹم فنکشن بناتے ہیں، آپ کو ورک بک میں اس کے کوڈ کو ڈپلیکیٹ کرنے کی ضرورت ہوتی ہے جس میں آپ اسے استعمال کریں گے۔ اس طریقہ کار سے، کئی تکلیفیں پیدا ہو سکتی ہیں:
- اگر بہت ساری فائلیں کام کر رہی ہیں، اور فنکشن ہر جگہ درکار ہے، تو کوڈ کو ہر کتاب میں کاپی کرنا ہوگا۔
- یاد رکھیں کہ ورک بک کو میکرو فعال فارمیٹ میں محفوظ کریں بہت سے صارفین خوفزدہ ہو جاتے ہیں جب وہ پیلے رنگ کی بار کی وارننگ دیکھتے ہیں جو ان سے میکرو کو فعال کرنے کے لیے کہتی ہے۔ اس پیغام کو دیکھنے سے بچنے کے لیے، آپ کو Excel تحفظ کو مکمل طور پر غیر فعال کرنا ہوگا۔ تاہم، یہ ہمیشہ درست اور محفوظ نہیں ہوسکتا ہے۔
میرے خیال میں آپ مجھ سے اتفاق کریں گے کہ ہر وقت ایکفائل کرنا اور اس سے صارف کے مقرر کردہ فنکشنز کے کوڈ کو کاپی کرنا یا فارمولے میں اس فائل کا نام لکھنا بہترین حل نہیں ہے۔ اس طرح، ہم تیسرے راستے پر آئے۔
طریقہ 3۔ ایک ایکسل ایڈ ان فائل بنائیں
میرے خیال میں ایکسل ایڈ ان فائل میں اکثر استعمال ہونے والے کسٹم فنکشنز کو اسٹور کرنا بہترین طریقہ ہے۔ . ایڈ ان استعمال کرنے کے فوائد:
- آپ کو ایڈ ان کو صرف ایک بار Excel سے جوڑنے کی ضرورت ہے۔ اس کے بعد، آپ اس کمپیوٹر پر کسی بھی فائل میں اس کے طریقہ کار اور افعال استعمال کر سکتے ہیں۔ آپ کو اپنی ورک بکس کو .xlsm اور .xlsb فارمیٹس میں محفوظ کرنے کی ضرورت نہیں ہے کیونکہ سورس کوڈ ان میں محفوظ نہیں کیا جائے گا بلکہ ایڈ ان فائل میں۔
- آپ کو میکرو تحفظ سے مزید پریشانی نہیں ہوگی۔ ایڈ انز ہمیشہ بھروسہ مند ذرائع کا حوالہ دیتے ہیں۔
- ایڈ ان ایک الگ فائل ہے۔ ساتھیوں کے ساتھ اشتراک کرنے کے لیے اسے کمپیوٹر سے کمپیوٹر میں منتقل کرنا آسان ہے۔
ہم بعد میں ایک ایڈ بنانے اور استعمال کرنے کے بارے میں مزید بات کریں گے۔
ad- کا استعمال کسٹم فنکشنز کو اسٹور کرنے کے لیے انز
میں اپنا ایڈ ان کیسے بناؤں؟ آئیے مرحلہ وار اس عمل سے گزرتے ہیں۔
مرحلہ 1۔ ایڈ ان فائل بنائیں
مائیکروسافٹ ایکسل کھولیں، ایک نئی ورک بک بنائیں، اور اسے کسی مناسب نام سے محفوظ کریں (مثال کے طور پر، My_Functions) ایڈ ان فارمیٹ میں۔ ایسا کرنے کے لیے، مینو فائل - Save As یا F12 کلید استعمال کریں۔ فائل کی قسم کو بتانا یقینی بنائیں Excel Add-in :
آپ کے ایڈ ان میں ایکسٹینشن .xlam ہوگی۔
ٹپ. براہ مہربانی یاد رکھیںڈیفالٹ ایکسل ایڈ انز کو C:\Users\[Your_Name]\AppData\Roaming\Microsoft\AddIns فولڈر میں اسٹور کرتا ہے۔ میں تجویز کرتا ہوں کہ آپ پہلے سے طے شدہ مقام کو قبول کریں۔ اگر آپ چاہیں تو، آپ کسی دوسرے فولڈر کی وضاحت کر سکتے ہیں۔ لیکن پھر، ایڈ ان کو مربوط کرتے وقت، آپ کو اس کا نیا مقام دستی طور پر تلاش کرنے اور اس کی وضاحت کرنے کی ضرورت ہوگی۔ اگر آپ اسے ڈیفالٹ فولڈر میں محفوظ کرتے ہیں، تو آپ کو اپنے کمپیوٹر پر ایڈ آن تلاش کرنے کی ضرورت نہیں ہے۔ ایکسل خود بخود اس کی فہرست بنائے گا۔ 6 پھر پروگرام شروع ہونے پر یہ خود بخود لوڈ ہو جائے گا۔ ایسا کرنے کے لیے، مینو فائل - آپشنز - ایڈ انز استعمال کریں۔ یقینی بنائیں کہ Excel Add-Ins کو Manage فیلڈ میں منتخب کیا گیا ہے۔ ونڈو کے نیچے گو بٹن پر کلک کریں۔ ظاہر ہونے والی ونڈو میں، ہمارے ایڈ ان My_Functions کو نشان زد کریں۔ اگر آپ اسے فہرست میں نہیں دیکھتے ہیں، تو براؤز کریں بٹن پر کلک کریں اور اپنی ایڈ ان فائل کے مقام پر براؤز کریں۔
اگر آپ اپنی مرضی کے افعال کو ذخیرہ کرنے کے لیے ایک ایڈ کا استعمال کر رہے ہیں، اس پر عمل کرنے کے لیے ایک آسان اصول ہے۔ اگر آپ ورک بک کو دوسرے لوگوں کو منتقل کر رہے ہیں، تو یقینی بنائیں کہ ایڈ ان کی ایک کاپی بھی منتقل کریں جس میں آپ کی مطلوبہ فعالیت موجود ہو۔ انہیں اسے اسی طرح جوڑنا چاہیے جیسا کہ آپ نے ابھی کیا ہے۔
مرحلہ 3۔ ایڈ ان میں کسٹم فنکشنز اور میکروز شامل کریں
ہمارا ایڈ ان ایکسل سے منسلک ہے، لیکن ایسا نہیں ہوتا کوئی فعالیت نہیں ہے۔ابھی تک. اس میں نئے UDFs کو شامل کرنے کے لیے، Alt + F11 دبا کر Visual Basic Editor کو کھولیں۔ پھر آپ VBA کوڈ کے ساتھ نئے ماڈیولز شامل کر سکتے ہیں جیسا کہ میرے Create UDFs ٹیوٹوریل میں بیان کیا گیا ہے۔
اپنی ایڈ ان فائل ( My_Finctions.xlam ) میں VBAProject ونڈو۔ اپنی مرضی کا ماڈیول شامل کرنے کے لیے Insert - Module مینو کا استعمال کریں۔ آپ کو اس میں اپنی مرضی کے مطابق فنکشن لکھنے کی ضرورت ہے۔
آپ یا تو صارف کے طے شدہ فنکشن کا کوڈ دستی طور پر ٹائپ کرسکتے ہیں یا اسے کہیں سے کاپی کرسکتے ہیں۔
بس۔ اب آپ نے اپنا ایڈ ان بنا لیا ہے، اسے ایکسل میں شامل کیا ہے اور آپ اس میں UDF استعمال کر سکتے ہیں۔ اگر آپ مزید UDFs استعمال کرنا چاہتے ہیں تو صرف VBA ایڈیٹر میں ایڈ ان ماڈیول میں کوڈ لکھیں اور اسے محفوظ کریں۔
آج کے لیے بس۔ ہم نے آپ کی ورک بک میں یوزر ڈیفائنڈ فنکشنز کو استعمال کرنے کا طریقہ سیکھا ہے۔ ہم واقعی امید کرتے ہیں کہ آپ کو یہ رہنما خطوط مددگار ثابت ہوں گے۔ اگر آپ کے کوئی سوالات ہیں، تو اس مضمون کے تبصروں میں لکھیں۔