DAX (Data Analysis Expressions) একটি শক্তিশালী ভাষা যা Power BI, PowerPivot, এবং SQL Server Analysis Services (SSAS)-এ ব্যবহৃত হয় ডেটা বিশ্লেষণ এবং কাস্টম ক্যালকুলেশন তৈরির জন্য। Time Intelligence Functions DAX-এ ব্যবহৃত বিশেষ ফাংশন যা সময় সম্পর্কিত বিশ্লেষণ করতে ব্যবহৃত হয়। এই ফাংশনগুলির মাধ্যমে আপনি year-to-date (YTD), quarter-to-date (QTD), month-to-date (MTD), moving averages, comparisons between periods, running totals, এবং আরও অনেক সময়ভিত্তিক বিশ্লেষণ করতে পারেন।
এই প্রবন্ধে, আমরা DAX Time Intelligence Functions এর ব্যবহার এবং কীভাবে এই ফাংশনগুলির মাধ্যমে কাস্টম ক্যালকুলেশন করা যায় তা বিস্তারিতভাবে আলোচনা করব।
১. TOTALYTD, TOTALQTD, TOTALMTD
TOTALYTD, TOTALQTD, এবং TOTALMTD ফাংশনগুলি year-to-date, quarter-to-date, এবং month-to-date মোট হিসাব করতে ব্যবহৃত হয়।
Syntax:
TOTALYTD(<expression>, <dates>, [<filter1>], [<filter2>], ...)
TOTALQTD(<expression>, <dates>, [<filter1>], [<filter2>], ...)
TOTALMTD(<expression>, <dates>, [<filter1>], [<filter2>], ...)
- : এক্সপ্রেশন বা গণনা যা আপনি করতে চান, যেমন SUM(Sales[Amount])।
- : ডেটা কলাম, যা Date Table থেকে আসবে।
- : অতিরিক্ত ফিল্টার যা আপনি প্রয়োগ করতে চান।
Example: TOTALYTD
ধরা যাক, আপনি Sales টেবিলের Amount এর Year-to-Date (YTD) মোট পরিমাণ বের করতে চান:
YTD Sales = TOTALYTD(SUM(Sales[Amount]), Sales[Date])
এটি Sales[Amount] এর YTD মোট পরিমাণ বের করবে, যেখানে Sales[Date] হল তারিখের তথ্য।
Example: TOTALQTD
আপনি যদি Sales টেবিলের Quarter-to-Date (QTD) মোট বিক্রয় পরিমাণ বের করতে চান:
QTD Sales = TOTALQTD(SUM(Sales[Amount]), Sales[Date])
এটি Sales[Amount] এর QTD মোট বিক্রয় পরিমাণ বের করবে।
Example: TOTALMTD
এখন যদি আপনি Sales টেবিলের Month-to-Date (MTD) বিক্রয় পরিমাণ বের করতে চান:
MTD Sales = TOTALMTD(SUM(Sales[Amount]), Sales[Date])
এটি Sales[Amount] এর MTD মোট বিক্রয় পরিমাণ বের করবে।
২. SAMEPERIODLASTYEAR
SAMEPERIODLASTYEAR ফাংশনটি Time Intelligence ক্যালকুলেশনে ব্যবহৃত হয়, যখন আপনি বর্তমান সময়ের সাথে গত বছরের একই সময়ের তুলনা করতে চান।
Syntax:
SAMEPERIODLASTYEAR(<dates>)
- : একটি ডেটা কলাম যা Date Table থেকে আসবে।
Example:
ধরা যাক, আপনি Sales টেবিল থেকে Amount এর গত বছরের একই সময়ের বিক্রয় পরিমাণ বের করতে চান:
Sales Last Year = CALCULATE(SUM(Sales[Amount]), SAMEPERIODLASTYEAR(Sales[Date]))
এটি Sales[Amount] এর previous year একই সময়ের বিক্রয় পরিমাণ বের করবে।
৩. PARALLELPERIOD
PARALLELPERIOD ফাংশনটি একটি নির্দিষ্ট সময় পরিমাণ (যেমন, 1 মাস, 1 বছর) পার্থক্য হিসাব করতে ব্যবহৃত হয়। এটি ব্যবহার করে আপনি নির্দিষ্ট সময় পরিমাণের আগের বা পরবর্তী সময়ের তুলনা করতে পারেন।
Syntax:
PARALLELPERIOD(<dates>, <number_of_intervals>, <interval>)
- : একটি ডেটা কলাম।
- <number_of_intervals>: আপনি কত সংখ্যক পরিমাণ (যেমন, 1 মাস বা 1 বছর) তুলনা করতে চান।
- : একটি তারিখের পরিমাণ যা আপনি তুলনা করতে চান, যেমন YEAR, MONTH, DAY।
Example:
ধরা যাক, আপনি Sales টেবিল থেকে Amount এর previous month বিক্রয় পরিমাণ বের করতে চান:
Previous Month Sales = CALCULATE(SUM(Sales[Amount]), PARALLELPERIOD(Sales[Date], -1, MONTH))
এটি Sales[Amount] এর previous month বিক্রয় পরিমাণ বের করবে।
৪. DATEADD
DATEADD ফাংশনটি একটি তারিখে নির্দিষ্ট সময় (যেমন 1 মাস, 1 বছর) যোগ বা বিয়োগ করার জন্য ব্যবহৃত হয়।
Syntax:
DATEADD(<dates>, <number_of_intervals>, <interval>)
- : একটি ডেটা কলাম।
- <number_of_intervals>: সংখ্যা, যেটি দ্বারা পরিমাণ যোগ বা বিয়োগ করতে হবে।
- : একটি সময় একক, যেমন YEAR, MONTH, DAY।
Example:
ধরা যাক, আপনি Sales টেবিল থেকে Amount এর 1 month ago বিক্রয় পরিমাণ বের করতে চান:
Sales Last Month = CALCULATE(SUM(Sales[Amount]), DATEADD(Sales[Date], -1, MONTH))
এটি Sales[Amount] এর 1 month ago বিক্রয় পরিমাণ বের করবে।
৫. DATESYTD, DATESMTD, DATESQTD
DATESYTD, DATESMTD, এবং DATESQTD ফাংশনগুলি Time Intelligence ক্যালকুলেশনে ব্যবহৃত হয়, যা বছরের শুরু থেকে, মাসের শুরু থেকে, বা ত্রৈমাসিকের শুরু থেকে ডেটা সংগ্রহ করতে সহায়ক।
Syntax:
DATESYTD(<dates>, [<year_end_date>])
DATESMTD(<dates>)
DATESQTD(<dates>)
- : একটি ডেটা কলাম যা Date Table থেকে আসবে।
- [<year_end_date>]: একটি ঐচ্ছিক পরামর্শ যা বছর শেষ তারিখ নির্ধারণ করতে ব্যবহৃত হয়।
Example:
আপনি যদি Sales টেবিল থেকে Year-to-Date বিক্রয় পরিমাণ বের করতে চান:
YTD Sales = CALCULATE(SUM(Sales[Amount]), DATESYTD(Sales[Date]))
এটি Sales[Amount] এর Year-to-Date (YTD) বিক্রয় পরিমাণ বের করবে।
৬. TIMEINTELLIGENCE ফাংশনগুলি ব্যবহারের সেরা প্র্যাকটিস
- Date Table: Time Intelligence ফাংশনগুলির সঠিক কাজের জন্য একটি সঠিক Date Table তৈরি করা অত্যন্ত গুরুত্বপূর্ণ। আপনি একটি Date Table তৈরি করতে পারেন যেটি বছরের সমস্ত দিন, মাস, ত্রৈমাসিক এবং অন্যান্য সময়-ভিত্তিক ফিচার ধারণ করে।
- Column References: Date column গুলি সঠিকভাবে relationship তৈরি করে সঠিকভাবে ফিল্টার কনটেক্সট ব্যবহার করুন।
- Avoid Nested Calculations: Time Intelligence ক্যালকুলেশনগুলির মধ্যে nested ফাংশন ব্যবহার করার সময় পারফরম্যান্স কম হতে পারে, তাই যতটা সম্ভব সোজাসুজি ক্যালকুলেশন করুন।
সারাংশ
Time Intelligence Functions DAX-এ একটি অত্যন্ত শক্তিশালী টুল যা ডেটা বিশ্লেষণ এবং সময় ভিত্তিক ক্যালকুলেশন তৈরির জন্য ব্যবহৃত হয়। TOTALYTD, SAMEPERIODLASTYEAR, PARALLELPERIOD, DATEADD, DATESYTD ইত্যাদি ফাংশনগুলি ব্যবহার করে আপনি time-based aggregations, comparisons between periods, এবং dynamic time-series analysis করতে পারেন। এই ফাংশনগুলির সঠিক ব্যবহার Power BI এবং Excel এর মধ্যে সময় ভিত্তিক বিশ্লেষণ এবং রিপোর্ট তৈরির প্রক্রিয়াকে আরও কার্যকরী করে তোলে।
DAX (Data Analysis Expressions) হল একটি শক্তিশালী এক্সপ্রেশন ভাষা যা Power BI, PowerPivot, এবং SQL Server Analysis Services (SSAS)-এ ব্যবহৃত হয়। Time Intelligence Functions হল DAX-এ একটি বিশেষ ধরনের ফাংশন যা time-based calculations করতে ব্যবহৃত হয়। এই ফাংশনগুলির মাধ্যমে আপনি time periods (যেমন, YTD, MTD, QTD), year-over-year comparison, date range analysis ইত্যাদি সহজে করতে পারেন।
Time Intelligence Functions একটি নির্দিষ্ট সময়সীমার মধ্যে ডেটার উপর গণনা করে এবং date table বা time dimension এর সাথে কাজ করে। এই ফাংশনগুলির সাহায্যে আপনি ডেটার সাথে সম্পর্কিত time periods অনুযায়ী ডেটা বিশ্লেষণ এবং তুলনা করতে পারেন।
১. Time Intelligence Functions কী?
Time Intelligence Functions এমন ফাংশন যা date columns বা date tables এর সাথে কাজ করে এবং time-based aggregations বা calculations সম্পন্ন করে। এই ফাংশনগুলি time context ব্যবহার করে ডেটার ভিন্ন ভিন্ন সময়ভিত্তিক বিশ্লেষণ করতে সাহায্য করে, যেমন:
- Year-to-Date (YTD)
- Month-to-Date (MTD)
- Quarter-to-Date (QTD)
- Same Period Last Year (SPLY)
- Moving Averages
২. Time Intelligence Functions এর উদাহরণ
YTD (Year-to-Date)
YTD ফাংশন ব্যবহার করে আপনি একটি নির্দিষ্ট বছরের প্রথম দিন থেকে বর্তমান তারিখ পর্যন্ত মোট মান (যেমন, বিক্রয়, লাভ ইত্যাদি) গণনা করতে পারেন।
Syntax:
TOTALYTD(<expression>, <dates_column>, [<filter>], [<year_end_date>])
উদাহরণ: ধরা যাক, আপনি Sales টেবিলের Amount কলামের Year-to-Date (YTD) মোট বিক্রয় গণনা করতে চান:
YTD Sales = TOTALYTD(SUM(Sales[Amount]), Sales[Date])
এটি Sales[Amount] এর মোট যোগফল বের করবে, যেখানে Sales[Date] কলামের তারিখ ব্যবহার করে বছরের প্রথম দিন থেকে বর্তমান তারিখ পর্যন্ত হিসাব করা হবে।
MTD (Month-to-Date)
MTD ফাংশনটি বর্তমান মাসের প্রথম দিন থেকে বর্তমান তারিখ পর্যন্ত মোট বিক্রয় বা অন্য কোন পরিমাণ গণনা করার জন্য ব্যবহৃত হয়।
Syntax:
TOTALMTD(<expression>, <dates_column>, [<filter>], [<month_end_date>])
উদাহরণ: ধরা যাক, আপনি Sales টেবিলের Amount কলামের Month-to-Date (MTD) মোট বিক্রয় গণনা করতে চান:
MTD Sales = TOTALMTD(SUM(Sales[Amount]), Sales[Date])
এটি Sales[Amount] এর মোট যোগফল বের করবে, যেখানে Sales[Date] কলামের তারিখ ব্যবহার করে মাসের প্রথম দিন থেকে বর্তমান তারিখ পর্যন্ত হিসাব করা হবে।
QTD (Quarter-to-Date)
QTD ফাংশনটি একইভাবে MTD এবং YTD এর মতো কাজ করে, তবে এটি quarter-to-date হিসাব করতে ব্যবহৃত হয়, অর্থাৎ, বর্তমান ত্রৈমাসিকের প্রথম দিন থেকে বর্তমান তারিখ পর্যন্ত।
Syntax:
TOTALQTD(<expression>, <dates_column>, [<filter>], [<quarter_end_date>])
উদাহরণ: ধরা যাক, আপনি Sales টেবিলের Amount কলামের Quarter-to-Date (QTD) মোট বিক্রয় গণনা করতে চান:
QTD Sales = TOTALQTD(SUM(Sales[Amount]), Sales[Date])
এটি Sales[Amount] এর মোট যোগফল বের করবে, যেখানে Sales[Date] কলামের তারিখ ব্যবহার করে ত্রৈমাসিকের প্রথম দিন থেকে বর্তমান তারিখ পর্যন্ত হিসাব করা হবে।
Same Period Last Year (SPLY)
SPLY ফাংশনটি আপনাকে গত বছরের একই সময়ের ডেটা দেখতে সহায়ক হয়। এটি বিশেষত year-over-year (YoY) তুলনা করতে ব্যবহৃত হয়।
Syntax:
SAMEPERIODLASTYEAR(<dates_column>)
উদাহরণ: ধরা যাক, আপনি Sales টেবিলের Amount কলামের গত বছরের একই সময়ের বিক্রয় পরিমাণ দেখতে চান:
Sales Last Year = CALCULATE(SUM(Sales[Amount]), SAMEPERIODLASTYEAR(Sales[Date]))
এটি Sales[Amount] এর মোট যোগফল বের করবে, তবে Sales[Date] কলাম থেকে গত বছরের একই সময়ের বিক্রয় পরিমাণ বের করবে।
৩. Moving Averages
Moving Averages হল একটি সময়ভিত্তিক ক্যালকুলেশন যা ডেটার গতিপথ বা প্রবণতা নির্ধারণ করতে সাহায্য করে। এটি সাধারণত time series analysis বা trend analysis এ ব্যবহৃত হয়।
Syntax:
AVERAGEX(<table>, <expression>)
উদাহরণ: ধরা যাক, আপনি Sales টেবিলের জন্য 3 মাসের গড় বিক্রয় পরিমাণ বের করতে চান:
3-Month Moving Average =
AVERAGEX(
DATESINPERIOD(Sales[Date], MAX(Sales[Date]), -3, MONTH),
Sales[Amount]
)
এটি Sales[Amount] এর 3 মাসের গড় বিক্রয় পরিমাণ বের করবে, যেখানে Sales[Date] কলামের সর্বশেষ তারিখ থেকে 3 মাসের ডেটা বিবেচনায় নেওয়া হবে।
৪. Time Intelligence Functions এর সুবিধা এবং ব্যবহার
Time Intelligence Functions ব্যবহারের সুবিধাগুলি নিম্নরূপ:
- Year-over-Year (YoY) Comparison: এই ফাংশনগুলি SPLY, YoY growth ইত্যাদির জন্য ব্যবহৃত হয়, যাতে আপনি বছরের তুলনায় সময়ের সাথে বিক্রয় বা অন্যান্য মেট্রিক্সের প্রবণতা বিশ্লেষণ করতে পারেন।
- Dynamic Analysis: এগুলি আপনাকে real-time বা dynamic calculations করতে সহায়ক, যা filters বা slicers এর মাধ্যমে পরিবর্তিত হতে পারে।
- Improved Reporting: Time-based aggregations যেমন YTD, QTD, MTD রিপোর্ট তৈরি করার জন্য খুবই কার্যকরী, বিশেষ করে যখন ডেটার উপর নির্দিষ্ট সময়সীমার বিশ্লেষণ করতে হয়।
সারাংশ
Time Intelligence Functions DAX-এর অত্যন্ত গুরুত্বপূর্ণ অংশ যা time-based calculations এবং aggregations করতে ব্যবহৃত হয়। এগুলি আপনাকে time periods অনুসারে ডেটার বিশ্লেষণ করতে সহায়ক, যেমন YTD, MTD, QTD, SPLY, এবং Moving Averages। Power BI, Excel, বা SSAS ব্যবহার করে time intelligence ডেটা বিশ্লেষণ, রিপোর্ট তৈরি, এবং trend analysis এর জন্য অত্যন্ত কার্যকরী। Time Intelligence Functions আপনার ডেটা বিশ্লেষণকে আরও সঠিক, গভীর এবং সময়ানুগ করে তোলে।
DAX (Data Analysis Expressions) হল একটি এক্সপ্রেশন ভাষা যা Power BI, PowerPivot, এবং SQL Server Analysis Services (SSAS)-এ ব্যবহৃত হয় ডেটা বিশ্লেষণ এবং কাস্টম ক্যালকুলেশন তৈরির জন্য। DAX-এ date calculations এবং time period calculations খুবই গুরুত্বপূর্ণ এবং এগুলি ব্যবহৃত হয় বিভিন্ন সময়ভিত্তিক বিশ্লেষণ করতে, যেমন Year-to-Date (YTD), Month-to-Date (MTD), এবং Quarter-to-Date (QTD) ক্যালকুলেশন।
এই প্রবন্ধে, আমরা DAX Date Functions এবং Time Period Calculations সম্পর্কিত ফাংশনগুলো এবং তাদের ব্যবহার নিয়ে আলোচনা করব।
১. DAX Date Functions
DAX Date Functions ব্যবহার করে আপনি date columns এবং date tables এর মাধ্যমে বিভিন্ন সময় ভিত্তিক বিশ্লেষণ তৈরি করতে পারেন। DAX-এ টাইম ইনটেলিজেন্স ক্যালকুলেশন করার জন্য অনেক ফাংশন রয়েছে, যেমন DATE, YEAR, MONTH, DAY, TODAY, NOW, DATESINPERIOD, SAMEPERIODLASTYEAR ইত্যাদি।
Commonly Used Date Functions:
TODAY():
- এটি বর্তমান দিনের তারিখ প্রদান করে।
Current Date = TODAY()NOW():
- এটি বর্তমান তারিখ এবং সময় প্রদান করে।
Current DateTime = NOW()DATE():
- এটি একটি নির্দিষ্ট তারিখ তৈরি করতে ব্যবহৃত হয়।
Specific Date = DATE(2024, 12, 15)YEAR(), MONTH(), DAY():
- এগুলি একটি তারিখ থেকে বছর, মাস বা দিন বের করতে ব্যবহৃত হয়।
Year = YEAR(Sales[Date]) Month = MONTH(Sales[Date]) Day = DAY(Sales[Date])DATESINPERIOD():
- এটি একটি নির্দিষ্ট সময়ের মধ্যে ডেটার পরিসীমা নির্ধারণ করতে ব্যবহৃত হয়।
Last 30 Days Sales = CALCULATE(SUM(Sales[Amount]), DATESINPERIOD(Sales[Date], TODAY(), -30, DAY))
২. Time Period Calculations (YTD, MTD, QTD)
Time Period Calculations হল টাইম ইনটেলিজেন্স ক্যালকুলেশনের একটি অংশ যা আপনাকে সময়ের ভিত্তিতে ডেটা বিশ্লেষণ করতে সহায়তা করে। Year-to-Date (YTD), Month-to-Date (MTD), এবং Quarter-to-Date (QTD) হিসাব করা DAX-এ খুবই সাধারণ এবং গুরুত্বপূর্ণ।
Year-to-Date (YTD) Calculation
YTD ক্যালকুলেশন বছরের শুরু থেকে বর্তমান তারিখ পর্যন্ত মোট মান হিসাব করতে ব্যবহৃত হয়। এই ক্যালকুলেশনটি TOTALYTD ফাংশন দিয়ে করা যায়।
Syntax:
TOTALYTD(<expression>, <dates>, [<filter>])
- : ক্যালকুলেশন যা আপনি করতে চান (যেমন, SUM, AVERAGE ইত্যাদি)।
- : আপনার date column।
- : কোনো অতিরিক্ত শর্ত (ঐচ্ছিক)।
Example:
ধরা যাক, আপনি Sales টেবিল থেকে বছরের শুরু থেকে বর্তমান তারিখ পর্যন্ত Amount এর যোগফল বের করতে চান:
YTD Sales = TOTALYTD(SUM(Sales[Amount]), Sales[Date])
এটি Sales[Amount] এর Year-to-Date মোট বিক্রয় পরিমাণ নির্ধারণ করবে, যেখানে Sales[Date] কলামটি তারিখের তথ্য ধারণ করছে।
Month-to-Date (MTD) Calculation
MTD ক্যালকুলেশন মাসের শুরু থেকে বর্তমান তারিখ পর্যন্ত মোট মান হিসাব করতে ব্যবহৃত হয়। এটি TOTALMTD ফাংশনের মাধ্যমে করা হয়।
Syntax:
TOTALMTD(<expression>, <dates>, [<filter>])
- : ক্যালকুলেশন যা আপনি করতে চান (যেমন, SUM, AVERAGE ইত্যাদি)।
- : আপনার date column।
- : কোনো অতিরিক্ত শর্ত (ঐচ্ছিক)।
Example:
ধরা যাক, আপনি Sales টেবিল থেকে মাসের শুরু থেকে বর্তমান তারিখ পর্যন্ত Amount এর যোগফল বের করতে চান:
MTD Sales = TOTALMTD(SUM(Sales[Amount]), Sales[Date])
এটি Sales[Amount] এর Month-to-Date মোট বিক্রয় পরিমাণ নির্ধারণ করবে, যেখানে Sales[Date] কলামটি তারিখের তথ্য ধারণ করছে।
Quarter-to-Date (QTD) Calculation
QTD ক্যালকুলেশন ত্রৈমাসিক (Quarter) শুরু থেকে বর্তমান তারিখ পর্যন্ত মোট মান হিসাব করতে ব্যবহৃত হয়। এটি TOTALQTD ফাংশনের মাধ্যমে করা হয়।
Syntax:
TOTALQTD(<expression>, <dates>, [<filter>])
- : ক্যালকুলেশন যা আপনি করতে চান (যেমন, SUM, AVERAGE ইত্যাদি)।
- : আপনার date column।
- : কোনো অতিরিক্ত শর্ত (ঐচ্ছিক)।
Example:
ধরা যাক, আপনি Sales টেবিল থেকে ত্রৈমাসিক (Quarter) শুরু থেকে বর্তমান তারিখ পর্যন্ত Amount এর যোগফল বের করতে চান:
QTD Sales = TOTALQTD(SUM(Sales[Amount]), Sales[Date])
এটি Sales[Amount] এর Quarter-to-Date মোট বিক্রয় পরিমাণ নির্ধারণ করবে, যেখানে Sales[Date] কলামটি তারিখের তথ্য ধারণ করছে।
৩. SAMEPERIODLASTYEAR (Time Intelligence)
SAMEPERIODLASTYEAR ফাংশনটি একটি সময়ের তুলনায় গত বছর একই সময়ের তথ্য বের করতে ব্যবহৃত হয়।
Syntax:
SAMEPERIODLASTYEAR(<dates>)
- : একটি date column।
Example:
ধরা যাক, আপনি গত বছরের একই সময়ের বিক্রয়ের পরিমাণ বের করতে চান:
Last Year Sales = CALCULATE(SUM(Sales[Amount]), SAMEPERIODLASTYEAR(Sales[Date]))
এটি Sales[Amount] এর Last Year বিক্রয়ের পরিমাণ নির্ধারণ করবে, যেখানে Sales[Date] কলামটি তারিখের তথ্য ধারণ করছে।
৪. PARALLELPERIOD (Time Intelligence)
PARALLELPERIOD ফাংশনটি একটি নির্দিষ্ট সময় পরিমাণের জন্য ডেটার মান বের করতে ব্যবহৃত হয়, যেমন 1 মাস, 1 বছর আগের তুলনা করতে।
Syntax:
PARALLELPERIOD(<dates>, <number_of_periods>, <period_type>)
- : একটি date column।
- <number_of_periods>: আপনি কতটা সময় পেছনে বা সামনে যেতে চান (যেমন, 1 মাস, 1 বছর)।
- <period_type>: সময়ের একক যা হতে পারে DAY, MONTH, QUARTER, YEAR।
Example:
ধরা যাক, আপনি গত 3 মাসের বিক্রয় পরিমাণ বের করতে চান:
Sales Last 3 Months = CALCULATE(SUM(Sales[Amount]), PARALLELPERIOD(Sales[Date], -3, MONTH))
এটি Sales[Amount] এর গত ৩ মাসের বিক্রয় পরিমাণ নির্ধারণ করবে।
সারাংশ
DAX Date Functions এবং Time Period Calculations (যেমন YTD, MTD, QTD) ডেটার উপর time-based analysis করতে ব্যবহৃত হয় এবং ব্যবসায়িক বিশ্লেষণের জন্য অত্যন্ত গুরুত্বপূর্ণ। TOTALYTD, TOTALMTD, এবং TOTALQTD ফাংশনগুলি ব্যবহারের মাধ্যমে আপনি বছরের শুরু থেকে মাসের শুরু অথবা ত্রৈমাসিকের শুরু থেকে বর্তমান সময় পর্যন্ত কাস্টম ক্যালকুলেশন করতে পারবেন। এছাড়া SAMEPERIODLASTYEAR এবং PARALLELPERIOD ফাংশনগুলি পূর্ববর্তী বছর বা নির্দিষ্ট সময় পরিমাণের তুলনায় ডেটার মান বিশ্লেষণ করতে সহায়ক হয়। DAX Time Intelligence ফাংশনগুলি আপনার রিপোর্ট এবং বিশ্লেষণকে আরও ডাইনামিক এবং ইন্টারেকটিভ করে তোলে।
DAX (Data Analysis Expressions) হলো একটি এক্সপ্রেশন ভাষা যা Power BI, PowerPivot, এবং SQL Server Analysis Services (SSAS)-এ ব্যবহৃত হয়। DAX-এর Time Intelligence Functions আপনাকে বিভিন্ন সময়কালের উপর ভিত্তি করে ডেটা বিশ্লেষণ করতে সহায়ক হয়। এই ফাংশনগুলির মধ্যে SAMEPERIODLASTYEAR, PARALLELPERIOD, এবং DATEADD বেশ গুরুত্বপূর্ণ, কারণ এগুলি time-based calculations তৈরি করতে ব্যবহৃত হয়, যেমন পূর্ববর্তী বছর, মাস, বা ত্রৈমাসিকের সাথে তুলনা করা, অথবা একটি নির্দিষ্ট সময়কাল ধরে ডেটার পরিসর বাড়ানো বা কমানো।
এই প্রবন্ধে, আমরা SAMEPERIODLASTYEAR, PARALLELPERIOD, এবং DATEADD ফাংশনগুলির ব্যবহার এবং তাদের কার্যকারিতা বিস্তারিতভাবে আলোচনা করব।
১. SAMEPERIODLASTYEAR ফাংশন
SAMEPERIODLASTYEAR ফাংশনটি ব্যবহৃত হয় যখন আপনি একটি নির্দিষ্ট সময়ের সাথে গত বছরের একই সময়ের ডেটার তুলনা করতে চান। এটি time intelligence ক্যালকুলেশনে খুবই কার্যকরী, বিশেষ করে আপনি যদি বর্তমান বছরের পারফরম্যান্সের সাথে পূর্ববর্তী বছরের পারফরম্যান্স তুলনা করতে চান।
Syntax:
SAMEPERIODLASTYEAR(<dates>)
- : একটি date column অথবা date expression যা আপনার ক্যালকুলেশনের জন্য ব্যবহার করা হবে।
ব্যবহার:
ধরা যাক, আপনি Sales টেবিল থেকে বর্তমান বছরের Sales Amount এর সাথে গত বছরের একই সময় এর বিক্রয় তুলনা করতে চান, যেখানে Sales[Date] কলামটি তারিখ ধারণ করে:
Sales Last Year = CALCULATE(SUM(Sales[Amount]), SAMEPERIODLASTYEAR(Sales[Date]))
এখানে:
- SAMEPERIODLASTYEAR(Sales[Date]) ফাংশনটি গত বছরের একই সময়ের ডেটা ফিরিয়ে আনবে।
- CALCULATE(SUM(Sales[Amount])) ফাংশনটি এই ডেটার উপর মোট বিক্রয়ের যোগফল নির্ধারণ করবে।
Real-world Example:
ব্যবসায়ীরা SAMEPERIODLASTYEAR ব্যবহার করেন আগের বছরের বিক্রয় বা লাভের সাথে বর্তমান বছরের তুলনা করতে, যা তাদের পারফরম্যান্স পরিমাপ করতে সহায়ক।
২. PARALLELPERIOD ফাংশন
PARALLELPERIOD ফাংশনটি ব্যবহৃত হয় একটি নির্দিষ্ট সময়কাল (যেমন: মাস, ত্রৈমাসিক, বা বছর) পরে ডেটার তুলনা করতে। এটি time intelligence ক্যালকুলেশনে ব্যবহৃত হয়, যেখানে আপনি নির্দিষ্ট সময়সীমা বা period এর সাথে ডেটার পরিসর পরিবর্তন করতে চান।
Syntax:
PARALLELPERIOD(<dates>, <number_of_periods>, <interval>)
- : একটি date column অথবা date expression যা সময়ের রেঞ্জ ধারণ করে।
- <number_of_periods>: কতগুলো সময়কাল আপনি এগিয়ে বা পিছিয়ে নিয়ে যেতে চান।
- : সময়ের একক, যেমন
DAY,MONTH,QUARTER, অথবাYEAR।
ব্যবহার:
ধরা যাক, আপনি যদি Sales টেবিলের Amount এর জন্য গত তিন মাসের বিক্রয় দেখতে চান, তবে আপনি PARALLELPERIOD ফাংশনটি ব্যবহার করতে পারেন:
Sales Last 3 Months = CALCULATE(SUM(Sales[Amount]), PARALLELPERIOD(Sales[Date], -3, MONTH))
এখানে:
- PARALLELPERIOD(Sales[Date], -3, MONTH) ফাংশনটি বর্তমান তারিখ থেকে তিন মাস পিছনের ডেটা নির্ধারণ করবে।
- CALCULATE(SUM(Sales[Amount])) ফাংশনটি সেই তিন মাসের বিক্রয় পরিমাণ বের করবে।
Real-world Example:
PARALLELPERIOD ফাংশনটি ব্যবহার করা হয় যখন আপনি নির্দিষ্ট সময়কাল পরবর্তী ডেটার তুলনা করতে চান, যেমন আগের বছরের এক বা একাধিক মাসের সাথে বর্তমান বছরের মাসের তুলনা করা।
৩. DATEADD ফাংশন
DATEADD ফাংশনটি ব্যবহৃত হয় একটি নির্দিষ্ট সময়কাল (যেমন: দিন, মাস, বা বছর) যোগ বা বিয়োগ করতে। এটি ডেটার রেঞ্জকে নির্দিষ্ট পরিমাণে পরিবর্তন করে, যা বিভিন্ন time-based calculations করতে সহায়ক।
Syntax:
DATEADD(<dates>, <number_of_periods>, <interval>)
- : একটি date column অথবা date expression।
- <number_of_periods>: কতগুলো সময়কাল আপনি যোগ বা বিয়োগ করতে চান।
- : সময়ের একক, যেমন
DAY,MONTH,QUARTER, বাYEAR।
ব্যবহার:
ধরা যাক, আপনি Sales টেবিলের Amount এর জন্য গত মাসের বিক্রয় বের করতে চান:
Sales Last Month = CALCULATE(SUM(Sales[Amount]), DATEADD(Sales[Date], -1, MONTH))
এখানে:
- DATEADD(Sales[Date], -1, MONTH) ফাংশনটি গত মাসের Sales[Date] কলামের ডেটা ফিরিয়ে আনবে।
- CALCULATE(SUM(Sales[Amount])) ফাংশনটি গত মাসের বিক্রয় পরিমাণের যোগফল নির্ধারণ করবে।
Real-world Example:
DATEADD ফাংশনটি ব্যবহার করা হয় যখন আপনি ডেটার একটি নির্দিষ্ট সময়কাল পূর্বে বা পরে পর্যালোচনা করতে চান, যেমন মাসের বা ত্রৈমাসিকের বিক্রয় প্রবণতা বিশ্লেষণ।
সারাংশ
SAMEPERIODLASTYEAR, PARALLELPERIOD, এবং DATEADD হল time intelligence ফাংশন যা বিভিন্ন time-based calculations করতে ব্যবহৃত হয়। SAMEPERIODLASTYEAR গত বছরের একই সময়ের ডেটা তুলনা করতে ব্যবহৃত হয়, PARALLELPERIOD একটি নির্দিষ্ট সময়কাল পরবর্তী বা পূর্ববর্তী ডেটা নির্ধারণ করতে সহায়ক, এবং DATEADD একটি নির্দিষ্ট সময়কাল যোগ বা বিয়োগ করার জন্য ব্যবহৃত হয়। এই ফাংশনগুলির মাধ্যমে, আপনি সহজেই সময়ভিত্তিক বিশ্লেষণ করতে পারেন এবং বিভিন্ন সময়কালের পারফরম্যান্স তুলনা করতে সহায়ক হতে পারেন, যা ব্যবসায়িক বিশ্লেষণের জন্য অত্যন্ত গুরুত্বপূর্ণ।
DAX (Data Analysis Expressions) হল একটি শক্তিশালী ভাষা যা Power BI, Power Pivot, এবং SQL Server Analysis Services (SSAS)-এ ব্যবহৃত হয়। Date Table বা Calendar Table তৈরি করা ডেটা বিশ্লেষণে অত্যন্ত গুরুত্বপূর্ণ, কারণ এটি Time Intelligence ফাংশনগুলি ব্যবহার করে সময়ভিত্তিক বিশ্লেষণ এবং কাস্টম ক্যালকুলেশন তৈরি করতে সাহায্য করে। Custom Calendar বা Date Table তৈরি করার মাধ্যমে আপনি আপনার ডেটাকে আরও কার্যকরভাবে বিশ্লেষণ করতে পারেন, যেমন YTD (Year-To-Date), QTD (Quarter-To-Date), এবং MTD (Month-To-Date) বিশ্লেষণ করতে।
এই প্রবন্ধে, আমরা Custom Calendar এবং Date Table তৈরি করার প্রক্রিয়া এবং DAX-এর মাধ্যমে কীভাবে এটি করা যায় তা বিস্তারিতভাবে আলোচনা করব।
১. Custom Calendar বা Date Table কেন প্রয়োজন?
Date Table বা Calendar Table হল একটি টেবিল যা সময়ের সমস্ত ডেটা ধারণ করে, যেমন তারিখ, মাস, ত্রৈমাসিক, বছর, এবং অন্যান্য সময়ভিত্তিক মেট্রিক্স। এটি Time Intelligence ফাংশনগুলির জন্য অত্যন্ত গুরুত্বপূর্ণ, কারণ DAX এর সময়ভিত্তিক ক্যালকুলেশন সঠিকভাবে কাজ করার জন্য একটি পূর্ণাঙ্গ Date Table প্রয়োজন।
Custom Calendar বা Date Table তৈরি করার সুবিধাগুলি:
- Time Intelligence ফাংশনগুলির সঠিক ব্যবহার।
- Quarterly, Monthly, বা Yearly ভিত্তিক বিশ্লেষণ করা সহজ।
- Date Filtering এবং Date Slicing করতে সহায়ক।
২. Custom Date Table তৈরি করার প্রক্রিয়া
DAX-এ একটি Custom Date Table তৈরি করার জন্য আপনি সাধারণত CALENDAR বা CALENDARAUTO ফাংশন ব্যবহার করেন।
CALENDAR ফাংশন
CALENDAR ফাংশনটি দুটি তারিখের মধ্যে একটি টেবিল তৈরি করে, যেখানে প্রতিটি সারিতে একটি পৃথক তারিখ থাকবে।
Syntax:
CALENDAR(<start_date>, <end_date>)
- <start_date>: যে তারিখ থেকে ক্যালেন্ডার শুরু হবে।
- <end_date>: যে তারিখে ক্যালেন্ডার শেষ হবে।
ব্যবহার:
ধরা যাক, আপনি 2010-01-01 থেকে 2025-12-31 পর্যন্ত একটি কাস্টম ক্যালেন্ডার তৈরি করতে চান, তাহলে আপনি এই DAX কোডটি ব্যবহার করবেন:
Custom Date Table = CALENDAR(DATE(2010, 1, 1), DATE(2025, 12, 31))
এটি একটি নতুন Date Table তৈরি করবে, যা 2010-01-01 থেকে 2025-12-31 পর্যন্ত সমস্ত তারিখ ধারণ করবে।
CALENDAR ফাংশনের মাধ্যমে এক্সটেনশন:
আপনি CALENDAR ফাংশনটির মাধ্যমে কাস্টম ক্যালেন্ডারে অতিরিক্ত কলাম যেমন Year, Month, Quarter যোগ করতে পারেন:
Custom Date Table =
ADDCOLUMNS(
CALENDAR(DATE(2010, 1, 1), DATE(2025, 12, 31)),
"Year", YEAR([Date]),
"Month", MONTH([Date]),
"Quarter", QUARTER([Date]),
"Month Name", FORMAT([Date], "MMMM"),
"Year-Month", FORMAT([Date], "YYYY-MM")
)
এখানে:
- ADDCOLUMNS ফাংশনটি নতুন কলাম যোগ করছে যেমন Year, Month, Quarter, Month Name, এবং Year-Month।
- YEAR, MONTH, QUARTER, FORMAT ফাংশনগুলো Date কলামের উপর বিভিন্ন ফরম্যাটে ডেটা প্রদান করছে।
CALENDARAUTO ফাংশন
CALENDARAUTO ফাংশনটি একটি Date Table তৈরি করে, যা ডেটার পরিসীমা স্বয়ংক্রিয়ভাবে ডেটার সর্বনিম্ন এবং সর্বোচ্চ মানের উপর ভিত্তি করে নির্ধারণ করে। এটি সবচেয়ে উপকারী যখন আপনি Date Table তৈরি করতে চান, তবে সঠিক start date এবং end date নির্ধারণ করতে চান না।
Syntax:
CALENDARAUTO([<month_end>])
- <month_end>: এই প্যারামিটারটি ঐচ্ছিক এবং এটি ডেটা শেষের মাসের দিন নির্ধারণ করে। এটি সাধারণত 1 বা 12 হতে পারে (যেখানে 1 হচ্ছে জানুয়ারী এবং 12 হচ্ছে ডিসেম্বর)।
ব্যবহার:
ধরা যাক, আপনি Sales টেবিলের Date কলাম থেকে সর্বনিম্ন এবং সর্বোচ্চ তারিখ ব্যবহার করে একটি Date Table তৈরি করতে চান:
Date Table = CALENDARAUTO()
এটি Sales টেবিলের Date কলাম থেকে ডেটার পরিসীমা নিয়ে একটি কাস্টম ক্যালেন্ডার তৈরি করবে।
৩. Date Table-এ অতিরিক্ত কলাম যোগ করা
যদি আপনি Date Table-এ আরও নির্দিষ্ট কলাম যেমন Weekday, Day Name, Week Number ইত্যাদি যোগ করতে চান, তবে আপনি ADDCOLUMNS ব্যবহার করতে পারেন। উদাহরণ:
Custom Date Table =
ADDCOLUMNS(
CALENDAR(DATE(2010, 1, 1), DATE(2025, 12, 31)),
"Year", YEAR([Date]),
"Month", MONTH([Date]),
"Quarter", QUARTER([Date]),
"Month Name", FORMAT([Date], "MMMM"),
"Weekday", WEEKDAY([Date]),
"Week Number", WEEKNUM([Date])
)
এখানে:
- WEEKDAY ফাংশনটি দিনটির সপ্তাহের দিনের সংখ্যা ফেরত দেয়।
- WEEKNUM ফাংশনটি দিনটির সপ্তাহ নম্বর প্রদান করে।
৪. Date Table ব্যবহার করা
একবার Date Table তৈরি করার পর, এটি Power BI বা Excel ডেটা মডেলিংয়ে ব্যবহার করা হয়। এটি Time Intelligence ক্যালকুলেশন, date slicing, এবং dynamic filtering এর জন্য অত্যন্ত কার্যকরী। কিছু সাধারণ Time Intelligence ক্যালকুলেশন যেমন Year-to-Date, Month-to-Date, Quarter-to-Date এবং Same Period Last Year DAX ফাংশনগুলি ব্যবহার করা হয়।
Example: Year-to-Date (YTD) Calculation
YTD Sales = TOTALYTD(SUM(Sales[Amount]), Sales[Date])
এটি Sales টেবিলের Amount কলামের Year-to-Date (YTD) মোট বিক্রয় বের করবে।
Example: Same Period Last Year
Sales Last Year = SAMEPERIODLASTYEAR(Sales[Date])
এটি Sales টেবিলের Date কলামের গত বছরের একই সময়ের বিক্রয় পরিমাণ বের করবে।
৫. Date Table এর জন্য Best Practices
- Use a Continuous Date Range: Date Table নিশ্চিত করুন যে এটি continuous date range ব্যবহার করছে এবং সব দিন অন্তর্ভুক্ত করছে।
- Mark as Date Table: Power BI বা Excel ডেটা মডেলিংয়ে, Date Table তৈরি করার পরে, এটি Mark as Date Table হিসেবে চিহ্নিত করুন যাতে DAX তারিখ ফাংশনগুলি সঠিকভাবে কাজ করতে পারে।
- Use Appropriate Granularity: নিশ্চিত করুন যে আপনার Date Table যথাযথ granularity (দিন, মাস, বছর) সহ তৈরি করা হয়েছে, যা আপনার বিশ্লেষণ প্রয়োজন অনুযায়ী।
সারাংশ
Custom Calendar বা Date Table তৈরি করা DAX-এ অত্যন্ত গুরুত্বপূর্ণ, বিশেষত Time Intelligence ক্যালকুলেশন এবং সময়ভিত্তিক বিশ্লেষণের জন্য। CALENDAR, CALENDARAUTO, এবং ADDCOLUMNS ফাংশন ব্যবহার করে আপনি কাস্টম ক্যালেন্ডার তৈরি করতে পারেন এবং এটি Power BI বা Excel ডেটা মডেলিংয়ে কার্যকরী বিশ্লেষণ করতে সাহায্য করবে। Date Table-এর সাহায্যে আপনি YTD, QTD, MTD, এবং অন্যান্য সময়ভিত্তিক ক্যালকুলেশন সহজেই করতে পারবেন।
Read more