DAX (Data Analysis Expressions) হলো একটি শক্তিশালী এক্সপ্রেশন ভাষা যা Power BI, PowerPivot, এবং SQL Server Analysis Services (SSAS)-এ ব্যবহৃত হয় ডেটা বিশ্লেষণ এবং কাস্টম ক্যালকুলেশন তৈরি করার জন্য। Measures হল DAX-এর একটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা ডাইনামিক ডেটা গণনা করতে ব্যবহৃত হয়। Measures হল কাস্টম ক্যালকুলেশন যা dynamic aggregation এবং context-specific calculations করতে সাহায্য করে, এবং এটি filter context অনুযায়ী ফলাফল পরিবর্তন করে।
এই প্রবন্ধে, আমরা Measures এবং এর মাধ্যমে dynamic data calculation কিভাবে করা যায় তা বিস্তারিতভাবে আলোচনা করব। Measures কিভাবে DAX expressions ব্যবহার করে এক্সপ্রেশন বা ফাংশনগুলির উপর নির্ভরশীল ক্যালকুলেশন তৈরি করতে সহায়ক হয়, তা দেখানো হবে।
১. Measures এর মৌলিক ধারণা
Measures হল DAX ফাংশনের মাধ্যমে তৈরি হওয়া কাস্টম ক্যালকুলেশন বা এক্সপ্রেশন যা একটি ডাইনামিক আউটপুট প্রদান করে, যা filter context অনুযায়ী পরিবর্তিত হয়। Measures সাধারণত aggregations (যেমন SUM, AVERAGE, COUNT, ইত্যাদি) বা কাস্টম এক্সপ্রেশন হিসাবে ব্যবহৃত হয় এবং ডেটাকে dynamic ভাবে গণনা করতে সক্ষম।
Measures-এর সুবিধা:
- Dynamic Calculation: Measures এর ফলাফল পরিবর্তিত হয় filter context বা user interaction এর ওপর ভিত্তি করে। যেমন slicers, filters, এবং drill-through থেকে যে ডেটা নির্বাচিত হয় তার উপর ভিত্তি করে ফলাফল পরিবর্তিত হয়।
- Memory Efficient: Measures কোডের মাধ্যমে ডেটা গণনা করে এবং এটি ডেটাবেসে stored হয় না, তাই এটি calculation memory কম খরচে পরিচালনা করে।
- Context-Sensitive: Measures ফিল্টার এবং visual context অনুযায়ী ফলাফল পরিবর্তন করে।
২. Measure তৈরি করা
একটি Measure তৈরি করতে হলে, DAX ফাংশনের একটি এক্সপ্রেশন ব্যবহার করা হয়। DAX এক্সপ্রেশন সাধারণত aggregate functions, logical functions, বা mathematical expressions এর মাধ্যমে তৈরি হয়।
Example 1: Total Sales Measure
ধরা যাক, আপনি Sales টেবিলের মোট বিক্রয় পরিমাণ নির্ধারণ করতে চান, যেখানে Amount কলামটি বিক্রয়ের পরিমাণ ধারণ করে। আপনি একটি Measure তৈরি করতে পারেন:
Total Sales = SUM(Sales[Amount])
এখানে, SUM ফাংশনটি Sales[Amount] কলামের সমস্ত মান যোগ করবে এবং একটি measure তৈরি করবে যা Total Sales হিসেবে প্রদর্শিত হবে।
Example 2: Average Sales Measure
যদি আপনি Sales টেবিলের গড় বিক্রয় পরিমাণ বের করতে চান, তবে আপনি AVERAGE ফাংশন ব্যবহার করতে পারেন:
Average Sales = AVERAGE(Sales[Amount])
এখানে, AVERAGE ফাংশনটি Sales[Amount] কলামের গড় মান নির্ধারণ করবে এবং সেই মানকে Average Sales হিসেবে প্রদর্শন করবে।
৩. Measures এর মাধ্যমে Dynamic Calculation
Measures ব্যবহার করে ডাইনামিক ডেটা গণনা করা সম্ভব, যা filter context অনুযায়ী পরিবর্তিত হয়। এটি আপনাকে রিপোর্ট বা ড্যাশবোর্ডে ইন্টারেকটিভ ক্যালকুলেশন করতে সহায়ক হয়।
Example: Sales in Selected Year
ধরা যাক, আপনি Sales টেবিল থেকে একটি measure তৈরি করতে চান যা নির্দিষ্ট একটি বছরে বিক্রয়ের পরিমাণ প্রদর্শন করবে। এখানে Year কলামটি তারিখের তথ্য ধারণ করছে এবং ব্যবহারকারী Year Slicer এর মাধ্যমে বছর নির্বাচন করতে পারবেন।
Sales in Selected Year =
CALCULATE(SUM(Sales[Amount]), Sales[Year] = SELECTEDVALUE(Year[Year]))
এখানে:
- CALCULATE ফাংশনটি SUM ফাংশনটি পরিবর্তন করবে এবং Sales[Year] কলামের মধ্যে নির্বাচিত Year অনুযায়ী Amount এর যোগফল প্রদর্শন করবে।
- SELECTEDVALUE(Year[Year]) ফাংশনটি Year Slicer থেকে নির্বাচিত বছরটির মান ফিরিয়ে দেবে।
Real-World Application:
এই ধরনের dynamic measures ব্যবসায়িক বিশ্লেষণের জন্য খুবই উপকারী, যেখানে ব্যবহারকারী বছরের মধ্যে তুলনা বা অন্য যেকোনো শর্তের ভিত্তিতে ডেটা বিশ্লেষণ করতে পারে।
৪. Dynamic Filters with Measures
Measures ব্যবহার করে আপনি dynamic filters প্রয়োগ করতে পারেন যা ব্যবহারকারীর নির্বাচনের উপর ভিত্তি করে পরিবর্তিত হয়। এটি filter context এর উপর নির্ভরশীল হয় এবং ইন্টার্যাকটিভ রিপোর্টে কাস্টম ক্যালকুলেশন তৈরি করতে সহায়ক।
Example: Total Sales for a Specific Region
ধরা যাক, আপনি Sales টেবিল থেকে Region অনুযায়ী বিক্রয় পরিমাণ বের করতে চান। এখানে Region একটি সিলেক্টেবল ফিল্টার (slicer) হবে:
Total Sales by Region =
CALCULATE(SUM(Sales[Amount]), Sales[Region] = SELECTEDVALUE(Region[Region]))
এখানে:
- CALCULATE ফাংশনটি Sales[Amount] এর মোট যোগফল বের করবে, তবে শুধুমাত্র সিলেক্ট করা Region অনুযায়ী ফলাফল প্রদর্শন করবে।
- SELECTEDVALUE ফাংশনটি সিলেক্ট করা Region ফিরিয়ে দেবে এবং সেই অনুযায়ী ফলাফল প্রদান করবে।
Real-World Application:
এ ধরনের কাস্টম ক্যালকুলেশন ব্যবহারকারীদের বিভিন্ন region, category, বা time period এর ওপর ভিত্তি করে বিক্রয়ের পরিমাণ বা অন্য মেট্রিক্স ট্র্যাক করতে সহায়ক হয়।
৫. Use of Measures for Conditional Aggregations
Measures ব্যবহার করে আপনি কন্ডিশনাল ক্যালকুলেশন তৈরি করতে পারেন, যেমন একটি শর্তে বিক্রয়ের পরিমাণ, লাভ বা অন্য যেকোনো মেট্রিক্স নির্ধারণ করা।
Example: Sales Greater than 1000
ধরা যাক, আপনি Sales টেবিল থেকে একটি measure তৈরি করতে চান, যা শুধু সেই বিক্রয়ের পরিমাণ গণনা করবে যেগুলির Amount 1000 এর বেশি।
Sales Greater than 1000 =
CALCULATE(SUM(Sales[Amount]), Sales[Amount] > 1000)
এখানে, CALCULATE ফাংশনটি Sales[Amount] এর মোট যোগফল বের করবে, তবে শুধুমাত্র সেই রেকর্ডগুলির জন্য যেগুলির Amount 1000 এর বেশি।
Real-World Application:
এটি এমন একটি পরিস্থিতিতে ব্যবহৃত হতে পারে যেখানে আপনি শুধুমাত্র উচ্চ বিক্রয়ের (high-value sales) পরিমাণ গণনা করতে চান, যেমন একটি প্রোডাক্ট ক্যাটেগরির জন্য বা একটি নির্দিষ্ট মার্কেটের জন্য।
৬. Time Intelligence Measures
Time Intelligence ফাংশনগুলি DAX এর গুরুত্বপূর্ণ বৈশিষ্ট্য, যা সময় ভিত্তিক ক্যালকুলেশন করতে সহায়ক। যেমন Year-to-Date (YTD), Month-to-Date (MTD), Quarter-to-Date (QTD) ইত্যাদি।
Example: Year-to-Date (YTD) Sales
ধরা যাক, আপনি Sales টেবিলের জন্য Year-to-Date Sales ক্যালকুলেশন তৈরি করতে চান:
YTD Sales = TOTALYTD(SUM(Sales[Amount]), Sales[Date])
এটি Sales[Amount] এর Year-to-Date মোট পরিমাণ নির্ধারণ করবে, যেখানে Sales[Date] কলামটি তারিখের তথ্য ধারণ করছে।
Real-World Application:
YTD Sales ক্যালকুলেশন ব্যবসায়িক পরিকল্পনাকারীদের জন্য গুরুত্বপূর্ণ, যাতে তারা বছরের শুরু থেকে বর্তমান সময় পর্যন্ত বিক্রয় প্রবণতা বিশ্লেষণ করতে পারে।
সারাংশ
DAX Measures হল এক্সপ্রেশন যা dynamic data calculations তৈরি করতে ব্যবহৃত হয়, এবং এটি filter context ও row context অনুযায়ী পরিবর্তিত হতে পারে। Measures ব্যবহার করে আপনি aggregations, conditional calculations, time intelligence এবং dynamic filtering করতে পারেন, যা Power BI বা Excel এ বিশ্লেষণ এবং রিপোর্ট তৈরির জন্য খুবই কার্যকরী। DAX Measures এর মাধ্যমে আপনি অত্যন্ত দক্ষ এবং ইন্টারেকটিভ রিপোর্ট তৈরি করতে পারবেন যা ব্যবসায়িক সিদ্ধান্ত গ্রহণে সহায়ক।
Read more