Relationship Functions

Big Data and Analytics - ড্যাক্স ফাংশন (Dax Functions)
108
108

DAX (Data Analysis Expressions) হল একটি শক্তিশালী ভাষা যা Power BI, Power Pivot, এবং SQL Server Analysis Services (SSAS)-এ ব্যবহৃত হয়। DAX ফাংশনগুলি ডেটা মডেলিং এবং বিশ্লেষণ কাস্টমাইজেশন করতে সহায়ক, বিশেষত relationship functions। ড্যাক্সে relationship functions ব্যবহৃত হয় বিভিন্ন টেবিলের মধ্যে সম্পর্ক তৈরি ও পরিচালনা করার জন্য, যা ব্যবসায়িক বিশ্লেষণ এবং রিপোর্টিংয়ের জন্য অত্যন্ত গুরুত্বপূর্ণ।

ড্যাক্সের relationship functions ব্যবহার করে আপনি বিভিন্ন টেবিলের মধ্যে সম্পর্ক চিহ্নিত করতে পারেন এবং সম্পর্কিত ডেটা বিশ্লেষণ করতে সক্ষম হন। এই ফাংশনগুলি ব্যবহার করে আপনি সম্পর্কিত টেবিলের মধ্যে data retrieval এবং aggregation করতে পারেন।


Relationship Functions in DAX

ড্যাক্সে বিভিন্ন ধরনের relationship functions রয়েছে, যেগুলি filter context, relationship creation, এবং relationship navigation এর সাথে সম্পর্কিত ডেটা বিশ্লেষণ করতে ব্যবহৃত হয়। এই ফাংশনগুলির মধ্যে কিছু জনপ্রিয় ফাংশন হলো:

  • RELATED
  • RELATEDTABLE
  • USERELATIONSHIP
  • CROSSFILTER
  • TREATAS

১. RELATED ফাংশন

RELATED ফাংশনটি ব্যবহৃত হয় যখন আপনি একটি টেবিল থেকে অন্য একটি টেবিলের সম্পর্কিত কলাম অ্যাক্সেস করতে চান। এটি one-to-many সম্পর্কের জন্য ব্যবহৃত হয়।

Syntax:

RELATED(<column>)

ব্যবহার:

ধরা যাক, আপনার Sales টেবিল এবং Products টেবিল রয়েছে, এবং আপনি Sales টেবিলের মধ্যে Product Name কলাম দেখতে চান, যা Products টেবিলের সাথে সম্পর্কিত। আপনি RELATED ফাংশনটি ব্যবহার করতে পারেন:

Product Name = RELATED(Products[ProductName])

এই ফাংশনটি Sales টেবিলের প্রতি সারির জন্য Products টেবিলের সম্পর্কিত ProductName কলামের মান ফিরিয়ে দেবে।


২. RELATEDTABLE ফাংশন

RELATEDTABLE ফাংশনটি ব্যবহৃত হয় যখন আপনি একটি টেবিল থেকে সম্পর্কিত টেবিলের সমস্ত সারি বা কলাম দেখতে চান। এটি সাধারণত many-to-one সম্পর্কের ক্ষেত্রে ব্যবহৃত হয়।

Syntax:

RELATEDTABLE(<table>)

ব্যবহার:

যেমন, আপনি যদি Products টেবিলের প্রতিটি পণ্যের জন্য Sales টেবিলের সমস্ত বিক্রয় পরিমাণ দেখতে চান, তাহলে আপনি RELATEDTABLE ফাংশনটি ব্যবহার করতে পারেন:

Total Sales for Product = SUMX(RELATEDTABLE(Sales), Sales[Amount])

এখানে:

  • RELATEDTABLE(Sales) ফাংশনটি Products টেবিলের প্রতি সারির জন্য Sales টেবিলের সম্পর্কিত সমস্ত সারি ফেরত দিবে।
  • তারপর, SUMX ফাংশনটি এই সম্পর্কিত সমস্ত Sales[Amount] এর যোগফল নির্ধারণ করবে।

৩. USERELATIONSHIP ফাংশন

USERELATIONSHIP ফাংশনটি ব্যবহৃত হয় যখন আপনি একটি অগ্রিম সম্পর্ক চালু করতে চান, যা ডিফল্ট সম্পর্ক নয়। এটি বিশেষভাবে inactive relationships পরিচালনা করার জন্য ব্যবহৃত হয়।

Syntax:

USERELATIONSHIP(<column1>, <column2>)

ব্যবহার:

ধরা যাক, আপনার Sales এবং Orders টেবিলের মধ্যে দুটি সম্পর্ক রয়েছে, তবে Sales[OrderDate] কলামটি ইনঅ্যাকটিভ (inactive) সম্পর্কের মধ্যে আছে। আপনি যদি এটি ব্যবহার করে একটি কাস্টম সম্পর্ক চালু করতে চান, তাহলে USERELATIONSHIP ব্যবহার করতে পারেন:

Total Sales Last Year = CALCULATE(SUM(Sales[Amount]), USERELATIONSHIP(Sales[OrderDate], Orders[OrderDate]))

এখানে:

  • USERELATIONSHIP ফাংশনটি Sales[OrderDate] এবং Orders[OrderDate] এর মধ্যে অগ্রিম সম্পর্ক চালু করবে, এবং তারপর SUM ফাংশনটি বিক্রয়ের পরিমাণ বের করবে।

৪. CROSSFILTER ফাংশন

CROSSFILTER ফাংশনটি দুটি সম্পর্কিত টেবিলের মধ্যে ফিল্টার প্রভাব নিয়ন্ত্রণ করার জন্য ব্যবহৃত হয়। এটি সাধারণত filter direction পরিবর্তন করতে বা bi-directional filtering সক্ষম করতে ব্যবহৃত হয়।

Syntax:

CROSSFILTER(<column1>, <column2>, <filter_direction>)
  • এবং : সম্পর্কিত কলামগুলি।
  • <filter_direction>: ফিল্টার দিক, যেমন NONE, ONEWAY, বা BOTH

ব্যবহার:

ধরা যাক, আপনার Sales এবং Customers টেবিলের মধ্যে একটি সম্পর্ক রয়েছে এবং আপনি চান যে Customers টেবিলের ফিল্টার প্রভাব Sales টেবিলেও প্রয়োগ হোক। আপনি CROSSFILTER ব্যবহার করতে পারেন:

Total Sales by Customer = CALCULATE(SUM(Sales[Amount]), CROSSFILTER(Customers[CustomerID], Sales[CustomerID], BOTH))

এটি Sales এবং Customers টেবিলের মধ্যে bi-directional filter প্রয়োগ করবে, যার ফলে উভয় টেবিলের ফিল্টার প্রভাব একে অপরের উপর প্রযোজ্য হবে।


৫. TREATAS ফাংশন

TREATAS ফাংশনটি ব্যবহৃত হয় একটি এক্সপ্রেশন বা টেবিলের মানকে অন্য একটি কলাম বা টেবিলের মান হিসেবে আচরণ করতে। এটি বিশেষভাবে virtual relationships তৈরি করার জন্য ব্যবহৃত হয়।

Syntax:

TREATAS(<table>, <column1>, <column2>, ...)

ব্যবহার:

যেমন, আপনি যদি Sales টেবিলের ProductID কলামের মানগুলিকে Products টেবিলের ProductCode কলামের সাথে সম্পর্কিত করতে চান, তবে আপনি TREATAS ব্যবহার করতে পারেন:

Sales by ProductCode = CALCULATE(SUM(Sales[Amount]), TREATAS(Products[ProductCode], Sales[ProductID]))

এখানে:

  • TREATAS ফাংশনটি Products[ProductCode] কলামের মানকে Sales[ProductID] কলামের মান হিসেবে ব্যবহার করবে।

সারাংশ

Relationship Functions DAX-এ ডেটার সম্পর্ক তৈরি এবং নিয়ন্ত্রণ করার জন্য অত্যন্ত গুরুত্বপূর্ণ। এই ফাংশনগুলি আপনাকে বিভিন্ন টেবিলের মধ্যে সম্পর্ক সেটআপ, সম্পর্কিত ডেটার অ্যাক্সেস এবং filter context নিয়ন্ত্রণ করতে সহায়ক। RELATED, RELATEDTABLE, USERELATIONSHIP, CROSSFILTER, এবং TREATAS ফাংশনগুলি ডেটার সঠিক বিশ্লেষণ এবং রিপোর্ট তৈরি করতে ব্যবহৃত হয়। এই ফাংশনগুলির দক্ষ ব্যবহার Power BI এবং Excel-এ ডেটা মডেল তৈরির প্রক্রিয়াকে আরও শক্তিশালী এবং কার্যকরী করে তোলে।

Content added By

USERELATIONSHIP দিয়ে Multiple Relationships হ্যান্ডেল করা

90
90

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 টেবিলের মধ্যে দুটি সম্পর্ক রয়েছে:

  1. OrderDate (সক্রিয় সম্পর্ক)
  2. 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 টেবিলের মধ্যে দুটি সম্পর্ক রয়েছে:

  1. OrderDate (সক্রিয় সম্পর্ক)
  2. 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-এ ডেটা বিশ্লেষণ ও মডেলিং এর জন্য অত্যন্ত কার্যকরী।

Content added By

CROSSFILTER দিয়ে Filter Directions নিয়ন্ত্রণ করা

77
77

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 ফাংশনের মাধ্যমে সম্পর্কের মধ্যে ফিল্টার প্রভাব নিয়ন্ত্রণ করতে পারেন, যা আপনার রিপোর্ট এবং বিশ্লেষণকে আরও শক্তিশালী এবং কার্যকরী করে তোলে।

এটি ব্যবহার করার মাধ্যমে, আপনি খুবই নমনীয়ভাবে ডেটার মধ্যে ফিল্টার প্রভাব প্রয়োগ এবং নিয়ন্ত্রণ করতে পারবেন, যা পরবর্তী বিশ্লেষণে সহায়ক।

Content added By

LOOKUPVALUE দিয়ে Data Lookup করা

96
96

DAX (Data Analysis Expressions) ফাংশনটি ডেটা মডেলিং এবং বিশ্লেষণের জন্য একটি শক্তিশালী টুল। এর মধ্যে LOOKUPVALUE একটি গুরুত্বপূর্ণ ফাংশন, যা ব্যবহারকারীদের একটি টেবিলের মধ্যে নির্দিষ্ট মান অনুসন্ধান করতে সাহায্য করে। বিশেষ করে, যখন আপনি একটি কলামের মানের ভিত্তিতে অন্য একটি কলামের মান দেখতে চান, তখন LOOKUPVALUE ব্যবহার করা হয়।

এই ফাংশনটি সাধারণত VLOOKUP বা INDEX/MATCH এর মতো কাজ করে, যা Excel-এ ব্যবহৃত হয়, তবে এটি DAX-এর মধ্যে ডেটা মডেলিং এবং বিশ্লেষণের জন্য আরও শক্তিশালী এবং নমনীয়।


LOOKUPVALUE ফাংশন

LOOKUPVALUE ফাংশনটি একটি নির্দিষ্ট মানের জন্য column1 থেকে মান খুঁজে বের করে, যেখানে column2 একটি শর্ত পূর্ণ করে। এটি একটি কলামের মানের উপর ভিত্তি করে অন্য একটি কলামের মানের সন্ধান করতে ব্যবহৃত হয়।

Syntax:

LOOKUPVALUE(<result_column>, <search_column>, <search_value>)
  • <result_column>: সেই কলামটির নাম, যার মান আপনি খুঁজে বের করতে চান।
  • <search_column>: যে কলামে আপনি খোঁজ নিতে চান, অর্থাৎ যেখানে আপনার শর্ত চেক করা হবে।
  • <search_value>: সেই মানটি যা search_column-এ খোঁজা হবে।

অপশনাল (Optional): আপনি আরো search_column এবং search_value যুক্ত করতে পারেন যদি আপনার শর্তের উপর ভিত্তি করে একাধিক খোঁজ করতে হয়।


LOOKUPVALUE এর উদাহরণ

ধরা যাক, আপনার দুটি টেবিল আছে: একটি Sales টেবিল এবং একটি Products টেবিল। Sales টেবিলে ProductID এবং বিক্রির পরিমাণ (Amount) রয়েছে, এবং Products টেবিলে ProductID এবং ProductName রয়েছে। আপনি যদি Sales টেবিলের প্রতিটি ProductID এর জন্য ProductName খুঁজে বের করতে চান, তবে আপনি LOOKUPVALUE ব্যবহার করতে পারেন।

উদাহরণ ১: LOOKUPVALUE ফাংশন ব্যবহার করা

ProductName = LOOKUPVALUE(Products[ProductName], Products[ProductID], Sales[ProductID])

এখানে:

  • Products[ProductName]: এটি সেই কলাম, যার মান আমরা খুঁজে বের করতে চাই।
  • Products[ProductID]: এটি সেই কলাম, যেখানে আমরা খোঁজ নেব Sales[ProductID] এর মান অনুসারে।

এই ফাংশনটি Sales টেবিলের ProductID কলামের জন্য Products টেবিলের ProductName কলামের মান ফেরত দিবে।


একাধিক শর্তের জন্য LOOKUPVALUE ব্যবহার করা

LOOKUPVALUE ফাংশনটি একাধিক শর্তের ভিত্তিতেও কাজ করতে পারে, অর্থাৎ, আপনি একাধিক কলামকে খুঁজে বের করতে শর্ত যোগ করতে পারেন। উদাহরণস্বরূপ, ধরুন Sales টেবিলে ProductID এবং Region আছে, এবং Products টেবিলে ProductID এবং RegionName আছে। আপনি যদি ProductID এবং Region এর ভিত্তিতে RegionName খুঁজে বের করতে চান, তবে আপনি LOOKUPVALUE ফাংশনটি ব্যবহার করতে পারেন:

উদাহরণ ২: একাধিক শর্তের জন্য LOOKUPVALUE

RegionName = LOOKUPVALUE(Products[RegionName], Products[ProductID], Sales[ProductID], Products[Region], Sales[Region])

এখানে:

  • Products[RegionName]: এটি সেই কলাম, যার মান আমরা খুঁজে বের করতে চাই।
  • Products[ProductID] এবং Products[Region]: এই কলামগুলি অনুসারে খোঁজা হবে।

এই ফাংশনটি Sales টেবিলের ProductID এবং Region কলামের জন্য Products টেবিলের RegionName কলামের মান ফেরত দিবে।


LOOKUPVALUE এর সুবিধা

  1. নির্দিষ্ট ডেটা অনুসন্ধান করা: LOOKUPVALUE ফাংশনটি ব্যবহার করে আপনি একটি নির্দিষ্ট কলামের ভিত্তিতে অন্য একটি কলামের মান দ্রুত খুঁজে পেতে পারেন, যা বিশেষভাবে ব্যবসায়িক বিশ্লেষণের জন্য উপকারী।
  2. একাধিক শর্ত ব্যবহার: একাধিক শর্তের ভিত্তিতে মান অনুসন্ধান করা যায়, যা VLOOKUP বা INDEX/MATCH এর তুলনায় বেশি নমনীয়।
  3. ডেটার মধ্যে সম্পর্ক স্থাপন: যদি আপনার একাধিক টেবিল থাকে এবং আপনি তাদের মধ্যে সম্পর্ক তৈরি করতে চান, তবে LOOKUPVALUE ফাংশনটি উপযুক্ত টুল হতে পারে।

LOOKUPVALUE এর সীমাবদ্ধতা

  1. একাধিক ম্যাচ: যদি আপনার search_column-এ একাধিক মিল পাওয়া যায়, তবে LOOKUPVALUE শুধুমাত্র প্রথম মিলের মান ফেরত দেয়। তাই এটি নিশ্চিত করতে হবে যে search_column-এ প্রতিটি মানের জন্য শুধুমাত্র একটি একক মেলে।
  2. পারফরম্যান্স: বড় ডেটা সেটে LOOKUPVALUE ফাংশনটি কিছুটা ধীর গতিতে কাজ করতে পারে, কারণ এটি প্রতিবার একটি কলামের মান খুঁজে বের করতে ডেটার মধ্যে সার্চ করে।

সারাংশ

LOOKUPVALUE ফাংশনটি DAX-এর একটি শক্তিশালী টুল, যা একটি কলামের ভিত্তিতে অন্য কলামের মান খুঁজে বের করতে ব্যবহৃত হয়। এটি একাধিক শর্ত এবং সম্পর্ক ভিত্তিক ডেটা অনুসন্ধানে অত্যন্ত কার্যকরী। আপনি যখন Power BI, Power Pivot, বা SQL Server Analysis Services (SSAS)-এ ডেটা মডেলিং এবং বিশ্লেষণ করেন, তখন LOOKUPVALUE ফাংশনটি আপনাকে দ্রুত ডেটা লুকআপ এবং সম্পর্কিত মানগুলি বের করতে সাহায্য করবে।

LOOKUPVALUE ফাংশনটি ব্যবহারের মাধ্যমে আপনার ডেটা মডেল আরও জটিল এবং কার্যকরী হতে পারে, যেখানে একাধিক টেবিলের মধ্যে সম্পর্ক স্থাপন এবং ডেটার দ্রুত বিশ্লেষণ করা সহজ হয়।

Content added By

TreatAs এর মাধ্যমে Table Relationships তৈরি করা

69
69

DAX (Data Analysis Expressions) হলো একটি এক্সপ্রেশন ভাষা যা Power BI, Power Pivot, এবং SQL Server Analysis Services (SSAS) এর জন্য ব্যবহৃত হয়। TREATAS একটি অত্যন্ত শক্তিশালী ফাংশন যা DAX-এ table relationships তৈরি করতে ব্যবহৃত হয়। এটি table relationships এর উপর ভিত্তি করে গণনা বা বিশ্লেষণ করার প্রক্রিয়া সহজ করে তোলে, যেখানে সরাসরি physical relationships তৈরি না করেও দুটি টেবিলের মধ্যে সম্পর্ক স্থাপন করা যায়।

এই প্রবন্ধে, আমরা TREATAS ফাংশন এবং এর মাধ্যমে table relationships তৈরি করার প্রক্রিয়া এবং উদাহরণ আলোচনা করব।


TREATAS ফাংশন কি?

TREATAS ফাংশনটি একটি টেবিল বা কলামের মানগুলোকে অন্য একটি টেবিলের column বা table হিসেবে বিবেচনা করতে সাহায্য করে। এটি মূলত একটি virtual relationship তৈরি করে, যা filtering বা calculations এর জন্য ব্যবহৃত হয়, যখন সরাসরি relationship তৈরি করা সম্ভব নয় বা প্রয়োজন নেই।

Syntax:

TREATAS(<table>, <column1>, <column2>, ..., <columnN>)
  • : এটি একটি টেবিল বা এক্সপ্রেশন, যা আপনি সম্পর্ক তৈরি করতে চান।
  • , , ..., : একটি কলাম বা এক্সপ্রেশন যা অন্য টেবিলের কলামের সাথে সম্পর্কিত হবে।

TREATAS এর ব্যবহার

TREATAS ফাংশনটি সাধারণত virtual relationships তৈরি করতে ব্যবহৃত হয়, যেখানে আপনি ফিল্টার বা ক্যালকুলেশন করতে চান, তবে সরাসরি ডেটাবেসে physical relationships তৈরি না করেই। উদাহরণস্বরূপ, দুটি টেবিলের মধ্যে সম্পর্ক তৈরি করার জন্য যখন আপনি ডেটা মডেলিং-এর মাধ্যমে সম্পর্ক তৈরি করতে না চান, তখন TREATAS ব্যবহার করা যেতে পারে।


TREATAS ফাংশনের উদাহরণ

উদাহরণ ১: TREATAS এর মাধ্যমে সম্পর্ক তৈরি করা

ধরা যাক, আপনার কাছে দুটি টেবিল রয়েছে:

  1. Sales টেবিল, যেখানে বিক্রয় তথ্য রয়েছে।
  2. Products টেবিল, যেখানে পণ্যের তথ্য রয়েছে।

আপনি চান যে Sales টেবিলের ProductID কলাম এবং Products টেবিলের ProductID কলামের মধ্যে একটি সম্পর্ক তৈরি করা, তবে সরাসরি সম্পর্ক না বানিয়ে। TREATAS ফাংশন দিয়ে আপনি এই কাজটি করতে পারেন।

Total Sales for Products = 
CALCULATE(
    SUM(Sales[Amount]),
    TREATAS(Products[ProductID], Sales[ProductID])
)

এখানে:

  • TREATAS(Products[ProductID], Sales[ProductID]): এই অংশটি Sales টেবিলের ProductID কলাম এবং Products টেবিলের ProductID কলামের মধ্যে একটি virtual relationship তৈরি করছে।
  • CALCULATE ফাংশনের মাধ্যমে আপনি এই সম্পর্কের ভিত্তিতে Sales[Amount] এর যোগফল বের করছেন।

উদাহরণ ২: TREATAS এর মাধ্যমে আরও জটিল সম্পর্ক তৈরি করা

ধরা যাক, আপনার কাছে দুটি টেবিল:

  1. Sales টেবিল, যেখানে বিক্রয় তথ্য রয়েছে।
  2. Products টেবিল, যেখানে পণ্যের তথ্য রয়েছে।
  3. Regions টেবিল, যেখানে বিভিন্ন অঞ্চলের তথ্য রয়েছে।

আপনি চান যে, Sales টেবিলের ProductID কলাম এবং Products টেবিলের ProductID কলামের মধ্যে সম্পর্ক তৈরি করতে, এবং Regions টেবিলের RegionID কলাম এবং Sales টেবিলের RegionID কলামের মধ্যে সম্পর্ক তৈরি করতে। TREATAS ফাংশনের মাধ্যমে এটি করা যেতে পারে।

Sales by Region and Product = 
CALCULATE(
    SUM(Sales[Amount]),
    TREATAS(Products[ProductID], Sales[ProductID]),
    TREATAS(Regions[RegionID], Sales[RegionID])
)

এখানে:

  • প্রথম TREATAS(Products[ProductID], Sales[ProductID]) সম্পর্কটি Products এবং Sales টেবিলের ProductID কলামের মধ্যে একটি ভার্চুয়াল সম্পর্ক তৈরি করছে।
  • দ্বিতীয় TREATAS(Regions[RegionID], Sales[RegionID]) সম্পর্কটি Regions এবং Sales টেবিলের RegionID কলামের মধ্যে ভার্চুয়াল সম্পর্ক তৈরি করছে।
  • CALCULATE ফাংশনটি ব্যবহার করে আপনি এই সম্পর্কের ভিত্তিতে Sales[Amount] এর যোগফল বের করছেন।

TREATAS এর সুবিধা

  • Virtual Relationships: TREATAS সরাসরি সম্পর্ক তৈরি না করেও দুইটি টেবিলের মধ্যে virtual relationship তৈরি করতে সহায়ক, যা কার্যকরী বিশ্লেষণ তৈরি করতে সাহায্য করে।
  • Complex Calculations: এটি বিভিন্ন টেবিল বা কলামের মধ্যে সম্পর্ক তৈরি করে এবং সেই সম্পর্কের ভিত্তিতে কাস্টম ক্যালকুলেশন তৈরি করা সহজ করে।
  • No Need for Physical Relationships: কখনও কখনও একটি ডেটাবেসে সরাসরি সম্পর্ক তৈরি করা সম্ভব বা প্রয়োজনীয় নয়। তখন TREATAS ব্যবহার করা যেতে পারে।

সারাংশ

TREATAS হল একটি DAX ফাংশন যা দুটি টেবিলের মধ্যে virtual relationship তৈরি করে। এটি বিশেষভাবে ব্যবহৃত হয় যখন আপনি ডেটাবেসে সরাসরি সম্পর্ক তৈরি না করেও দুটি টেবিলের মধ্যে filtering বা aggregation করতে চান। DAX-এ TREATAS এর মাধ্যমে আপনি শর্তাধীন বিশ্লেষণ, কাস্টম ক্যালকুলেশন এবং জটিল সম্পর্ক তৈরি করতে সক্ষম হন, যা আপনাকে আরও উন্নত ডেটা বিশ্লেষণ করতে সাহায্য করে।

Content added By
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion