এক্সেলের IF স্টেটমেন্ট ডিসিশন মেকিং-এ ব্যাপকভাবে ব্যবহৃত হয়, কিন্তু সেগুলো সবসময় সবচেয়ে এলিগ্যান্ট সমাধান নয়। আপনার কন্ডিশন জটিল হলে, নেস্টেড IF স্টেটমেন্ট পড়া, মেইনটেইন এবং ট্রাবলশুট করা কঠিন হয়ে যেতে পারে। সেই লেয়ারড সিচুয়েশন হ্যান্ডেল করার জন্য, এক্সেল বেশ কিছু শক্তিশালী বিকল্প অফার করে যা আপনার ফর্মুলাকে আরও দক্ষ এবং বোঝা সহজ করতে পারে।
এই টিউটোরিয়ালে, আমরা ৭টি এক্সেল ফাংশন দেখব যা IF স্টেটমেন্ট রিপ্লেস করতে পারে।
চলুন একটি স্যাম্পল সেলস ডেটাসেট বিবেচনা করি সাইড-বাই-सাইড ফর্মুলা তুলনার জন্য।
১. IFS() - একাধিক কন্ডিশন এলিগ্যান্টলি হ্যান্ডেল করুন
IFS ফাংশন একাধিক কন্ডিশন ক্রমাগতভাবে ইভ্যালুয়েট করে এবং প্রথম TRUE কন্ডিশন সংলগ্ন ভ্যালু রিটার্ন করে। এটি নেস্টেড IF স্টেটমেন্ট রিপ্লেস করার জন্য পर्फেক্ট। নেস্টেড IF স্টেটমেন্ট লম্বা এবং ডিবাগ করা কঠিন হয়ে যায়। IFS টিয়ার্ড লজিক সরল করে।
সিনট্যাক্স:
=IFS(logical_test1, value_if_true1, [logical_test2, value_if_true2], ...)
চলুন সেলস অর্ডার ভ্যালুকে পারফরম্যান্স রেটিং-এ ক্যাটাগরাইজ করি:
- Excellent $১০,০০০-এর উপরের অর্ডারের জন্য।
- Good $৫,০০০ থেকে $১০,০০০-এর মাঝপথের অর্ডারের জন্য।
- Average $২,০০০ থেকে $৫,০০০-এর মাঝপথের অর্ডারের জন্য।
- Below Target এর কম যেকোনো জিনিসের জন্য।
IF পদ্ধতি:
=IF(J2>10000, "Excellent", IF(J2>5000, "Good", IF(J2>2000, "Average", "Below Target")))
IFS পদ্ধতি:
=IFS(J2>10000, "Excellent", J2>5000, "Good", J2>2000, "Average", TRUE, "Below Target")
IFS ফাংশন আর্গুমেন্টের একটি জোড়া নেয়:
- একটি কন্ডিশন এবং সেই কন্ডিশন TRUE হলে রিটার্ন করার ভ্যালু।
- শেষ TRUE আর্গুমেন্ট পূর্ববর্তী কন্ডিশন পূরণ না करने वाले কেসের জন্য ক্যাচ-অল হিসেবে কাজ করে।

সুবিধা:
- কনফিউজিং ব্র্যাকেট নেই।
- পড়া এবং মেইনটেইন করা সহজ।
- কন্ডিশনের প্রায়োরিটি স্পষ্টভাবে দেখায়।
২. SWITCH() - একজ্যাক্ট ম্যাচের জন্য পーフেক্ট
SWITCH একাধিক IF স্টেটমেন্টের চেয়ে বেশি দক্ষ যখন আপনাকে একটি সিঙ্গেল ভ্যালু একাধিক একজ্যাক্ট সম্ভাবনার সাথে তুলনা করতে হয়। এটি এক মানকে একাধিক একজ্যাক্ট ম্যাচের সাথে তুলনা করে।
সিনট্যাক্স:
=SWITCH(expression, value1, result1, [value2, result2], ..., [default])
চলুন অঞ্চল অনুযায়ী সেলস ম্যানেজার অ্যাসাইন করি:
- East: Morgan Smith
- West: Taylor Wong
- North: Jamie Rodriguez
- South: Casey Johnson
IF পদ্ধতি:
=IF(E2="East", "Morgan Smith", IF(E2="West", "Taylor Wong", IF(E2="North", "Jamie Rodriguez", IF(E2="South", "Casey Johnson", "Unassigned"))))
SWITCH পদ্ধতি:
=SWITCH(E2, "East", "Morgan Smith", "West", "Taylor Wong", "North", "Jamie Rodriguez", "South", "Casey Johnson", "Unassigned")
- SWITCH একটি এক্সপ্রেশনকে ভ্যালুর একটি লিস্টের সাথে ইভ্যালুয়েট করে, তারপর প্রথম ম্যাচিং ভ্যালুর সাথে সংলগ্ন রেজাল্ট রিটার্ন করে।
- শেষ আর্গুমেন্ট ডিফল্ট ভ্যালু হিসেবে কাজ করে যদি কোনো ম্যাচ না পাওয়া যায়।

লক্ষ্য করুন SWITCH পদ্ধতি কতটুকু ক্লিনার এবং পড়া সহজ নেস্টেড IF স্টেটমেন্টের তুলনায়।
সুবিধা:
- কম্প্যাক্ট এবং ইনটুইটিভ।
- বিস্তারিত এবং রি-অর্ডার করা সহজ।
- নেস্টিং প্রয়োজন নেই।
৩. CHOOSE() - পজিশন অনুযায়ী একটি লিস্ট থেকে সিলেক্ট করুন
যখন আপনার লজিক একটি সংখ্যাগত পজিশনের ভিত্তিতে একটি প্রিডিফাইনড লিস্ট থেকে সিলেক্ট করা জড়িত, CHOOSE নেস্টেড IF-এর চেয়ে সরল।
সিনট্যাক্স:
=CHOOSE(index_num, value1, [value2], ...)
চলুন কোয়ার্টার নাম্বারকে সেই কোয়ার্টারের প্রথম মাসে কনভার্ট করি:
IF পদ্ধতি:
=IF(F2=1, "January", IF(F2=2, "April", IF(F2=3, "July", IF(F2=4, "October", "Invalid Quarter"))))
CHOOSE পদ্ধতি:
=CHOOSE(F2, "January", "April", "July", "October")
- CHOOSE একটি পজিশন নম্বরের ভিত্তিতে একটি লিস্ট থেকে ভ্যালু রিটার্ন করে।
- IF-এর বিপরীতে, এটি কন্ডিশন ইভ্যালুয়েট করে না বরং ইনডেক্স ভ্যালুর ভিত্তিতে প্রদত্ত লিস্ট থেকে একটি আইটেম সিলেক্ট করে।

আমরা কোয়ার্টার নাম্বারের ভিত্তিতে কোয়ার্টারলি সেলস টার্গেট অ্যাসাইন করার জন্যও CHOOSE ব্যবহার করতে পারি:
=CHOOSE(F2, 50000, 75000, 60000, 90000)
এটি কোয়ার্টার অনুযায়ী ভিন্ন সেলস টার্গেট অ্যাসাইন করে।

সুবিধা:
- ৩+ অপশন থাকলে ছোট এবং স্পষ্ট।
- লজিক এররের কম চান্স।
- আপডেট বা রি-অর্ডার করা সহজ।
৪. XLOOKUP - টেবিল-ভিত্তিক সিদ্ধান্ত
যদি মানের রেঞ্জ বা লুকআপ টেবিলের ভিত্তিতে সিদ্ধান্ত নেওয়া হয়, LOOKUP ফাংশনগুলো নেস্টেড IF-এর চেয়ে শক্তিশালী। XLOOKUP ফাংশন একটি ভ্যালু সার্চ করে এবং অন্য একটি অ্যারে থেকে সংলগ্ন রেজাল্ট রিটার্ন করে।
সিনট্যাক্স:
=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])
চলুন প্রোডাক্ট ক্যাটাগরি অনুযায়ী একটি কমিশন স্ট্রাকচার তৈরি করি:
- Electronics: ৫%
- Furniture: ৭%
- Other: ৪%
IF পদ্ধতি:
=IF(C2="Electronics", J2*0.05, IF(C2="Furniture", J2*0.07, J2*0.04))
XLOOKUP পদ্ধতি (মডার্ন এক্সেল):
=J2*XLOOKUP(C2, $P$2:$P$4, $Q$2:$Q$4, 0.04)
এই ফর্মুলা ক্যাটাগরি এবং কমিশন রেটের ভিত্তিতে অর্ডার ভ্যালু লুকআপ করে, তারপর সেলস কমিশন ক্যালকুলেট করে।

সুবিধা:
- ডেটা টেবিলের সাথে ভালো কাজ করে।
- লম্বা লিস্টের সাথে আরও পঠনযোগ্য।
- ফ্লেক্সিবল (ডিফল্ট ফলব্যাক ইনক্লুড করতে পারে)।
৫. AND()/OR() - একাধিক কন্ডিশন কম্বাইন করুন
যখন একাধিক কন্ডিশন পূরণ করতে হবে (AND) বা কমপক্ষে একটি কন্ডিশন পূরণ করতে হবে (OR), এই ফাংশনগুলো আপনার ফর্মুলা সরল করে। AND ফাংশন TRUE রিটার্ন করে যদি সব কন্ডিশন TRUE হয়। OR ফাংশন TRUE রিটার্ন করে যদি যেকোনো একটি কন্ডিশন TRUE হয়।
সিনট্যাক্স:
=AND(logical1, [logical2], ...)
=OR(logical1, [logical2], ...)
চলুন অর্ডারকে "Priority" হিসেবে ফ্ল্যাগ করি যদি:
- সে Electronics অর্ডার, AND
- অর্ডার ভ্যালু $5,000-এর বেশি, AND
- স্ট্যাটাস Processing।
IF পদ্ধতি:
=IF(C2="Electronics", IF(J2>5000, IF(K2="Processing", "Priority", "Normal"), "Normal"), "Normal")
AND পদ্ধতি:
=IF(AND(C2="Electronics", J2>5000, K2="Processing"), "Priority", "Normal")
এই ফর্মুলা ক্যাটাগরি এবং স্ট্যাটাসের ভিত্তিতে প্রায়োরিটি রিটার্ন করে। দুটি কন্ডিশন TRUE হতে হবে।

চলুন অতিরিক্ত ডিসকাউন্টের জন্য যোগ্য অর্ডার চিহ্নিত করি যদি:
- সে West অঞ্চল থেকে, OR
- অর্ডার 10-এর বেশি ইউনিটের জন্য, OR
- কারেন্ট ডিসকাউন্ট 0%।
OR পদ্ধতি:
=IF(OR(E2="West", G2>10, I2=0), "Eligible for Discount", "Not Eligible")
এই পদ্ধতিটি লজিক স্পষ্টতর এবং মেইনটেইন করা সহজ করে, বিশেষত যখন কন্ডিশন আরও জটিল হয়ে যায়।

সুবিধা:
- ক্লিনার লজিক এক্সপ্রেশন।
- কন্ডিশন মডিফাই করা সহজ।
- IF, FILTER, ইত্যাদির ভিতরে ভালো কাজ করে।
৬. MIN()/MAX() - রেঞ্জ কনস্ট্রেইন্টস সরল করুন
দুই সংখ্যা তুলনা করার সময়, MIN/MAX কন্ডিশনাল ব্রাঞ্চের প্রয়োজন সরিয়ে দেয়। MIN ফাংশন সিলেক্টেড রেঞ্জ থেকে সবচেয়ে ছোট মান রিটার্ন করে। MAX ফাংশন সিলেক্টেড রেঞ্জ থেকে সবচেয়ে বড় সংখ্যা রিটার্ন করে।
সিনট্যাক্স:
=MIN(number1, [number2], ...)
=MAX(number1, [number2], ...)
চলুন একটি পলিসি ইম্প্লিমেন্ট করি যেখানে:
- যেকোনো প্রোডাক্টের জন্য মিনিমাম অর্ডার কোয়ান্টিটি ৫ ইউনিট।
- যেকোনো প্রোডাক্টের জন্য Максимаাম অর্ডার কোয়ান্টিটি ২০ ইউনিট।
- এই লিমিটের বাইরের অর্ডারগুলো অ্যাডজাস্ট করা দরকার।
IF পদ্ধতি:
=IF(G2<5, 5, IF(G2>20, 20, G2))
MIN/MAX পদ্ধতি:
এই ফর্মুলা নেস্টেড IF স্টেটমেন্টের প্রয়োজন ছাড়াই মানটি ৫ এবং ২০-এর মধ্যে থাকে তা নিশ্চিত করে।

চলুন একটি ডিসকাউন্ট পলিসি ইম্প্লিমেন্ট করি যেখানে:
- অর্ডারে একটি রেগুলার ডিসকাউন্ট পার্সেন্টেজ প্রয়োগ করা হয়।
- পার্সেন্টেজ নির্বিশেষে সর্বোচ্চ ডিসকাউন্ট $১,৫০০ অতিক্রম করতে পারবে না।
- ফাইনাল প্রাইস $৫০০-এর নিচে যেতে পারবে না।
এই কনস্ট্রেইন্ট প্রয়োগ করে ফাইনাল প্রাইস ক্যালকুলেট করুন:
IF পদ্ধতি:
=IF(J2-((J2*I2)/100)<500, 500, IF((J2*I2)/100>1500, J2-1500, J2-((J2*I2)/100)))
MIN/MAX পদ্ধতি:
=MAX(500, J2-MIN(1500, J2*I2/100))
এই পদ্ধতিটি নেস্টেড IF স্টেটমেন্টের চেয়ে বেশি ইউজার-ফ্রেন্ডলি এবং বোঝা সহজ।

সুবিধা:
- সংক্ষিপ্ত এবং নির্ভরযোগ্য।
- ক্যাপস, ফ্লোরস, এবং প্রাইসিং লজিকের জন্য আইডিয়াল।
৭. FILTER() - ডাইনামিক কন্ডিশনাল রেজাল্ট (Excel 365+)
FILTER একটি শক্তিশালী ফাংশন যা নির্দিষ্ট কRITEরিয়া পূরণ করে ভ্যালু রিটার্ন করে, জটিল IF স্টেটমেন্ট কার্যকরভাবে রিপ্লেস করে যা একাধিক কন্ডিশন চেক করে।
সিনট্যাক্স:
=FILTER(array, include, [if_empty])
আমাদের সেলস ডেটা থেকে ডাইনামিক রিপোর্ট তৈরি করি। ৫,০০০ ডলারের বেশি সকল Electronics অর্ডার খুঁজুন।
IF পদ্ধতি (একটি সিঙ্গেল রোর জন্য):
=IF(AND(C2="Electronics", J2>5000), B2, "")
এটিকে প্রতিটি রোর জন্য কপি ডাউন করতে হতো, একটি খণ্ডিত ফলাফল তৈরি করে।
FILTER পদ্ধতি:
=FILTER(B2:B13, (C2:C13="Electronics")*(J2:J13>5000), "No matching products")
এই ফর্মুলা ইলেকট্রনিক্স ক্যাটাগরি থেকে প্রোডাক্ট ফিল্টার করে

FILTER ফাংশন একাধিক কন্ডিশন কম্বাইন করতে পারে এবং সকল ম্যাচিং রেকর্ড রিটার্ন করতে পারে, যা এটিকে কমপ্লেক্স IF লজিক ছাড়া ডাইনামিক, কন্ডিশন-ভিত্তিক রিপোর্ট তৈরির জন্য আদর্শ করে তোলে। এটি ডেটা অ্যানালিসিস টাস্কের জন্য বিশেষভাবে শক্তিশালী যেখানে আপনাকে একাধিক মাপদণ্ডের ভিত্তিতে ডেটা ফিল্টার এবং প্রেজেন্ট করতে হয়।
উপসংহার
IF স্টেটমেন্ট ফ্লেক্সিবল, সেগুলো সবসময় সবচেয়ে দক্ষ সমাধান নয়। অন্য এক্সেল ফাংশন রয়েছে যা IF ফাংশনের সীমাবদ্ধতা অতিক্রম করতে পারে। এই IF স্টেটমেন্ট বিকল্পগুলো মাস্টার করে, আপনি ক্লিনার, আরও মেইনটেইনযোগ্য এক্সেল ফর্মুলা লিখতে পারবেন। প্রতিটি ফাংশনের নির্দিষ্ট সিনেরিওর জন্য শক্তি রয়েছে, এবং সঠিকটি বেছে নেওয়া আপনার স্প্রেডশিটের পঠনযোগ্যতা এবং পারফরম্যান্স নাটকীয়ভাবে উন্নত করতে পারে।