সুচিপত্র
আমরা ব্যবহারকারীর সংজ্ঞায়িত ফাংশন সম্পর্কে টিউটোরিয়ালের সিরিজ চালিয়ে যাচ্ছি। আমাদের পূর্ববর্তী নিবন্ধগুলিতে, আমরা কাস্টম ফাংশনগুলির সাথে পরিচিত হয়েছি এবং সেগুলি কীভাবে তৈরি এবং ব্যবহার করতে হয় তা শিখেছি। এই ম্যানুয়ালটিতে আমরা এই ফাংশনগুলি ব্যবহারের সুনির্দিষ্ট দিকগুলি দেখব এবং UDF এবং VBA ম্যাক্রোগুলির মধ্যে পার্থক্যগুলি দেখব৷
এই টিউটোরিয়ালে, আমরা নিম্নলিখিতগুলি শিখব:
আমরা আশা করি এই নিবন্ধটি UDF সম্পর্কে আপনার জ্ঞানকে বাড়িয়ে তুলবে এবং আপনার এক্সেল ওয়ার্কবুকে সেগুলিকে আরও কার্যকরভাবে ব্যবহার করতে সাহায্য করবে।
UDF এবং ম্যাক্রো কি একই জিনিস?
উভয় ব্যবহারকারী সংজ্ঞায়িত ফাংশন এবং VBA উভয়ই VBA সম্পাদক ব্যবহার করে ম্যাক্রো তৈরি করা হয়। তাদের মধ্যে পার্থক্য কি এবং কোনটিকে অগ্রাধিকার দিতে হবে?
সবচেয়ে গুরুত্বপূর্ণ পার্থক্য হল যে ফাংশনটি গণনা করে এবং ম্যাক্রো কিছু ক্রিয়া সম্পাদন করে৷ একটি ব্যবহারকারী সংজ্ঞায়িত ফাংশন, একটি নিয়মিত এক্সেল ফাংশনের মত, একটি ঘরে লিখতে হবে। এটি কার্যকর করার ফলস্বরূপ, সেলটি কিছু মান প্রদান করে। একই সময়ে, অন্যান্য কোষের মান পরিবর্তন করা অসম্ভব, সেইসাথে বর্তমান ঘরের কিছু বৈশিষ্ট্য (বিশেষত, বিন্যাসকরণ)। যাইহোক, আপনি শর্তসাপেক্ষ ফর্ম্যাটিং সূত্রে একটি কাস্টম ফাংশন ব্যবহার করতে পারেন।
UDF এবং VBA ম্যাক্রো বিভিন্ন উপায়ে কাজ করে। উদাহরণস্বরূপ, যখন আপনি ভিজ্যুয়াল বেসিক এডিটরে একটি UDF তৈরি করেন, আপনি একটি বিবৃতি দিয়ে শুরু করেন ফাংশন এবং শেষ করেন একটি শেষ ফাংশন দিয়ে। আপনি যখন একটি ম্যাক্রো রেকর্ড করেন, তখন আপনি একটি দিয়ে শুরু করেনবিবৃতি সাব এবং একটি এন্ড সাব দিয়ে শেষ করুন।
সকল ভিজ্যুয়াল বেসিক অপারেটর UDF তৈরি করতে ব্যবহার করা যাবে না। এই কারণে, একটি ম্যাক্রো একটি আরও বহুমুখী সমাধান৷
একটি ম্যাক্রোর জন্য ব্যবহারকারীকে কোনও আর্গুমেন্ট পাস করার প্রয়োজন হয় না (এটি কোনও আর্গুমেন্ট গ্রহণ করতে পারে না), ব্যবহারকারী-সংজ্ঞায়িত ফাংশনের বিপরীতে৷
বিন্দু হল যে ম্যাক্রোর কিছু কমান্ড সেল ঠিকানা বা ফর্ম্যাটিং উপাদান ব্যবহার করতে পারে (উদাহরণস্বরূপ, রঙ)। আপনি যদি ঘরগুলি সরান, সারি এবং কলামগুলি যোগ করেন বা সরান, ঘরগুলির বিন্যাস পরিবর্তন করেন, তাহলে আপনি সহজেই আপনার ম্যাক্রোগুলিকে "ব্রেক" করতে পারেন৷ এটি বিশেষত সম্ভব যদি আপনি আপনার ফাইলটি সহকর্মীদের সাথে শেয়ার করেন যারা জানেন না কিভাবে আপনার ম্যাক্রো কাজ করে৷
উদাহরণস্বরূপ, আপনার কাছে একটি সম্পূর্ণরূপে কাজ করা ম্যাক্রো সহ একটি ফাইল রয়েছে৷ এই সূত্রটি A1 থেকে A4 কক্ষের শতাংশ গণনা করে। ম্যাক্রো এই কোষগুলির রং হলুদে পরিবর্তন করে। সক্রিয় কক্ষে একটি শতাংশ বিন্যাস সেট করা আছে৷
যদি আপনি বা অন্য কেউ একটি নতুন সারি সন্নিবেশ করার সিদ্ধান্ত নেন, তাহলে ম্যাক্রো A4 কক্ষে মান খুঁজতে থাকবে ( আপনার UDF-এ 4,1 প্যারামিটার, ব্যর্থ হয়ে একটি ত্রুটি ফেরত দিন:
এই ক্ষেত্রে, শূন্য দ্বারা বিভাজনের কারণে ত্রুটি ঘটেছে (নতুন যোগ করা কোনো মান নেই সারি)। যদি ম্যাক্রো সম্পাদন করে, ধরা যাক, যোগফল, তাহলে আপনি কেবল একটি ভুল ফলাফল পাবেন। কিন্তু আপনি এটি সম্পর্কে জানতে পারবেন না।
ম্যাক্রোর বিপরীতে, ব্যবহারকারীর সংজ্ঞায়িত ফাংশনগুলি এমন অপ্রীতিকর পরিস্থিতি সৃষ্টি করতে পারে না।
নিচে আপনি এর কার্যকারিতা দেখতে পাচ্ছেনএকটি UDF ব্যবহার করে একই গণনা। এখানে আপনি ওয়ার্কশীটের যেকোনো জায়গায় ইনপুট সেলগুলি নির্দিষ্ট করতে পারেন এবং এটি পরিবর্তন করার সময় আপনি কোনো অপ্রত্যাশিত সমস্যার সম্মুখীন হবেন না৷
আমি C3 এ নিম্নলিখিত সূত্রটি লিখেছি:
=UDF_vs_Macro(A1,A4)
তারপর আমি একটি ফাঁকা সারি ঢোকালাম, এবং সূত্রটি পরিবর্তিত হয়েছে যেমনটি আপনি উপরের স্ক্রিনশটে দেখতে পাচ্ছেন।
এখন আমরা একটি ইনপুট সেল বা একটি ফাংশন সহ একটি সেলকে যেকোনো জায়গায় সরাতে পারি। ফলাফল সর্বদা সঠিক হবে।
ইউডিএফ ব্যবহার করার একটি অতিরিক্ত সুবিধা হল ইনপুট কক্ষের মান পরিবর্তন হলে সেগুলি স্বয়ংক্রিয়ভাবে আপডেট হয়। ম্যাক্রো ব্যবহার করার সময়, আপনাকে অবশ্যই নিশ্চিত করতে হবে যে সমস্ত ডেটা আপ টু ডেট রয়েছে৷
এই উদাহরণটি মনে রেখে, আমি যেখানেই সম্ভব UDF ব্যবহার করতে পছন্দ করব এবং শুধুমাত্র অন্যান্য অ-গণনামূলক কার্যকলাপের জন্য ম্যাক্রোগুলি ব্যবহার করতে চাই৷
UDF ব্যবহারের সীমাবদ্ধতা এবং অসুবিধা
আমি ইতিমধ্যেই উপরে UDF এর সুবিধাগুলি উল্লেখ করেছি। দীর্ঘ গল্প সংক্ষেপে, এটি এমন গণনা করতে পারে যা স্ট্যান্ডার্ড এক্সেল ফাংশনগুলির সাথে সম্ভব নয়। উপরন্তু, এটি একটি একক ফাংশনে পরিণত করে দীর্ঘ এবং জটিল সূত্রগুলি সংরক্ষণ এবং ব্যবহার করতে পারে। এবং আপনাকে বারবার জটিল সূত্র লিখতে হবে না।
এখন ইউডিএফ-এর ত্রুটিগুলি সম্পর্কে আরও বিস্তারিতভাবে কথা বলা যাক:
- ইউডিএফ তৈরি করতে VBA ব্যবহার করা প্রয়োজন। এর বাইরে কোন পথ খোলা নেই। এর মানে হল যে ব্যবহারকারী এক্সেল ম্যাক্রোর মতো একইভাবে UDF রেকর্ড করতে পারে না। আপনাকে নিজেই ইউডিএফ তৈরি করতে হবে। যাইহোক, আপনি কপি করতে পারেন এবংআপনার ফাংশনে পূর্বে রেকর্ড করা ম্যাক্রো কোডের অংশগুলি পেস্ট করুন। আপনাকে শুধু কাস্টম ফাংশনগুলির সীমাবদ্ধতা সম্পর্কে সচেতন হতে হবে৷
- ইউডিএফ-এর আর একটি অসুবিধা হল যে অন্য যে কোনও এক্সেল ফাংশনের মতো এটি একটি কক্ষে শুধুমাত্র একটি একক মান বা মানগুলির অ্যারে ফিরিয়ে দিতে পারে৷ এটি কেবল গণনা সম্পাদন করে, এর বেশি কিছু নয়।
- আপনি যদি আপনার সহকর্মীদের সাথে আপনার ওয়ার্কবুক শেয়ার করতে চান তবে একই ফাইলে আপনার UDFগুলি সংরক্ষণ করতে ভুলবেন না। অন্যথায়, আপনার কাস্টম ফাংশনগুলি তাদের জন্য কাজ করবে না৷
- VBA সম্পাদকের সাথে তৈরি কাস্টম ফাংশনগুলি নিয়মিত ফাংশনগুলির চেয়ে ধীর হয়৷ এটি বড় টেবিলগুলিতে বিশেষভাবে লক্ষণীয়। দুর্ভাগ্যবশত, VBA এখন পর্যন্ত একটি খুব ধীর প্রোগ্রামিং ভাষা। অতএব, যদি আপনার কাছে প্রচুর ডেটা থাকে, যখনই সম্ভব স্ট্যান্ডার্ড ফাংশন ব্যবহার করার চেষ্টা করুন, অথবা LAMBDA ফাংশন ব্যবহার করে UDF তৈরি করুন৷
কাস্টম ফাংশন সীমাবদ্ধতা:
- ইউডিএফগুলি হল গণনা সঞ্চালন এবং একটি মান ফেরত পরিকল্পিত. এগুলি ম্যাক্রোর জায়গায় ব্যবহার করা যাবে না৷
- তারা অন্য কোনও কোষের বিষয়বস্তু পরিবর্তন করতে পারে না (শুধুমাত্র সক্রিয় কোষ)৷
- ফাংশনের নামগুলিকে অবশ্যই কিছু নিয়ম মেনে চলতে হবে৷ উদাহরণ স্বরূপ, আপনি একটি নেটিভ এক্সেল ফাংশনের নাম বা একটি সেল ঠিকানার সাথে মেলে এমন একটি নাম ব্যবহার করতে পারবেন না, যেমন AB123৷
- আপনার কাস্টম ফাংশনে নামের মধ্যে স্পেস থাকতে পারে না, তবে এটি আন্ডারস্কোর অক্ষর অন্তর্ভুক্ত করতে পারে৷ যাইহোক, পছন্দের পদ্ধতি হল প্রতিটি নতুনের শুরুতে বড় অক্ষর ব্যবহার করাশব্দ (উদাহরণস্বরূপ, GetMaxBetween)।
- একটি UDF ওয়ার্কশীটের অন্যান্য অংশে কপি করে কপি পেস্ট করতে পারে না।
- তারা সক্রিয় ওয়ার্কশীট পরিবর্তন করতে পারে না।
- UDFগুলি করতে পারে' সক্রিয় কক্ষে বিন্যাস পরিবর্তন না. আপনি যদি বিভিন্ন মান প্রদর্শন করার সময় একটি কক্ষের বিন্যাস পরিবর্তন করতে চান তবে আপনার শর্তসাপেক্ষ বিন্যাস ব্যবহার করা উচিত।
- তারা অতিরিক্ত বই খুলতে পারবে না।
- এগুলিকে অ্যাপ্লিকেশন ব্যবহার করে ম্যাক্রো চালানোর জন্য ব্যবহার করা যাবে না।OnTime .
- ম্যাক্রো রেকর্ডার ব্যবহার করে একটি ব্যবহারকারী-সংজ্ঞায়িত ফাংশন তৈরি করা যাবে না।
- ফাংশনগুলি ডেভেলপার > ম্যাক্রো ডায়ালগ।
- আপনার ফাংশনগুলি ডায়ালগ বক্সে প্রদর্শিত হবে ( ঢোকান > ফাংশন ) এবং ফাংশনের তালিকায় শুধুমাত্র যদি সেগুলিকে পাবলিক<7 হিসাবে ঘোষণা করা হয়।> (এটি ডিফল্ট, যদি না অন্যথায় উল্লেখ করা হয়)।
- ব্যক্তিগত হিসাবে ঘোষিত যে কোনও ফাংশন বৈশিষ্ট্য তালিকায় উপস্থিত হবে না।
একটি বেশ ধীর অপারেশন , সেইসাথে ব্যবহারে কিছু বিধিনিষেধ আপনাকে ভাবতে বাধ্য করতে পারে: "এই কাস্টম ফাংশনগুলির ব্যবহার কী?"
এগুলি কাজে আসতে পারে, এবং যদি আমরা তাদের উপর আরোপিত সীমাবদ্ধতাগুলিকে মনে রাখি তবে তা করব৷ আপনি যদি সঠিকভাবে UDF গুলি তৈরি এবং ব্যবহার করতে শিখেন তবে আপনি আপনার ফাংশনগুলির লাইব্রেরি লিখতে পারেন। এটি Excel-এ ডেটার সাথে আপনার কাজ করার ক্ষমতাকে ব্যাপকভাবে প্রসারিত করবে।
আমার জন্য, কাস্টম ফাংশনগুলি দুর্দান্ত সময়-সংরক্ষণকারী। আর তোমার কি খবর? আপনি কি ইতিমধ্যে আপনার নিজস্ব UDF তৈরি করার চেষ্টা করেছেন? আপনি এটা পছন্দ করেছেনমৌলিক এক্সেল ফাংশন চেয়ে ভাল? আসুন মন্তব্যে আলোচনা করা যাক :)