DAX (Data Analysis Expressions) একটি শক্তিশালী ভাষা যা Power BI, Power Pivot, এবং SQL Server Analysis Services (SSAS)-এ ব্যবহৃত হয়। CROSSFILTER ফাংশনটি filter directions নিয়ন্ত্রণ করার জন্য ব্যবহৃত হয়, বিশেষ করে যখন আপনি relationships এর মধ্যে filter behavior পরিবর্তন করতে চান। DAX-এ সম্পর্কের filter direction সাধারণত দুই ধরনের হয়ে থাকে: single-directional এবং bi-directional।
CROSSFILTER ফাংশনটি ব্যবহৃত হয় এই filter directions পরিবর্তন করতে, যার মাধ্যমে আপনি single-directional সম্পর্ককে bi-directional-এ পরিবর্তন করতে পারেন, অথবা উল্টোভাবে bi-directional সম্পর্ককে single-directional-এ রূপান্তর করতে পারেন। এর মাধ্যমে আপনি ডেটা মডেলকে আরও নমনীয়ভাবে কাস্টমাইজ করতে পারেন এবং সম্পর্কের উপর ভিত্তি করে আরও সঠিক বিশ্লেষণ করতে পারেন।
CROSSFILTER ফাংশনের সিনট্যাক্স
CROSSFILTER ফাংশনের সাধারণ সিনট্যাক্স হলো:
CROSSFILTER(<Column1>, <Column2>, <FilterDirection>)
- : প্রথম কলাম, যা সম্পর্কিত হবে।
- : দ্বিতীয় কলাম, যা প্রথম কলামের সাথে সম্পর্কিত থাকবে।
- : ফিল্টারের দিক নির্ধারণ করে, যেমন
NONE,ONE, বাBOTH।
FilterDirection এর মান:
- NONE: ফিল্টার প্রয়োগ হবে না।
- ONE: একমুখী ফিল্টার (single-directional) প্রযোজ্য হবে।
- BOTH: উভয়মুখী ফিল্টার (bi-directional) প্রযোজ্য হবে।
CROSSFILTER ফাংশনের ব্যবহার
১. Single-Directional Filter Control
যখন আপনার টেবিলের মধ্যে single-directional relationship রয়েছে এবং আপনি চান যে একটি সম্পর্কের মধ্যে ফিল্টার প্রভাব শুধুমাত্র একটি দিকে কাজ করুক, তখন আপনি CROSSFILTER ফাংশন ব্যবহার করতে পারেন। উদাহরণস্বরূপ, ধরুন আপনি চান Sales টেবিল এবং Products টেবিলের মধ্যে single-directional filter সেট করতে:
CROSSFILTER(Sales[ProductID], Products[ProductID], ONE)
এখানে:
- Sales[ProductID] কলামের ফিল্টার Products[ProductID] কলাম দ্বারা প্রভাবিত হবে, কিন্তু উল্টো দিকে প্রভাবিত হবে না।
২. Bi-Directional Filter Control
যদি আপনি চান যে একটি সম্পর্কের মধ্যে bi-directional filtering সক্রিয় থাকুক, অর্থাৎ ফিল্টার উভয় কলামের মধ্যেই কাজ করবে, তাহলে আপনি BOTH ব্যবহার করতে পারেন।
CROSSFILTER(Sales[ProductID], Products[ProductID], BOTH)
এখানে:
- Sales[ProductID] এবং Products[ProductID] উভয় কলামের মধ্যে ফিল্টার একে অপরকে প্রভাবিত করবে। এই ফিল্টার প্রয়োগের ফলে, আপনি একাধিক সম্পর্কের মধ্যে ডেটার সমন্বয় করতে পারবেন।
৩. No Filter (NONE)
এবং, যদি আপনি সম্পর্কের মধ্যে ফিল্টার প্রয়োগ না করতে চান, তবে NONE ব্যবহার করতে পারেন:
CROSSFILTER(Sales[ProductID], Products[ProductID], NONE)
এখানে:
- কোনো ফিল্টার প্রয়োগ হবে না এবং উভয় কলামের মধ্যে সম্পর্কটি স্বাভাবিকভাবেই থাকে, তবে তার মধ্যে কোনো ডেটা ফিল্টার হবে না।
CROSSFILTER ফাংশনের ব্যবহারিক উদাহরণ
উদাহরণ ১: Bi-Directional Filtering in Sales and Products
ধরা যাক, আপনি একটি Sales টেবিল এবং Products টেবিলের মধ্যে bi-directional filtering প্রয়োগ করতে চান, যাতে Products কলাম থেকে Sales কলাম এবং Sales কলাম থেকে Products কলামে উভয়ভাবে ফিল্টার প্রভাবিত হয়।
Total Sales by Product =
CALCULATE(
SUM(Sales[Amount]),
CROSSFILTER(Sales[ProductID], Products[ProductID], BOTH)
)
এখানে, CROSSFILTER ফাংশনটি Sales এবং Products টেবিলের মধ্যে bi-directional filtering প্রয়োগ করবে, যার ফলে Products[ProductID] এর পরিবর্তন Sales[ProductID] এবং এর বিপরীত হবে।
উদাহরণ ২: Single-Directional Filter Control in Relationships
ধরা যাক, আপনার একটি Customer টেবিল এবং Sales টেবিলের মধ্যে single-directional filter প্রয়োগ করতে চান:
Customer Sales =
CALCULATE(
SUM(Sales[Amount]),
CROSSFILTER(Sales[CustomerID], Customer[CustomerID], ONE)
)
এখানে, Sales[CustomerID] থেকে Customer[CustomerID] কলামের দিকে শুধুমাত্র ফিল্টার প্রভাবিত হবে, কিন্তু তার বিপরীতে কোনো প্রভাব থাকবে না।
উদাহরণ ৩: No Filter between Two Tables
এখন, যদি আপনি চান যে Sales টেবিল এবং Products টেবিলের মধ্যে কোনো ফিল্টার প্রভাব না পড়ুক, তাহলে আপনি CROSSFILTER ফাংশনে NONE ব্যবহার করতে পারেন:
All Sales without Product Filter =
CALCULATE(
SUM(Sales[Amount]),
CROSSFILTER(Sales[ProductID], Products[ProductID], NONE)
)
এখানে, কোনো ফিল্টার প্রভাবিত হবে না এবং উভয় টেবিলের ডেটা নির্ভরশীল থাকবে না।
সারাংশ
CROSSFILTER ফাংশনটি DAX-এর একটি শক্তিশালী টুল যা filter directions নিয়ন্ত্রণ করতে ব্যবহৃত হয়। এটি আপনাকে সম্পর্কের মধ্যে single-directional বা bi-directional ফিল্টার প্রয়োগ করার সুযোগ দেয়, যা ডেটা মডেলিং এবং বিশ্লেষণের জন্য অত্যন্ত উপকারী। আপনি CROSSFILTER ফাংশনের মাধ্যমে সম্পর্কের মধ্যে ফিল্টার প্রভাব নিয়ন্ত্রণ করতে পারেন, যা আপনার রিপোর্ট এবং বিশ্লেষণকে আরও শক্তিশালী এবং কার্যকরী করে তোলে।
এটি ব্যবহার করার মাধ্যমে, আপনি খুবই নমনীয়ভাবে ডেটার মধ্যে ফিল্টার প্রভাব প্রয়োগ এবং নিয়ন্ত্রণ করতে পারবেন, যা পরবর্তী বিশ্লেষণে সহায়ক।
Read more