ফর্মুলা কীভাবে তৈরি করতে হয় তা বোঝা এক্সেল শিখার মৌলিক ধাপ। এখানে এমএস এক্সেলের ফাংশন এবং ফর্মুলার সিনট্যাক্সের একটি প্রাইমার দেওয়া হল।
আপনি অন্য স্প্রেডশিট থেকে ফর্মুলা কপি করে বা ডেডিকেটেড মেনু থেকে এক্সেল ফাংশন ইনসার্ট করে অনেক কিছু করতে পারেন, কিন্তু সিনট্যাক্স কীভাবে কাজ করে তার কমপক্ষে প্রাথমিক জ্ঞান রাখা ভালো। 그렇게 করলে আপনি যেকোনো এরর ফিক্স করতে পারবেন বা ফর্মুলাগুলো টইক করে আপনার স্প্রেডশিটের সর্বোচ্চ আউটপুট পেতে পারবেন।
প্রোগ্রামিং ল্যাঙ্গুয়েজগুলো কম্পিউটারকে স্ট্রাকচার্ড সেন্টেন্স দিয়ে ইনস্ট্রাক্ট করার জন্য ডিজাইন করা হয়। সিনট্যাক্স শুধু সে স্ট্রাকচার্ড ল্যাঙ্গুয়েজের নিয়মগুলোক বোঝায়, কারণ কম্পিউটার প্রত্যাশিত স্ট্যান্ডার্ড থেকে বئর যাওয়া যেকোনো টেক্সট পার্স করতে যথেষ্ট স্মার্ট নয়।
মাইক্রোসফট এক্সেল, প্রোগ্রামিং ল্যাঙ্গুয়েজ না হলেও, ফর্মুলা ব্যবহার করে প্রোগ্রামকে ইনস্ট্রাক্ট করার ক্ষমতা রাখে। এবং যেকোনো অন্যান্য মেশিন ইনস্ট্রাকশনের মতই, এর নিজস্ব সিনট্যাক্স আছে। এই সিনট্যাক্স বুঝা স্প্রেডশিট অ্যাপ্লিকেশনের ক্ষমতা পুরোপুরি wykorzystা করার চাবি।
এক্সেল ফর্মুলা একটি এক্সপ্রেশন যা একই সেলে প্রকৃত ডেটার পরিবর্তে লিখা যায়, যেটি গাণিতিক অপারেশন বা অন্যান্য ফাংশন ব্যবহার করে একটি ফলাফল জেনারেট করে। উদাহরণস্বরূপ, একটি কলামের সব নম্বর যোগ করে ফলাফল দেখানোর জন্য একটি ফর্মুলা লিখা যায়।
এই কাজের জন্য ফর্মুলা কেন ব্যবহার করবেন? আপনি ম্যানুয়ালি ফলাফল বের করে প্রয়োজনীয় ফিল্ডে দিতে পারেন।
হার্ড ভ্যালুর পরিবর্তে ফর্মুলা ব্যবহার করার সুবিধা হল এটি স্প্রেডশিট আপডেট করা সহজ করে তোলে। আপনি যেকোনো সময় ক্যালকুলেশনে ব্যবহৃত আন্ডারলাইনিং ডেটা পরিবর্তন করলে, এক্সেল স্বয়ংক্রিয়ভাবে ফলাফলগুলো রি-ক্যালকুলেট করে দেবে।
এটি মানে আপনি সহজেই সেকডে হাজার হাজার সেল জুড়ে একটি ফর্মুলা স্কেল আপ করতে পারেন কোনো একুরেসি হারানো ছাড়া। আপনি এই ফর্মুলাগুলো কপি-পেস্টও করতে পারেন ভিন্ন ওয়ার্কবুকে এবং এক্সেল স্বয়ংক্রিয়ভাবে প্যারামিটারগুলো নতুন লোকেশনের সাথে ফিট করার জন্য অ্যাডজাস্ট করবে।
আপনি একটি সেলে ফর্মুলা লিখতে সমান চিহ্ন (=) দিয়ে শুরু করে এক্সপ্রেশনটি টাইপ করেন। উদাহরণস্বরূপ, এই ফর্মুলাটি এই দুটি নম্বরের যোগফল দেবে:
= 30 + 40
বেশক, স্ট্যাটিক নম্বরে এই ধরনের ক্যালকুলেশন খুব কাজের নয়। একটি সেলে থাকা নম্বর যোগ করতে হলে আপনাকে সেল রেফারেন্স ব্যবহার করতে হবে।
চেসবোর্ডের مربعের মতই, একটি স্প্রেডশিটের সেলগুলো তাদের অ্যালফাবেটিক্যাল এবং न्यুমেরিক পজিশনের কম্বিনেশন দিয়ে রেফারেন্স করা যায়। নিউমেরিক্যাল রো নম্বর নিচে যাওয়ার সাথে সাথে বেড়ে, আলফাবেটিক্যাল কলাম নম্বর ডানদিকের দিকে এগিয়ে।
আপনি স্পষ্ট সমস্যাটি লক্ষ্য করতে পেরেছেন – অ্যালফাবেট দ্রুত শেষ হয়ে যায়, তাহলে Z-এর পরের কলামগুলো কী? সেক্ষেত্রে আমরা অ্যালফাবেট কম্বাইন করি, যা আমাদের AA, AB, AC ইত্যাদি দেয়।
এই রেফারেন্স ব্যবহার করে আপনি স্প্রেডশিটের যেকোনো সেলের ভ্যালু একটি ফর্মুলায় ব্যবহার করতে পারেন। যেন:
= A1 + A2
দ্রষ্টব্য, একবার Enter চাপলে ফর্মুলা শুধু ফর্মুলা বার-এ দেখাবে – সেলটিতে ফলাফলের ভ্যালু থাকবে। তাই আপনাকে একটি সেল সিলেক্ট করতে হবে তা ফর্মুলা থেকে এসেছে কিনা ম্যানুয়ালি ইনসার্টেড কিনা তা জানতে।
স্বয়ংক্রিয়ভাবে নিজেদের ক্যালকুলেশন করে ফেলে এমন বেসিক ফর্মুলা বানানোর জন্য এটাই যথেষ্ট। সেরা পার্ট হল যদি আপনি রেফারেন্স করা যেকোনো সেল মডিফাই করেন, তবে ফলাফল নিজে আপডেট হয়ে যায়।
সেল রেফারেন্স এবং বেসিক গাণিতিক অপারেশন আপনাকে অনেক দূর নিয়ে যেতে পারে, কিন্তু এগুলো এখনো অনেক কিছু করার সীমাবদ্ধতা রেখে দিয়েছে। উদাহরণস্বরূপ, সেকডে সেকডে সেল যোগ করার জন্য ফর্মুলা লিখাملة কষ্টসাধ্য, এমনকি আপনি যদি রেফারেন্স জানেন।
সেখানে কাজে আসে ফাংশন। যেকোনো প্রোগ্রামিং ল্যাঙ্গুয়েজের মত, এক্সেলে বেশ কিছু বিল্ট-ইন ফাংশন আছে যা نسبتweise সিম্পল সিনট্যাক্স দিয়ে জটিল কাজগুলো করতে পারে।
ফাংশনগুলো তাদের নাম দিয়ে ইনভোক করা হয় এবং আর্গুমেন্টগুলো ব্র্যাকেট (স্ট্রিক্টলি বললে প্যারেনথেসিস) এর ভেতরে দেওয়া হয়। উদাহরণস্বরূপ, আপনি অনেক সেল সহজে যোগ করতে SUM ফাংশন ব্যবহার করতে পারেন:
ফর্মুলা আরও সংক্ষিপ্ত করার জন্য, আমরা প্রতিটি সেলের রেফারেন্স না দিয়ে একটি রেঞ্জ স্পেসিফাই করতে পারি। উদাহরণস্বরূপ, আপনি A1:A4 টাইপ করে A1 থেকে A4 পর্যন্ত পুরো রেঞ্জের সেলগুলো ইনক্লুড করতে পারেন। এটি একই রোয়ের দিকে এক্সটেন্ড করা যায় এবং যতচাই তত সেল ইনক্লুড করা যায়।
SUM একমাত্র ফাংশন নয় যা আপনার উপলব্ধ। ফর্মুলা বারের পাশের ƒ𝑥 সিম্বলে ক্লিক করলে সম্পূর্ণ তালিকা পাওয়া যায়, কিন্তু এখানে কিছু সাধারণ ফাংশন দেওয়া হল:
- AVERAGE – আরেকটি বেসিক ফাংশন, AVERAGE ফাংশন ইনপুট করা রেঞ্জের ভ্যালুগুলোর গড় ফেরত দেয়। ফিসক্যাল ক্যালকুলেশনের জন্য খুব কার্যকর।
- CONCATENATE – এটি নম্বরের পরিবর্তে টেক্সটের সাথে কাজ করে। CONCATENATE দিয়ে আপনি দুটি স্ট্রিং জোড়া দিয়ে চূড়ান্ত ভ্যালু আউটপুট করতে পারেন। কন্ডিশনাল অপারেটরের সাথে টেক্সট জেনারেট করে সেগুলো ফাইনাল রেজাল্টের জন্য জোড়া দেওয়ার জন্য উপযোগী।
- LEN – Length-এর সংক্ষিপ্ত রূপ, LEN সিম্পলি একটি দেওয়া স্ট্রিংয়ের ক্যারেক্টার সংখ্যা কাউন্ট করে, স্পেস সহ। খুব সিচুয়েশনাল ব্যবহার (যেমন খালি সেলে স্পেস আছে কিনা বের করা) কিন্তু ম্যানুয়ালি ক্যারেক্টার কাউন্ট করার চেয়ে ভালো।
- TRIM – কিছু সেলে ভুলে অতিরিক্ত স্পেস ঢুকিয়ে যাওয়া খুব সাধারণ, যা কিছু ক্যালকুলেশন বা CONCATENATE অপারেশনের ফলাফল বिगিয়ে দেয়। TRIM ফাংশন ব্যবহার করে সব অতিরিক্ত স্পেস সরিয়ে শুধু প্রতিটি শব্দের মাঝপথে একক স্পেস রেখে দেওয়া যায়।
আমরা এখন পর্যন্ত SUM, AVERAGE, বা TRIM মত অনেক উপকারী ফাংশন দেখেছি। কিন্তু লজিক্যাল কমপ্যারিজনের বিষয়টি কী?
যেকোনো অন্যান্য প্রোগ্রামিং ল্যাঙ্গুয়েজের মত, এক্সেলের সিনট্যাক্সে লজিক্যাল অপারেটর আছে যেন IF, AND, এবং OR। সবচেয়ে উপকারী হল IF ফাংশন, বাকি দুটি প্রায়শই লজিক্যাল এক্সপ্রেশনের ভেতরে ব্যবহার করা হয়।
IF-এর সিনট্যাক্স সিম্পল: একটি লজিক্যাল এক্সপ্রেশন যা TRUE বা FALSE-এ ইভ্যালুয়েট হয়, তারপর দুটি কন্ডিশনের জন্য ফলাফল হিসেবে যেসব ভ্যালু ফলো করতে হবে সেগুলো ক্রম대로। অবশ্য, এই সব ব্র্যাকেটের ভেতরে থাকে এবং কমা দিয়ে আলাদা করা হয়। যেন:
দ্রষ্টব্য, চূড়ান্ত আর্গুমেন্টটি অমিট করা যেতে পারে, সেক্ষেত্রে ফাংশনটি শুধু কন্ডিশন সত্য হলে ভ্যালু রিটার্ন করবে। এটি কমপ্লেক্স ফর্মুলা বানাতে ব্যবহার করা যায় কন্ডিশনালি ভ্যালু ইনক্লুড করে ক্যালকুলেশনে।
প্রথম আর্গুমেন্ট অন্যদিকে, অনেক রূপ নিতে পারে। একটি লজিক্যাল এক্সপ্রেশন সিম্পলি দুটি ভ্যালুর কমপ্যারিজন হতে পারে "<" বা "=" সিম্বল ব্যবহার করে, কিন্তু এটি একাধিক সчина স্টেটমেন্টের কম্বিনেশনও হতে পারে AND বা OR ব্যবহার করে।
এটি কারণ AND এবং OR শুধু TRUE বা FALSE রিটার্ন করে, কোনো টেক্সট স্ট্রিং বা নিউমেরিক্যাল ভ্যালু নয়। আপনি এই ফাংশনগুলো দুটি লজিক্যাল এক্সপ্রেশন আর্গুমেন্ট হিসেবে ইনক্লুড করে ব্যবহার করেন; AND TRUE রিটার্ন করবে যদি দুটি আর্গুমেন্টই TRUE-এ ইভ্যালুয়েট হয়, অন্যদিকে OR TRUE রিটার্ন করবে যদি যেকোনো একটি TRUE হয়। অন্যথায় FALSE রিটার্ন করা হয়।
IF, AND, এবং OR ব্যবহার করে অনেক জটিল নেস্টেড কন্ডিশন বানানো সম্ভব যা একসাথে অনেক ভ্যালু ইভ্যালুয়েট করে চূড়ান্ত ফলাফল দেয়। যদিও এ ধরনের ফর্মুলা প্রায়শই সব ব্র্যাকেট এবং কমার কারণে এরর-প্রোন হয়। ক্যালকুলেশনগুলো আলাদা করে সিম্পল রাখা ভালো।
জিনিসগুলো আরও সিম্পল করতে, এক্সেলে কিছু ফাংশন আছে যা IF কে অন্যান্য উপকারী অপারেশন যেন SUM বা AVERAGE-এর সাথে কম্বাইন করে।
প্রায়শই আপনাকে একটি ওয়ার্কশিটে ভিন্ন সেল রেঞ্জে একই টাইপের ক্যালকুলেশন করতে হয়, ফলাফল আলাদা সেলে দেখাতে হয়। কি আপনাকে একই ফর্মুলা বারবার ম্যানুয়ালি লিখতে হবে, সেল রেফারেন্স পরিবর্তন করে? না, আপনি সেগুলো কপি করতে পারেন।
আপনি যখন এক্সেলে একটি কপি করা সেল পেস্ট করার চেষ্টা করেন (টার্গেট সেলে রাইট-ক্লিক করে), তবে আপনাকে একাধিক পেস্ট অপশন দেখাবে। আপনি সেলগুলো সম্পূর্ণ পেস্ট করতে পারেন, শুধু ভ্যালু কপি করতে পারেন, অথবা শুধু ফর্মুলা পেস্ট করতে পারেন।
এছাড়া, পেস্ট করা ফর্মুলা এর নयी লোকেশন অনুযায়ী রিলেটিভ রেফারেন্সে আপডেট হয়ে যায়। আপনি যদি কলাম A-এর ভ্যালু যোগ করার ফর্মুলা কপি করে অন্য সেলে পেস্ট করেন, তবে সেটি নতুন কলাম নম্বর অনুযায়ী রেফারেন্স আপডেট করবে।
এক বেগিনার হিসেবে, সব এক্সেল ফাংশন মেমোরাইজ করার চেষ্টা করবেন না। অধিকাংশই খুব কম ব্যবহারে আসে, এবং আপনি ফর্মুলা বারের পাশের ƒ𝑥 বাটনে ক্লিক করে তাদের সিনট্যাক্স পেতে পারেন।
শুধু এক্সেল ফর্মুলার বেসিক সিনট্যাক্স মনে রাখুন – একটি সমান চিহ্ন এবং তারপর একটি এক্সপ্রেশন যেটিতে একাধিক ফাংশন থাকতে পারে। প্রতিটি ফাংশন কিছু আর্গুমেন্ট নেয় (যদিও কিছু ফাংশন নেয় না) এবং একটি ভ্যালু রিটার্ন করে যা অন্য ফাংশন বা ক্যালকুলেশনে ব্যবহার করা যায়।
যদিও এইভাবে ফাংশন নেস্ট করা খুব দ্রুত জটিল হয়ে যায়, মিসিং ব্র্যাকেটের মেশে আপনাকে হারিয়ে দিতে পারে। আমরা সুপারিশ করব প্রতিটি ফর্মুলা সিম্পল এবং সরল রাখুন, একটি জটিল ক্যালকুলেশন একাধিক সেলে ফैलিয়ে রাখুন যাতে ম্যানেজ করা সহজ হয়।