DAX (Data Analysis Expressions) একটি শক্তিশালী ভাষা যা Power BI, Excel PowerPivot, এবং SQL Server Analysis Services (SSAS)-এ ডেটা বিশ্লেষণ এবং কাস্টম ক্যালকুলেশন তৈরি করতে ব্যবহৃত হয়। USERELATIONSHIP ফাংশনটি DAX এর একটি গুরুত্বপূর্ণ ফাংশন যা multiple relationships হ্যান্ডেল করতে সাহায্য করে। এটি বিশেষভাবে ব্যবহৃত হয় যখন একটি টেবিলের মধ্যে একাধিক সম্পর্ক থাকে এবং আপনি কোন সম্পর্কটি সক্রিয় করতে চান তা নির্দিষ্ট করতে চান।
এই প্রবন্ধে আমরা USERELATIONSHIP ফাংশনটি কীভাবে কাজ করে এবং কিভাবে এটি multiple relationships হ্যান্ডেল করতে ব্যবহৃত হয় তা আলোচনা করব।
USERELATIONSHIP ফাংশন কী?
USERELATIONSHIP ফাংশনটি DAX-এ একটি ফাংশন যা inactive relationships-কে active করে তোলে, এবং এটি তখন ব্যবহৃত হয় যখন একাধিক সম্পর্ক (relationships) একটি টেবিলের মধ্যে থাকে। ডিফল্টভাবে, DAX একটি single active relationship অনুমোদন করে, কিন্তু যখন আপনি multiple relationships এর মধ্যে একটি সম্পর্ক সক্রিয় করতে চান, তখন USERELATIONSHIP ফাংশনটি ব্যবহার করা হয়।
Syntax:
USERELATIONSHIP(<ColumnName1>, <ColumnName2>)
- : প্রথম কলাম, যা একটি টেবিলের অংশ।
- : দ্বিতীয় কলাম, যা অন্য টেবিলের অংশ।
USERELATIONSHIP ফাংশনটি সাধারণত CALCULATE ফাংশনের সাথে ব্যবহৃত হয়, কারণ এটি শুধুমাত্র একটি নির্দিষ্ট ক্যালকুলেশনের জন্য সম্পর্ক সক্রিয় করে।
USERELATIONSHIP ফাংশন ব্যবহার করার উদাহরণ
ধরা যাক, আপনার একটি Sales টেবিল এবং একটি Date টেবিল আছে, এবং এই দুটি টেবিলের মধ্যে একাধিক সম্পর্ক রয়েছে। সাধারণত, Sales টেবিলের OrderDate কলাম এবং Date টেবিলের Date কলামের মধ্যে একটি সক্রিয় সম্পর্ক থাকে। কিন্তু আপনি যদি ShipDate কলামের জন্য সম্পর্কটি ব্যবহার করতে চান, তাহলে USERELATIONSHIP ফাংশন ব্যবহার করা হবে।
Example: Basic Use of USERELATIONSHIP
ধরা যাক, Sales টেবিলের মধ্যে দুটি সম্পর্ক রয়েছে:
- OrderDate (সক্রিয় সম্পর্ক)
- ShipDate (নিষ্ক্রিয় সম্পর্ক)
এখন, আপনি যদি ShipDate কলামের জন্য বিক্রয়ের পরিমাণ বের করতে চান, তবে আপনি USERELATIONSHIP ফাংশন ব্যবহার করবেন।
Sales by Ship Date =
CALCULATE(
SUM(Sales[Amount]),
USERELATIONSHIP(Sales[ShipDate], Date[Date])
)
এখানে:
- CALCULATE ফাংশনটি ব্যবহার করা হয়েছে, যাতে Sales[Amount] এর জন্য একটি নির্দিষ্ট সম্পর্ক সক্রিয় করা যায়।
- USERELATIONSHIP ফাংশনটি Sales[ShipDate] এবং Date[Date] এর মধ্যে নিষ্ক্রিয় সম্পর্কটি সক্রিয় করে।
এই ফাংশনটি ShipDate কলামের উপর ভিত্তি করে Sales টেবিলের Amount এর যোগফল বের করবে।
Multiple Relationships Handling
USERELATIONSHIP ফাংশনটি একাধিক সম্পর্কের মধ্যে কোন একটি সম্পর্ক সক্রিয় করার জন্য ব্যবহৃত হয়। DAX এ, একটি টেবিলের মধ্যে multiple relationships থাকতে পারে, কিন্তু only one active relationship থাকে। যখন আপনি inactive relationships ব্যবহার করতে চান, তখন USERELATIONSHIP ফাংশনটি সেই সম্পর্কটি সক্রিয় করে এবং কাস্টম ক্যালকুলেশন তৈরি করতে সহায়ক হয়।
Example: Calculating Sales with Multiple Relationships
ধরা যাক, আপনার Sales টেবিল এবং Date টেবিলের মধ্যে দুটি সম্পর্ক রয়েছে:
- OrderDate (সক্রিয় সম্পর্ক)
- ShipDate (নিষ্ক্রিয় সম্পর্ক)
এখন, আপনি চান ShipDate কলামের উপর ভিত্তি করে বিক্রয়ের পরিমাণ বের করতে, কিন্তু সাধারণভাবে OrderDate সম্পর্কটি সক্রিয় থাকে। USERELATIONSHIP ব্যবহার করে আপনি ShipDate সম্পর্কটি সক্রিয় করতে পারেন এবং বিক্রয়ের পরিমাণ বের করতে পারেন।
Sales by ShipDate =
CALCULATE(
SUM(Sales[Amount]),
USERELATIONSHIP(Sales[ShipDate], Date[Date])
)
এখানে:
- USERELATIONSHIP ফাংশনটি ShipDate কলামের জন্য সম্পর্ক সক্রিয় করেছে।
- CALCULATE ফাংশনটি সেই সম্পর্ক অনুযায়ী Sales[Amount] এর যোগফল বের করছে।
এভাবে, আপনি multiple relationships হ্যান্ডেল করে dynamic calculations করতে পারেন।
USERELATIONSHIP এর সাথে FILTER ব্যবহার করা
USERELATIONSHIP ফাংশনটি সাধারণত CALCULATE ফাংশনের সাথে ব্যবহৃত হয় এবং FILTER ফাংশনের মাধ্যমে নির্দিষ্ট শর্ত প্রয়োগ করা যেতে পারে।
Example: Using USERELATIONSHIP with FILTER
ধরা যাক, আপনি ShipDate সম্পর্ক ব্যবহার করে শুধুমাত্র 2019 সালের বিক্রয় পরিমাণ বের করতে চান:
Sales by ShipDate 2019 =
CALCULATE(
SUM(Sales[Amount]),
USERELATIONSHIP(Sales[ShipDate], Date[Date]),
FILTER(Date, YEAR(Date[Date]) = 2019)
)
এখানে:
- USERELATIONSHIP ফাংশনটি Sales[ShipDate] এবং Date[Date] সম্পর্কটি সক্রিয় করেছে।
- FILTER ফাংশনটি Date টেবিলের উপর 2019 সালের ডেটা ফিল্টার করেছে।
এই ফাংশনটি শুধুমাত্র 2019 সালের ShipDate এর বিক্রয়ের পরিমাণ প্রদর্শন করবে।
USERELATIONSHIP এর সুবিধা এবং প্রয়োগ
১. একাধিক সম্পর্ক হ্যান্ডেল করা
USERELATIONSHIP ফাংশনটি আপনাকে multiple relationships এর মধ্যে একটি সক্রিয় সম্পর্ক নির্বাচন করতে সহায়তা করে।
২. ফিল্টার কনটেক্সট নিয়ন্ত্রণ
USERELATIONSHIP ফাংশনটি CALCULATE ফাংশনের সাথে ব্যবহৃত হলে আপনি ডেটার ফিল্টার কনটেক্সট নিয়ন্ত্রণ করতে পারেন এবং নির্দিষ্ট সম্পর্কের ভিত্তিতে গণনা করতে পারেন।
৩. কাস্টম ক্যালকুলেশন তৈরি
এই ফাংশনটি inactive relationships ব্যবহার করে custom aggregations এবং time intelligence calculations করতে সহায়ক।
৪. ডেটা মডেলিং সহজ করা
একাধিক সম্পর্ক থাকা সত্ত্বেও, USERELATIONSHIP ফাংশনটি সম্পর্কগুলির উপর নিয়ন্ত্রণ প্রদান করে এবং ডেটা মডেলিংকে সহজ এবং কার্যকর করে তোলে।
সারাংশ
USERELATIONSHIP ফাংশনটি DAX-এ একটি শক্তিশালী টুল যা multiple relationships হ্যান্ডেল করতে সাহায্য করে। এটি inactive relationships-কে active করে এবং কাস্টম ক্যালকুলেশন, conditional aggregations, এবং time intelligence বিশ্লেষণের জন্য ব্যবহৃত হয়। আপনি যখন একাধিক সম্পর্কের মধ্যে নির্দিষ্ট সম্পর্ক সক্রিয় করতে চান, তখন USERELATIONSHIP ব্যবহার করা হয়, যা Power BI বা Excel-এ ডেটা বিশ্লেষণ ও মডেলিং এর জন্য অত্যন্ত কার্যকরী।
Read more