VLOOKUP (Vertical Lookup)
VLOOKUP হলো Excel-এর সবচেয়ে বহুল ব্যবহৃত Lookup ফাংশন। এটি একটি টেবিলের প্রথম কলামে কোনো মান খোঁজে এবং একই সারির অন্য কলাম থেকে তথ্য নিয়ে আসে। "V" মানে Vertical — অর্থাৎ এটি উপর থেকে নিচে (Column-wise) খোঁজে।
সিনট্যাক্স: =VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
- lookup_value — যে মান খুঁজতে চান (যেমন Employee ID)
- table_array — যে টেবিলে খুঁজবে (যেমন A2:D100)
- col_index_num — কততম কলামের তথ্য চান (1, 2, 3...)
- range_lookup — TRUE/1 (আনুমানিক মিল) বা FALSE/0 (হুবহু মিল)
Exact Match vs Approximate Match
Exact Match (FALSE/0): হুবহু মান খোঁজে। না পেলে #N/A ত্রুটি দেয়। বেশিরভাগ ক্ষেত্রে এটিই ব্যবহার করা উচিত।
Approximate Match (TRUE/1): নিকটতম ছোট মান খোঁজে। ডেটা অবশ্যই ascending order-এ সাজানো থাকতে হবে। গ্রেডিং, ট্যাক্স স্ল্যাব ইত্যাদিতে ব্যবহৃত হয়।
ব্যবহারিক উদাহরণ — কর্মচারী তথ্য খোঁজা
ধরুন A কলামে Employee ID, B কলামে নাম, C কলামে বিভাগ, D কলামে বেতন আছে। ID দিয়ে নাম খুঁজতে:
=VLOOKUP(F1, A2:D100, 2, FALSE) — F1 সেলের ID দিয়ে নাম (২য় কলাম) খুঁজবে।
=VLOOKUP(F1, A2:D100, 4, FALSE) — একই ID দিয়ে বেতন (৪র্থ কলাম) খুঁজবে।
VLOOKUP-এর সীমাবদ্ধতা
- শুধু ডানে খুঁজতে পারে — Lookup value অবশ্যই টেবিলের প্রথম কলামে থাকতে হবে
- কলাম ইনসার্ট/ডিলিট করলে col_index_num ভুল হয়ে যেতে পারে
- একই মানের একাধিক এন্ট্রি থাকলে শুধু প্রথমটি রিটার্ন করে
- বড় ডেটাসেটে তুলনামূলক ধীরগতি
VLOOKUP-এর সবচেয়ে বড় ভুল: range_lookup প্যারামিটারে FALSE/0 না দেওয়া। Exact match চাইলে অবশ্যই FALSE দিন, নতুবা ভুল ফলাফল আসতে পারে!
HLOOKUP (Horizontal Lookup)
HLOOKUP হলো VLOOKUP-এর অনুভূমিক সংস্করণ। এটি টেবিলের প্রথম সারিতে মান খুঁজে নির্দিষ্ট সারি থেকে তথ্য নিয়ে আসে। "H" মানে Horizontal — বাম থেকে ডানে খোঁজে।
সিনট্যাক্স: =HLOOKUP(lookup_value, table_array, row_index_num, [range_lookup])
উদাহরণ: =HLOOKUP("March", A1:L3, 3, FALSE) — প্রথম সারিতে "March" খুঁজে ৩য় সারি থেকে মান নেবে।
HLOOKUP সাধারণত কম ব্যবহৃত হয়, কারণ বেশিরভাগ ডেটা টেবিল Vertical (কলাম-ভিত্তিক) হয়।
| বৈশিষ্ট্য | VLOOKUP | HLOOKUP |
|---|---|---|
| খোঁজার দিক | উপর থেকে নিচে (Vertical) | বাম থেকে ডানে (Horizontal) |
| Lookup Position | প্রথম কলামে | প্রথম সারিতে |
| Return Parameter | col_index_num (কলাম নম্বর) | row_index_num (সারি নম্বর) |
| ডেটা লেআউট | রেকর্ড সারিতে, ফিল্ড কলামে | রেকর্ড কলামে, ফিল্ড সারিতে |
| কখন ব্যবহার | বেশিরভাগ সময় | Summary/Cross-tab টেবিলে |
INDEX Function
INDEX ফাংশন একটি রেঞ্জ থেকে নির্দিষ্ট Row ও Column-এর ছেদবিন্দুতে থাকা মান রিটার্ন করে। এটি একটি "ঠিকানা দিয়ে মান বের করা"-র টুল।
সিনট্যাক্স: =INDEX(array, row_num, [col_num])
- array — ডেটা রেঞ্জ (যেমন A1:D10)
- row_num — কততম সারি
- col_num — কততম কলাম (ঐচ্ছিক, একটি কলাম হলে দরকার নেই)
উদাহরণ: =INDEX(A1:D10, 3, 2) — A1:D10 রেঞ্জের ৩য় সারি ও ২য় কলামের মান।
একক কলাম/সারি থেকে: =INDEX(B1:B10, 5) — B কলামের ৫ম মান।
MATCH Function
MATCH ফাংশন একটি রেঞ্জে কোনো মান খুঁজে তার অবস্থান নম্বর (position) রিটার্ন করে — মান নয়, অবস্থান!
সিনট্যাক্স: =MATCH(lookup_value, lookup_array, [match_type])
- match_type = 0 → Exact match (সবচেয়ে বেশি ব্যবহৃত)
- match_type = 1 → Less than or equal (ascending sorted data)
- match_type = -1 → Greater than or equal (descending sorted data)
উদাহরণ: =MATCH("Dhaka", A1:A10, 0) — A1:A10 রেঞ্জে "Dhaka" কততম অবস্থানে আছে তা জানাবে। যদি ৪র্থ সেলে থাকে, ফলাফল হবে 4।
INDEX-MATCH Combination
INDEX-MATCH হলো VLOOKUP-এর সবচেয়ে শক্তিশালী বিকল্প। MATCH অবস্থান খোঁজে এবং INDEX সেই অবস্থান ব্যবহার করে মান বের করে আনে। দুটো মিলে এক অসাধারণ জুটি!
সিনট্যাক্স: =INDEX(return_range, MATCH(lookup_value, lookup_range, 0))
কেন INDEX-MATCH VLOOKUP-এর চেয়ে ভালো?
- বামেও খুঁজতে পারে — VLOOKUP শুধু ডানে খোঁজে, কিন্তু INDEX-MATCH যেকোনো দিকে কাজ করে
- কলাম ইনসার্ট করলে ভাঙে না — VLOOKUP-এ col_index_num ভুল হতে পারে, INDEX-MATCH-এ এই সমস্যা নেই
- বড় ডেটাসেটে দ্রুততর — বিশেষ করে হাজার হাজার Lookup-এ তফাৎ স্পষ্ট
- আরও নমনীয় — Row ও Column উভয় দিকে Lookup করা যায়
ব্যবহারিক উদাহরণ
ধরুন B কলামে নাম (B2:B100) এবং A কলামে Employee ID (A2:A100)। নাম দিয়ে ID খুঁজতে (বামে Lookup):
=INDEX(A2:A100, MATCH("করিম", B2:B100, 0))
MATCH প্রথমে B কলামে "করিম" খোঁজে এবং তার অবস্থান (ধরুন 5) রিটার্ন করে। তারপর INDEX A কলামের ৫ম মান রিটার্ন করে — যেটি করিমের Employee ID!
XLOOKUP (Excel 365/2021)
XLOOKUP হলো Microsoft-এর সর্বশেষ ও সবচেয়ে শক্তিশালী Lookup ফাংশন। এটি VLOOKUP, HLOOKUP ও INDEX-MATCH — সবার কাজ একাই করতে পারে!
সিনট্যাক্স: =XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])
- lookup_value — যা খুঁজতে চান
- lookup_array — যেখানে খুঁজবে
- return_array — যেখান থেকে ফলাফল নেবে
- if_not_found — না পেলে কী দেখাবে (ঐচ্ছিক)
- match_mode — 0 (exact), -1 (exact or smaller), 1 (exact or larger), 2 (wildcard)
- search_mode — 1 (first to last), -1 (last to first), 2 (binary ascending), -2 (binary descending)
XLOOKUP-এর সুবিধাসমূহ
- Bidirectional — বামে-ডানে, উপরে-নিচে সব দিকে কাজ করে
- Built-in Error Handling — if_not_found প্যারামিটারে সরাসরি ত্রুটি মেসেজ দেওয়া যায়, IFERROR দরকার নেই
- Wildcard Support — *, ? ব্যবহার করে আংশিক মিল খোঁজা যায়
- Last-to-First Search — শেষ থেকে প্রথমে খোঁজা যায়
- সহজ সিনট্যাক্স — col_index_num বা match_type মনে রাখার দরকার নেই
উদাহরণ: =XLOOKUP(F1, A2:A100, C2:C100, "পাওয়া যায়নি") — F1-এর মান A কলামে খুঁজে C কলামের মান দেবে। না পেলে "পাওয়া যায়নি" দেখাবে।
তুলনা: VLOOKUP vs INDEX-MATCH vs XLOOKUP
কোন Lookup ফাংশন কখন ব্যবহার করবেন? নিচের তুলনা টেবিলটি দেখুন:
| বৈশিষ্ট্য | VLOOKUP | INDEX-MATCH | XLOOKUP |
|---|---|---|---|
| বামে Lookup | ❌ পারে না | ✅ পারে | ✅ পারে |
| কলাম ইনসার্টে নিরাপদ | ❌ ভাঙতে পারে | ✅ নিরাপদ | ✅ নিরাপদ |
| Error Handling | IFERROR দরকার | IFERROR দরকার | ✅ বিল্ট-ইন |
| Horizontal Lookup | ❌ (HLOOKUP দরকার) | ✅ পারে | ✅ পারে |
| Wildcard Support | ✅ হ্যাঁ | ✅ হ্যাঁ | ✅ হ্যাঁ |
| Last Match খোঁজা | ❌ না | জটিল | ✅ সহজে |
| শেখার সহজতা | ★★★★☆ সহজ | ★★★☆☆ মাঝারি | ★★★★★ সবচেয়ে সহজ |
| ভার্সন সাপোর্ট | সব ভার্সন | সব ভার্সন | Excel 365/2021+ |
| পারফরম্যান্স | মাঝারি | দ্রুত | সবচেয়ে দ্রুত |
INDEX-MATCH = GPS of Excel! INDEX বলে 'কোথায়', MATCH বলে 'কত নম্বরে' — দুটো মিলে সঠিক ঠিকানা দেয়!