DAX (Data Analysis Expressions) একটি শক্তিশালী ভাষা যা Power BI, Power Pivot, এবং SQL Server Analysis Services (SSAS)-এ ব্যবহৃত হয়। এটি ডেটা মডেলিং এবং বিশ্লেষণ কাজগুলোকে সহজ এবং শক্তিশালী করে তোলে। ড্যাক্সে SEARCH এবং FIND ফাংশন দুটি টেক্সট খোঁজার জন্য ব্যবহৃত হয়। এগুলি টেক্সট স্ট্রিংয়ের মধ্যে নির্দিষ্ট শব্দ বা অক্ষর খুঁজে বের করার জন্য ব্যবহৃত হয়, তবে তাদের মধ্যে কিছু পার্থক্যও রয়েছে।
এই ফাংশনগুলি ব্যবহার করে আপনি সহজেই ডেটার মধ্যে কোনও নির্দিষ্ট টেক্সট, শব্দ, বা অক্ষরের অবস্থান খুঁজে বের করতে পারেন, যা রিপোর্ট এবং ড্যাশবোর্ডের জন্য অত্যন্ত উপকারী হতে পারে।
১. SEARCH ফাংশন
SEARCH ফাংশনটি একটি টেক্সট স্ট্রিংয়ের মধ্যে একটি নির্দিষ্ট শব্দ বা অক্ষরের অবস্থান খুঁজে বের করার জন্য ব্যবহৃত হয়। এটি ক্যাপিটাল/লিটল কেস (case-insensitive) এবং একটি অংশের মেলা (partial match) সমর্থন করে। অর্থাৎ, এটি বড় অক্ষর এবং ছোট অক্ষরের পার্থক্য বুঝে না এবং এটি টেক্সটের প্রথম অংশে মিল খুঁজে পায়।
SEARCH ফাংশনের সিনট্যাক্স:
SEARCH(<find_text>, <within_text>, [start_position], [not_found_value])
- find_text: যে টেক্সট বা শব্দটি আপনি খুঁজতে চান।
- within_text: যে টেক্সট বা কলামে আপনি খোঁজার জন্য অনুসন্ধান করবেন।
- start_position (ঐচ্ছিক): অনুসন্ধান শুরু করার অবস্থান। ডিফল্ট মান হলো 1 (যা প্রথম চরিত্র থেকে শুরু হয়)।
- not_found_value (ঐচ্ছিক): যদি টেক্সট না পাওয়া যায়, তবে আপনি কোন মান রিটার্ন করতে চান।
SEARCH ফাংশনের উদাহরণ:
SEARCH("apple", "I have an apple", 1, 0)
এই ফাংশনটি "I have an apple" টেক্সটের মধ্যে "apple" শব্দটি খুঁজবে এবং এর অবস্থান রিটার্ন করবে (এখানে এটি 12)। যদি "apple" শব্দটি না পায়, তবে এটি 0 রিটার্ন করবে, কারণ আমরা not_found_value হিসেবে 0 নির্ধারণ করেছি।
২. FIND ফাংশন
FIND ফাংশনটি ঠিক একইভাবে কাজ করে, তবে এটি case-sensitive (বড় এবং ছোট অক্ষর পার্থক্য সহ) এবং exact match সমর্থন করে। অর্থাৎ, এটি ক্যাপিটাল এবং ছোট অক্ষরের পার্থক্যকে স্বীকৃতি দেয় এবং এটি যে টেক্সটটি আপনি খুঁজছেন তার সঠিক অবস্থান খুঁজে বের করে।
FIND ফাংশনের সিনট্যাক্স:
FIND(<find_text>, <within_text>, [start_position], [not_found_value])
- find_text: যে টেক্সট বা শব্দটি আপনি খুঁজতে চান।
- within_text: যে টেক্সট বা কলামে আপনি খোঁজার জন্য অনুসন্ধান করবেন।
- start_position (ঐচ্ছিক): অনুসন্ধান শুরু করার অবস্থান। ডিফল্ট মান হলো 1 (যা প্রথম চরিত্র থেকে শুরু হয়)।
- not_found_value (ঐচ্ছিক): যদি টেক্সট না পাওয়া যায়, তবে আপনি কোন মান রিটার্ন করতে চান।
FIND ফাংশনের উদাহরণ:
FIND("apple", "I have an Apple", 1, 0)
এটি "I have an Apple" টেক্সটের মধ্যে Apple (বড় অক্ষরে "A") শব্দটি খুঁজে পাবে না, কারণ FIND ফাংশনটি case-sensitive। ফলস্বরূপ এটি 0 রিটার্ন করবে, কারণ এখানে "apple" (ছোট অক্ষরে) এবং "Apple" (বড় অক্ষরে) মিলছে না।
SEARCH এবং FIND এর মধ্যে পার্থক্য
| ফিচার | SEARCH | FIND |
|---|---|---|
| Case Sensitivity | Case-insensitive | Case-sensitive |
| Partial Matching | Supports partial matching | Supports exact matching |
| Use Case | যখন আপনাকে বড় এবং ছোট অক্ষরের পার্থক্য না দেখলে খুঁজতে হয় | যখন আপনাকে exact match এবং case-sensitive matching দরকার |
| Error Handling | not_found_value নির্ধারণ করা যাবে | not_found_value নির্ধারণ করা যাবে |
SEARCH এবং FIND ফাংশন ব্যবহার করে Text খোঁজার উদাহরণ
১. SEARCH ফাংশন উদাহরণ (Partial Match and Case-insensitive):
ধরা যাক, আমাদের "Product Names" কলামে কিছু পণ্যের নাম রয়েছে, এবং আমরা খুঁজতে চাই যদি সেই পণ্যের নামের মধ্যে "apple" থাকে।
SEARCH("apple", Products[ProductName], 1, 0)
এই ফাংশনটি "Products" টেবিলের ProductName কলামে "apple" শব্দটি খুঁজে বের করবে, এবং এটি ক্যাপিটাল বা ছোট অক্ষরের পার্থক্য না বুঝে প্রথম মিল খুঁজে ফেলবে। যদি পণ্য নামের মধ্যে "apple" থাকে, তবে এটি পজিশন রিটার্ন করবে, অন্যথায় 0 রিটার্ন করবে।
২. FIND ফাংশন উদাহরণ (Exact Match and Case-sensitive):
ধরা যাক, আমাদের "Product Names" কলামে কিছু পণ্যের নাম রয়েছে এবং আমরা শুধুমাত্র "Apple" (বড় অক্ষরে) পণ্যটি খুঁজতে চাই।
FIND("Apple", Products[ProductName], 1, 0)
এই ফাংশনটি "Products" টেবিলের ProductName কলামে "Apple" শব্দটি খুঁজে বের করবে এবং এটি শুধুমাত্র exact match এবং case-sensitive অনুসারে কাজ করবে। যদি "Apple" নামের পণ্য থাকে, তবে এটি পজিশন রিটার্ন করবে, অন্যথায় 0 রিটার্ন করবে।
অতিরিক্ত টিপস
- Multiple Occurrences (একাধিকOccurrences): আপনি যদি একই টেক্সটের মধ্যে একাধিক occurrences খুঁজে বের করতে চান, তবে আপনি SEARCH অথবা FIND ফাংশনকে MID এবং LEFT ফাংশনের সাথে কম্বিনে ব্যবহার করতে পারেন।
Error Handling: যদি আপনি নিশ্চিত না হন যে টেক্সটটি খুঁজে পাওয়া যাবে কি না, তবে আপনি IFERROR অথবা ISNUMBER ফাংশন ব্যবহার করে ভুলের ক্ষেত্রে ডিফল্ট মান প্রদান করতে পারেন।
উদাহরণ:
IFERROR(SEARCH("apple", Products[ProductName], 1, 0), "Not Found")
সারাংশ
SEARCH এবং FIND ফাংশনগুলি DAX ভাষায় টেক্সট খোঁজার জন্য অত্যন্ত গুরুত্বপূর্ণ এবং কার্যকরী টুল। SEARCH ফাংশনটি case-insensitive এবং partial matching সমর্থন করে, যেখানে FIND ফাংশনটি case-sensitive এবং exact match এর জন্য ব্যবহৃত হয়। এই ফাংশনগুলি ব্যবহার করে আপনি ডেটার মধ্যে নির্দিষ্ট টেক্সট, শব্দ, অথবা অক্ষরের অবস্থান সহজেই খুঁজে বের করতে পারেন, যা রিপোর্ট এবং বিশ্লেষণ প্রক্রিয়া আরও কার্যকরী করে তোলে।
Read more