ایکسل میں کسٹم فنکشنز کے فائدے اور خرابیاں

  • اس کا اشتراک
Michael Brown

ہم صارف کے متعین افعال کے بارے میں سبق کا سلسلہ جاری رکھے ہوئے ہیں۔ ہمارے پچھلے مضامین میں، ہم نے حسب ضرورت فنکشنز سے واقفیت حاصل کی اور سیکھا کہ ان کو کیسے بنانا اور استعمال کرنا ہے۔ اس مینول میں ہم ان فنکشنز کے استعمال کی تفصیلات دیکھیں گے اور UDFs اور VBA میکرو کے درمیان فرق دیکھیں گے۔

اس ٹیوٹوریل میں، ہم درج ذیل سیکھیں گے:

    ہمیں امید ہے کہ یہ مضمون UDF کے بارے میں آپ کے علم میں اضافہ کرے گا اور آپ کی ایکسل ورک بک میں ان کو اور زیادہ مؤثر طریقے سے استعمال کرنے میں آپ کی مدد کرے گا۔

    کیا UDF اور میکرو ایک ہی چیز ہیں؟

    دونوں صارف کے متعین فنکشنز اور VBA میکرو VBA ایڈیٹر کا استعمال کرتے ہوئے بنائے جاتے ہیں۔ ان میں کیا فرق ہے اور کس چیز کو ترجیح دی جائے؟

    سب سے اہم فرق یہ ہے کہ فنکشن حساب کتاب کرتا ہے، اور میکرو کچھ کارروائی کرتا ہے۔ ایک صارف کی وضاحت شدہ فنکشن، ایک باقاعدہ ایکسل فنکشن کی طرح، سیل میں لکھا جانا چاہیے۔ اس کے نفاذ کے نتیجے میں، سیل کچھ قدر واپس کرتا ہے۔ ایک ہی وقت میں، دوسرے خلیوں کی قدروں کے ساتھ ساتھ موجودہ سیل کی کچھ خصوصیات (خاص طور پر فارمیٹنگ) کو تبدیل کرنا ناممکن ہے۔ تاہم، آپ مشروط فارمیٹنگ فارمولوں میں حسب ضرورت فنکشن استعمال کر سکتے ہیں۔

    UDF اور VBA میکرو مختلف طریقوں سے کام کرتے ہیں۔ مثال کے طور پر، جب آپ Visual Basic Editor میں UDF بناتے ہیں، تو آپ ایک بیان Function سے شروع کرتے ہیں اور End Function کے ساتھ ختم کرتے ہیں۔ جب آپ میکرو کو ریکارڈ کرتے ہیں، تو آپ a سے شروع کرتے ہیں۔بیان Sub اور ایک End Sub

    UDFs بنانے کے لیے تمام Visual Basic آپریٹرز کا استعمال نہیں کیا جا سکتا۔ اس وجہ سے، ایک میکرو ایک زیادہ ورسٹائل حل ہے۔

    ایک میکرو کو صارف سے کسی بھی دلیل کو پاس کرنے کی ضرورت نہیں ہوتی ہے (اور نہ ہی یہ کسی بھی دلیل کو قبول کر سکتا ہے)، صارف کے بیان کردہ فنکشن کے برعکس۔

    نکتہ یہ ہے کہ میکرو کی کچھ کمانڈز سیل ایڈریس یا فارمیٹنگ عناصر (مثال کے طور پر رنگ) استعمال کر سکتی ہیں۔ اگر آپ سیلز کو منتقل کرتے ہیں، قطاروں اور کالموں کو شامل یا ہٹاتے ہیں، سیلز کی شکل تبدیل کرتے ہیں، تو آپ اپنے میکرو کو آسانی سے "بریک" کر سکتے ہیں۔ یہ خاص طور پر ممکن ہے اگر آپ اپنی فائل کو ان ساتھیوں کے ساتھ شیئر کرتے ہیں جو نہیں جانتے کہ آپ کے میکرو کیسے کام کرتے ہیں۔

    مثال کے طور پر، آپ کے پاس ایک مکمل طور پر کام کرنے والے میکرو والی فائل ہے۔ یہ فارمولہ سیل A1 سے A4 کے فیصد کا حساب لگاتا ہے۔ میکرو ان خلیوں کا رنگ پیلا کر دیتا ہے۔ ایکٹیو سیل میں فی صد فارمیٹ سیٹ کیا جاتا ہے۔

    اگر آپ یا کوئی اور نئی قطار داخل کرنے کا فیصلہ کرتے ہیں، تو میکرو A4 سیل میں قدر تلاش کرتا رہے گا ( آپ کے UDF میں 4,1 پیرامیٹر، فیل ہو کر ایک خرابی لوٹائیں:

    اس صورت میں، خرابی صفر سے تقسیم ہونے کی وجہ سے ہوئی ہے (نئے شامل کردہ میں کوئی قدر نہیں قطار)۔ اگر میکرو پرفارم کرتا ہے، آئیے کہتے ہیں، خلاصہ، تو آپ کو صرف ایک غلط نتیجہ ملے گا۔ لیکن آپ اس کے بارے میں نہیں جان پائیں گے۔

    میکروز کے برعکس، صارف کے متعین فنکشنز ایسی ناخوشگوار صورتحال کا سبب نہیں بن سکتے۔

    نیچے آپ کی کارکردگی دیکھیںUDF کا استعمال کرتے ہوئے وہی حساب۔ یہاں آپ ورک شیٹ میں کہیں بھی ان پٹ سیلز کی وضاحت کر سکتے ہیں اور اسے تبدیل کرتے وقت آپ کو کسی غیر متوقع مسائل کا سامنا نہیں کرنا پڑے گا۔

    میں نے C3 میں درج ذیل فارمولہ لکھا:

    =UDF_vs_Macro(A1,A4)

    پھر میں نے ایک خالی قطار ڈالی، اور فارمولہ بدل گیا جیسا کہ آپ اوپر اسکرین شاٹ میں دیکھ سکتے ہیں۔

    اب ہم ان پٹ سیل یا کسی فنکشن والے سیل کو کہیں بھی منتقل کر سکتے ہیں۔ نتیجہ ہمیشہ درست ہوگا۔

    UDFs استعمال کرنے کا ایک اضافی فائدہ یہ ہے کہ جب ان پٹ سیل میں قدر تبدیل ہوتی ہے تو وہ خود بخود اپ ڈیٹ ہو جاتے ہیں۔ میکروز استعمال کرتے وقت، آپ کو ہمیشہ یہ یقینی بنانا چاہیے کہ تمام ڈیٹا اپ ٹو ڈیٹ ہے۔

    اس مثال کو ذہن میں رکھتے ہوئے، میں جہاں بھی ممکن ہو UDFs کو ترجیح دوں گا اور صرف دیگر غیر حسابی سرگرمیوں کے لیے میکرو کا استعمال کروں گا۔

    UDF استعمال کرنے کی حدود اور نقصانات

    میں پہلے ہی اوپر UDF کے فوائد کا ذکر کر چکا ہوں۔ طویل کہانی مختصر، یہ ایسے حسابات انجام دے سکتا ہے جو معیاری ایکسل فنکشنز کے ساتھ ممکن نہیں ہے۔ اس کے علاوہ، یہ طویل اور پیچیدہ فارمولوں کو محفوظ اور استعمال کر سکتا ہے، انہیں ایک فنکشن میں تبدیل کر سکتا ہے۔ اور آپ کو بار بار پیچیدہ فارمولے لکھنے کی ضرورت نہیں پڑے گی۔

    اب آئیے UDF کی خامیوں کے بارے میں مزید تفصیل سے بات کرتے ہیں:

    • UDFs بنانے کے لیے VBA کے استعمال کی ضرورت ہے۔ اس کے ارد گرد کوئی راستہ نہیں ہے. اس کا مطلب ہے کہ صارف UDF کو ایکسل میکرو کی طرح ریکارڈ نہیں کر سکتا۔ آپ کو خود UDF بنانا ہوگا۔ تاہم، آپ کاپی کر سکتے ہیں اورپہلے ریکارڈ شدہ میکرو کوڈ کے کچھ حصے اپنے فنکشن میں چسپاں کریں۔ آپ کو صرف حسب ضرورت فنکشنز کی حدود سے آگاہ ہونے کی ضرورت ہے۔
    • UDF کی ایک اور خرابی یہ ہے کہ کسی دوسرے ایکسل فنکشن کی طرح یہ سیل میں صرف ایک ویلیو یا قدروں کی ایک صف کو واپس کر سکتا ہے۔ یہ صرف حسابات کرتا ہے، اس سے زیادہ کچھ نہیں۔
    • اگر آپ اپنی ورک بک کو اپنے ساتھیوں کے ساتھ شیئر کرنا چاہتے ہیں تو اپنے UDFs کو اسی فائل میں محفوظ کرنا یقینی بنائیں۔ بصورت دیگر، آپ کے حسب ضرورت فنکشنز ان کے لیے کام نہیں کریں گے۔
    • VBA ایڈیٹر کے ساتھ بنائے گئے کسٹم فنکشنز ریگولر فنکشنز سے سست ہیں۔ یہ خاص طور پر بڑی میزوں میں نمایاں ہے۔ بدقسمتی سے، VBA اب تک ایک بہت سست پروگرامنگ زبان ہے۔ لہذا، اگر آپ کے پاس بہت زیادہ ڈیٹا ہے، تو جب بھی ممکن ہو معیاری فنکشن استعمال کرنے کی کوشش کریں، یا LAMBDA فنکشن کا استعمال کرتے ہوئے UDFs بنائیں۔ حساب کرنے اور قدر واپس کرنے کے لیے ڈیزائن کیا گیا ہے۔ انہیں میکرو کی جگہ استعمال نہیں کیا جا سکتا۔
    • وہ کسی دوسرے سیل (صرف فعال سیل) کے مواد کو تبدیل نہیں کر سکتے۔
    • فنکشن کے ناموں کو کچھ اصولوں پر عمل کرنا چاہیے۔ مثال کے طور پر، آپ ایسا نام استعمال نہیں کر سکتے جو مقامی Excel فنکشن کے نام یا سیل ایڈریس سے مماثل ہو، جیسے کہ AB123۔
    • آپ کے کسٹم فنکشن میں نام میں خالی جگہیں نہیں ہوسکتی ہیں، لیکن اس میں انڈر سکور کریکٹر شامل ہوسکتا ہے۔ تاہم، ترجیحی طریقہ یہ ہے کہ ہر نئے کے شروع میں بڑے حروف کا استعمال کیا جائے۔لفظ (مثال کے طور پر، GetMaxBetween)۔
    • ایک UDF سیلز کو ورک شیٹ کے دوسرے حصوں میں کاپی اور پیسٹ نہیں کر سکتا۔
    • وہ فعال ورک شیٹ کو تبدیل نہیں کر سکتے ہیں۔
    • UDFs کر سکتے ہیں' فعال سیل میں فارمیٹنگ کو تبدیل نہ کریں۔ اگر آپ مختلف اقدار کو ظاہر کرتے وقت سیل کی فارمیٹنگ کو تبدیل کرنا چاہتے ہیں، تو آپ کو مشروط فارمیٹنگ کا استعمال کرنا چاہیے۔
    • وہ اضافی کتابیں نہیں کھول سکتے۔
    • وہ Application.OnTime کا استعمال کرتے ہوئے میکرو کو چلانے کے لیے استعمال نہیں ہوسکتے ہیں۔ .
    • میکرو ریکارڈر کا استعمال کرتے ہوئے صارف کی طرف سے طے شدہ فنکشن نہیں بنایا جا سکتا۔
    • فنکشنز ڈیولپر > میں ظاہر نہیں ہوتے ہیں۔ میکروس ڈائیلاگ۔
    • آپ کے فنکشنز ڈائیلاگ باکس میں ظاہر ہوں گے ( Insert > فنکشن ) اور فنکشنز کی فہرست میں صرف اس صورت میں ظاہر ہوں گے جب انہیں عوامی<7 قرار دیا گیا ہو۔> (یہ ڈیفالٹ ہے، جب تک کہ دوسری صورت میں نوٹ نہ کیا جائے)۔
    • نجی کے طور پر اعلان کردہ کوئی بھی فنکشن فیچر لسٹ میں ظاہر نہیں ہوگا۔

    کافی سست آپریشن نیز استعمال میں کچھ پابندیاں، آپ کو یہ سوچنے پر مجبور کر سکتی ہیں: "ان حسب ضرورت افعال کا کیا استعمال ہے؟"

    وہ کارآمد ہو سکتے ہیں، اور اگر ہم ان پر عائد پابندیوں کو ذہن میں رکھتے ہیں تو ایسا کریں۔ اگر آپ UDFs کو صحیح طریقے سے بنانے اور استعمال کرنے کا طریقہ سیکھتے ہیں، تو آپ اپنے فنکشنز کی لائبریری لکھ سکتے ہیں۔ یہ ایکسل میں ڈیٹا کے ساتھ کام کرنے کی آپ کی صلاحیت کو بہت بڑھا دے گا۔

    میرے لیے، حسب ضرورت فنکشنز بہترین وقت بچانے والے ہیں۔ اور تمھارا کیا حال ہے؟ کیا آپ نے پہلے ہی اپنا UDF بنانے کی کوشش کی ہے؟ کیا آپ کو یہ پسند آیا؟بنیادی ایکسل افعال سے بہتر؟ آئیے اس پر تبصروں میں بحث کرتے ہیں :)

    مائیکل براؤن سافٹ ویئر ٹولز کا استعمال کرتے ہوئے پیچیدہ عمل کو آسان بنانے کے جذبے کے ساتھ ٹیکنالوجی سے وابستہ ایک سرشار ہے۔ ٹیک انڈسٹری میں ایک دہائی سے زیادہ کے تجربے کے ساتھ، اس نے مائیکروسافٹ ایکسل اور آؤٹ لک کے ساتھ ساتھ گوگل شیٹس اور دستاویزات میں بھی اپنی صلاحیتوں کو نکھارا ہے۔ مائیکل کا بلاگ اپنے علم اور مہارت کو دوسروں کے ساتھ بانٹنے کے لیے وقف ہے، پیداواری صلاحیت اور کارکردگی کو بہتر بنانے کے لیے آسان پیروی کرنے والی تجاویز اور سبق فراہم کرتا ہے۔ چاہے آپ ایک تجربہ کار پیشہ ور ہوں یا ابتدائی، مائیکل کا بلاگ ان ضروری سافٹ ویئر ٹولز سے زیادہ سے زیادہ فائدہ اٹھانے کے لیے قیمتی بصیرتیں اور عملی مشورہ پیش کرتا ہے۔