DAX (Data Analysis Expressions) হলো একটি formula language যা Microsoft Power BI, Power Pivot, এবং SQL Server Analysis Services (SSAS)-এ ব্যবহার করা হয়। এটি ডেটা বিশ্লেষণ এবং কাস্টম ক্যালকুলেশন করার জন্য ডিজাইন করা হয়েছে, যা ব্যবহারকারীদের জন্য শক্তিশালী বিশ্লেষণ তৈরি এবং প্রতিবেদন তৈরি করতে সহায়ক। DAX ফর্মুলা ব্যবহার করে আপনি সহজেই মেজার, ক্যালকুলেটেড কলাম এবং কাস্টম মেট্রিক্স তৈরি করতে পারেন।
DAX ফাংশনগুলি conditional expressions, aggregations, time intelligence, text manipulation এবং আরও অনেক ধরনের ডেটা বিশ্লেষণ কাজের জন্য ব্যবহৃত হয়।
DAX Formula এবং Syntax
DAX ফর্মুলা এবং সেন্ট্যাক্স সাধারণত কিছু মৌলিক নিয়ম অনুসরণ করে। এখানে DAX ফর্মুলার সেন্ট্যাক্স এবং কিছু উদাহরণ ব্যাখ্যা করা হলো।
১. DAX Formula Structure
DAX ফর্মুলা সাধারণত নিম্নলিখিত উপাদানগুলোর সমন্বয়ে তৈরি হয়:
- Function Name: DAX ফাংশনের নাম যেমন
SUM,AVERAGE,IF, ইত্যাদি। - Arguments: ফাংশনে প্রয়োজনীয় ইনপুট, যেমন কলাম নাম, সেল রেঞ্জ অথবা কন্ডিশন।
- Operators: অঙ্ক এবং লজিক্যাল অপারেটর যেমন
+,-,*,/,AND,OR, ইত্যাদি।
DAX Formula Structure:
<Function Name> (<Arguments>)
উদাহরণ:
SUM(Sales[Amount])
এখানে, SUM হলো ফাংশন নাম এবং Sales[Amount] হলো আর্গুমেন্ট।
২. Basic Syntax Rules
১. Case Sensitivity
DAX ফাংশন এবং কাস্টম কলাম নামগুলি case-insensitive অর্থাৎ, তারা বড় এবং ছোট হাতের অক্ষর পার্থক্য করেনা। উদাহরণস্বরূপ, sum() এবং SUM() একই রকম হবে।
২. Parentheses
DAX ফর্মুলার মধ্যে সব ফাংশন এবং অপারেটরকে সঠিকভাবে ব্যবহার করতে parentheses ব্যবহার করতে হয়। উদাহরণ:
AVERAGE(Sales[Amount])
৩. Column and Table References
DAX ফর্মুলার মধ্যে যখন আপনি কলাম বা টেবিল রেফারেন্স ব্যবহার করবেন, তখন এটি সাধারণত বর্গাকার বন্ধনী [] বা কোড লেখার সময় সোজা ভাবে ব্যবহার করা হয়। উদাহরণ:
Sales[Amount]
৪. Constants
DAX ফর্মুলায় আপনাকে কিছু কনস্ট্যান্ট ভ্যালু দিতে হতে পারে, যা numeric values, strings, বা dates হতে পারে। উদাহরণ:
IF(Sales[Amount] > 1000, "High", "Low")
৫. Nested Functions
একটি ফাংশনের ভিতরে অন্য একটি ফাংশনও ব্যবহার করা যেতে পারে। উদাহরণ:
IF(AVERAGE(Sales[Amount]) > 1000, "High", "Low")
৩. Commonly Used DAX Functions
১. SUM()
SUM() ফাংশনটি একটি কলামের মোট যোগফল বের করতে ব্যবহৃত হয়।
SUM(Sales[Amount])
২. AVERAGE()
AVERAGE() ফাংশনটি একটি কলামের গড় বের করে।
AVERAGE(Sales[Amount])
৩. IF()
IF() ফাংশনটি একটি শর্ত ভিত্তিক সিদ্ধান্ত নিতে ব্যবহৃত হয়, যেখানে দুইটি মানের মধ্যে কোন একটি নির্ধারণ করা হয়।
IF(Sales[Amount] > 1000, "High", "Low")
৪. CALCULATE()
CALCULATE() ফাংশনটি একটি সেল বা কলামের উপর নির্দিষ্ট শর্ত বা ফিল্টার প্রয়োগ করে ফলাফল গণনা করতে ব্যবহৃত হয়।
CALCULATE(SUM(Sales[Amount]), Sales[Region] = "East")
৫. RELATED()
RELATED() ফাংশনটি এক টেবিলের কলাম থেকে অন্য টেবিলের কলাম সম্পর্কিত মান নিয়ে আসে। এটি সাধারণত relationship তৈরি করার পরে ব্যবহৃত হয়।
RELATED(Customer[CustomerName])
৬. DATEADD()
DATEADD() ফাংশনটি তারিখের একটি নির্দিষ্ট পরিমাণ যোগ বা বিয়োগ করতে ব্যবহৃত হয়, সাধারণত time intelligence ক্যালকুলেশনে।
DATEADD(Sales[Date], -1, MONTH)
৭. YEAR()
YEAR() ফাংশনটি একটি date কলাম থেকে বছরের মান বের করে।
YEAR(Sales[Date])
৮. DISTINCTCOUNT()
DISTINCTCOUNT() ফাংশনটি একটি কলামে ভিন্ন ভিন্ন মানের সংখ্যা বের করে।
DISTINCTCOUNT(Sales[ProductID])
৪. DAX Formula Examples
১. Total Sales Calculation
মোট বিক্রয় বের করতে:
Total Sales = SUM(Sales[Amount])
২. Profit Calculation
মুনাফা বের করার জন্য:
Profit = SUM(Sales[Amount]) - SUM(Cost[Amount])
৩. Year-to-Date (YTD) Sales
বছরের শুরু থেকে বর্তমান পর্যন্ত বিক্রয়:
YTD Sales = CALCULATE(SUM(Sales[Amount]), DATESYTD(Sales[Date]))
৪. Previous Month Sales
গত মাসের বিক্রয়:
Previous Month Sales = CALCULATE(SUM(Sales[Amount]), PREVIOUSMONTH(Sales[Date]))
সারাংশ
DAX (Data Analysis Expressions) একটি শক্তিশালী ফর্মুলা ভাষা যা ব্যবহারকারীদেরকে কাস্টম ক্যালকুলেশন, বিশ্লেষণ এবং রিপোর্ট তৈরি করতে সক্ষম করে। এর সেন্ট্যাক্স এবং ফাংশনগুলি ব্যবহারকারীদের ডেটা সঞ্চয়, বিশ্লেষণ এবং কাস্টম মেট্রিক্স তৈরি করার প্রক্রিয়া সহজ এবং দ্রুত করে তোলে। DAX ফাংশনের মাধ্যমে আপনি aggregations, conditional expressions, time intelligence এবং data manipulation করতে পারেন, যা ব্যবসায়িক সিদ্ধান্ত গ্রহণে সহায়ক।
DAX (Data Analysis Expressions) হলো একটি এক্সপ্রেশন ভাষা যা বিশেষভাবে Power BI, Excel, এবং SQL Server Analysis Services (SSAS) এ ডেটা বিশ্লেষণ ও ক্যালকুলেশন করার জন্য ডিজাইন করা হয়েছে। DAX-এর মাধ্যমে আপনি সেলস, লাভ, এবং অন্যান্য গুরুত্বপূর্ণ ব্যবসায়িক মেট্রিক্সের উপর গণনা করতে পারেন। DAX ফাংশনগুলি সাধারণত measures, calculated columns, এবং calculated tables তৈরি করতে ব্যবহৃত হয়।
এই প্রবন্ধে আমরা DAX Formula Structure এবং Syntax সম্পর্কে আলোচনা করব, যা DAX ব্যবহারকারীদেরকে সঠিকভাবে ক্যালকুলেশন এবং বিশ্লেষণ করতে সহায়ক হবে।
DAX Formula Structure (ড্যাক্স ফর্মুলার গঠন)
DAX ফর্মুলা একটি calculation বা expression যা একটি নির্দিষ্ট ফলাফল দিতে ব্যবহৃত হয়। DAX ফর্মুলা দুটি প্রধান অংশে বিভক্ত:
- Function: এটি একটি নির্দিষ্ট কাজ বা গাণিতিক কার্যকলাপ সম্পাদন করে।
- Arguments: এটি ফাংশনের ইনপুট, যা ফাংশনের কাজ চালাতে প্রয়োজনীয় ডেটা সরবরাহ করে।
DAX ফর্মুলার সাধারণ গঠন:
<Function Name> (<Argument1>, <Argument2>, ... <ArgumentN>)
উদাহরণ: একটি সাধারণ DAX ফর্মুলা যেখানে দুটি আর্গুমেন্ট ব্যবহার করা হয়েছে:
SUM(Sales[Amount])
এখানে:
- SUM হলো একটি DAX ফাংশন যা একটি কলামের মোট মান যোগ করে।
- Sales[Amount] হলো ডেটাসেটের একটি কলাম।
DAX Syntax (ড্যাক্স সিনট্যাক্স)
DAX-এর syntax সঠিকভাবে ব্যবহার করা গুরুত্বপূর্ণ, যাতে ফর্মুলাগুলি সঠিকভাবে কাজ করে। DAX-এর সিনট্যাক্সে কিছু মূল বিষয় রয়েছে:
১. Functions
DAX ফাংশনগুলি বিভিন্ন ধরনের হতে পারে, যেমন mathematical, text, logical, time intelligence, filtering, ইত্যাদি। প্রতিটি ফাংশনের নিজস্ব সিনট্যাক্স এবং আর্গুমেন্ট থাকে।
২. Column References
DAX-এ আপনি কলাম এবং টেবিলের মধ্যে সম্পর্ক তৈরি করতে পারবেন। কলাম রেফারেন্সে আপনি সরাসরি টেবিলের নাম এবং কলামের নাম ব্যবহার করেন। [ ] এই ব্র্যাকেটের মাধ্যমে কলাম রেফারেন্স করা হয়।
উদাহরণ:
Sales[Amount]
এখানে Sales হলো টেবিলের নাম এবং Amount হলো কলামের নাম।
৩. Strings and Text Values
DAX-এ strings বা text values ব্যবহার করতে হলে তাদের double quotes (" ") দিয়ে ঘেরাও করতে হয়।
উদাহরণ:
"Total Sales"
৪. Operators
DAX-এ গাণিতিক অপারেটর ব্যবহার করা হয় যেমন +, -, *, /, এবং লজিক্যাল অপারেটর যেমন AND, OR, NOT। এগুলি আপনাকে বিভিন্ন ফাংশন এবং কন্ডিশনাল ক্যালকুলেশনে সহায়তা করে।
উদাহরণ:
Sales[Amount] * 0.1
এখানে, Sales[Amount] কলামের প্রতি ১০% হিসাব করা হচ্ছে।
৫. Parentheses
DAX-এ ফাংশন এবং গাণিতিক অপারেশনগুলিকে সঠিকভাবে গ্রুপ করার জন্য parentheses () ব্যবহার করা হয়। এটি ফাংশনের আর্গুমেন্টগুলি এবং গাণিতিক অগ্রাধিকার সঠিকভাবে প্রক্রিয়া করতে সহায়ক।
উদাহরণ:
SUM(Sales[Amount]) - SUM(Sales[Discount])
এখানে, SUM ফাংশনের মাধ্যমে Amount এবং Discount কলামের মান যোগ করা হচ্ছে এবং একে অপর থেকে বিয়োগ করা হচ্ছে।
৬. Comments
DAX-এ মন্তব্য যোগ করার জন্য // বা /* */ ব্যবহার করা হয়। এটি কোডের ব্যাখ্যা বা নথি হিসেবে কাজ করে এবং কার্যক্রমের উপর কোনো প্রভাব ফেলে না।
উদাহরণ:
// This is a single-line comment
/* This is a
multi-line comment */
DAX Formula Example (ড্যাক্স ফর্মুলার উদাহরণ)
১. SUM Function (মোট যোগফল)
ড্যাক্সের একটি সাধারণ ফাংশন হল SUM, যা একটি কলামের সমস্ত মান যোগ করে।
ফর্মুলা:
Total Sales = SUM(Sales[Amount])
এখানে, Total Sales হলো নতুন measure এবং এটি Sales টেবিলের Amount কলামের মান যোগ করবে।
২. IF Function (শর্তাধীন ফাংশন)
DAX-এ IF ফাংশনটি শর্তসাপেক্ষভাবে গণনা বা সিদ্ধান্ত নেওয়ার জন্য ব্যবহৃত হয়।
ফর্মুলা:
Sales Status = IF(Sales[Amount] > 10000, "High", "Low")
এখানে, Sales Status একটি নতুন calculated column হবে যা চেক করবে যদি Sales[Amount] ১০,০০০ এর বেশি হয়, তবে "High" এবং অন্যথায় "Low" দেখাবে।
৩. CALCULATE Function (গণনা করা)
CALCULATE ফাংশনটি একটি নতুন কনটেক্সট তৈরি করার জন্য ব্যবহৃত হয়, যার মাধ্যমে বিশেষ শর্তাবলীর অধীনে গণনা করা হয়।
ফর্মুলা:
Total High Sales = CALCULATE(SUM(Sales[Amount]), Sales[Amount] > 10000)
এখানে, Total High Sales ক্যালকুলেশনটি Sales[Amount] ১০,০০০ এর বেশি মানের জন্য SUM করবে।
৪. RELATED Function (সম্পর্কিত ফাংশন)
DAX-এ RELATED ফাংশনটি দুটি সম্পর্কিত টেবিলের মধ্যে ডেটা আনার জন্য ব্যবহৃত হয়।
ফর্মুলা:
Product Category = RELATED(Product[Category])
এখানে, Product Category একটি নতুন calculated column তৈরি হবে যা Product টেবিলের Category কলামের মান নিয়ে আসবে।
DAX এর Syntax Errors এবং Troubleshooting
DAX ফাংশনের ব্যবহার করলে কিছু সাধারণ সমস্যা হতে পারে, যেমন:
- Missing Parentheses: সঠিকভাবে প্যারেনথিসিস ব্যবহার না করলে ভুল সিনট্যাক্সের ত্রুটি তৈরি হয়।
Example:
Total Sales = SUM(Sales[Amount] // Missing closing parentheses
- Incorrect Column Names: কলামের নাম সঠিকভাবে উল্লেখ না করা বা ভুলভাবে রেফারেন্স করা।
Example:
Total Sales = SUM(Sales[Amount])
- Incorrect Use of Functions: ভুল ফাংশন ব্যবহার অথবা সঠিক আর্গুমেন্ট সরবরাহ না করা।
Example:
Total Sales = SUM(Sales) // 'Sales' is a table, not a column
সারাংশ
DAX (Data Analysis Expressions) একটি শক্তিশালী ভাষা যা ডেটা বিশ্লেষণ এবং রিপোর্ট তৈরি করতে ব্যবহৃত হয়। DAX ফর্মুলার গঠন এবং সিনট্যাক্স সঠিকভাবে ব্যবহার করলে আপনি আরও শক্তিশালী এবং কার্যকরী ক্যালকুলেশন তৈরি করতে পারবেন। DAX-এর functions, operators, column references এবং expressions ব্যবহার করে ডেটা বিশ্লেষণ এবং কাস্টম রিপোর্ট তৈরি করা সম্ভব। DAX-এর শর্তাধীন ফাংশন, ক্যালকুলেট ফাংশন এবং রিলেটেড ফাংশনগুলি ডেটার উপর আরও গভীর বিশ্লেষণ করতে সহায়ক।
DAX (Data Analysis Expressions) হল Power BI, Excel, এবং SQL Server Analysis Services (SSAS) এর জন্য একটি শক্তিশালী ক্যালকুলেশন ভাষা, যা ডেটা মডেলিং এবং বিশ্লেষণের জন্য ব্যবহৃত হয়। DAX ফাংশনগুলি বিভিন্ন ধরনের অপারেটর এবং ফাংশন ব্যবহার করে ডেটার উপর ক্যালকুলেশন এবং বিশ্লেষণ করতে সহায়ক। এই প্রবন্ধে, আমরা DAX এর জন্য তিনটি প্রধান অপারেটর Arithmetic Operators, Comparison Operators, এবং Logical Operators সম্পর্কে আলোচনা করব।
১. Arithmetic Operators (অ্যারিথমেটিক অপারেটর)
Arithmetic Operators ব্যবহার করে আমরা গাণিতিক ক্যালকুলেশন করতে পারি, যেমন যোগ, বিয়োগ, গুণ এবং ভাগ। DAX এর অ্যারিথমেটিক অপারেটরগুলি ডেটা মডেলগুলিতে সাধারণ গাণিতিক বিশ্লেষণ করতে ব্যবহৃত হয়।
Arithmetic Operators:
- Addition (+): দুটি সংখ্যাকে যোগ করা।
- উদাহরণ:
5 + 3→ ফলস্বরূপ:8
- উদাহরণ:
- Subtraction (-): একটি সংখ্যাকে অন্যটির থেকে বিয়োগ করা।
- উদাহরণ:
8 - 5→ ফলস্বরূপ:3
- উদাহরণ:
- Multiplication (*): দুটি সংখ্যার গুণফল।
- উদাহরণ:
4 * 3→ ফলস্বরূপ:12
- উদাহরণ:
- Division (/): একটি সংখ্যাকে অন্যটির দ্বারা ভাগ করা।
- উদাহরণ:
12 / 4→ ফলস্বরূপ:3
- উদাহরণ:
- Exponentiation (^): একটি সংখ্যা অন্য একটি সংখ্যার ঘাত।
- উদাহরণ:
2 ^ 3→ ফলস্বরূপ:8
- উদাহরণ:
২. Comparison Operators (কম্প্যারিসন অপারেটর)
Comparison Operators ব্যবহার করে দুটি মানের মধ্যে তুলনা করা হয়। এই অপারেটরগুলি সাধারণত IF statements, CALCULATE functions, বা filters এ ব্যবহৃত হয়, যেখানে শর্তানুসারে ফলাফল প্রাপ্ত হয়।
Comparison Operators:
- Equal to (=): দুটি মান সমান কিনা তা পরীক্ষা করে।
- উদাহরণ:
5 = 5→ ফলস্বরূপ:TRUE
- উদাহরণ:
- Not equal to (<>): দুটি মান সমান না কিনা তা পরীক্ষা করে।
- উদাহরণ:
5 <> 3→ ফলস্বরূপ:TRUE
- উদাহরণ:
- Greater than (>): প্রথম মানটি দ্বিতীয় মানের থেকে বড় কিনা তা পরীক্ষা করে।
- উদাহরণ:
7 > 3→ ফলস্বরূপ:TRUE
- উদাহরণ:
- Less than (<): প্রথম মানটি দ্বিতীয় মানের থেকে ছোট কিনা তা পরীক্ষা করে।
- উদাহরণ:
3 < 5→ ফলস্বরূপ:TRUE
- উদাহরণ:
- Greater than or equal to (>=): প্রথম মানটি দ্বিতীয় মানের সমান বা বড় কিনা তা পরীক্ষা করে।
- উদাহরণ:
5 >= 5→ ফলস্বরূপ:TRUE
- উদাহরণ:
- Less than or equal to (<=): প্রথম মানটি দ্বিতীয় মানের সমান বা ছোট কিনা তা পরীক্ষা করে।
- উদাহরণ:
3 <= 5→ ফলস্বরূপ:TRUE
- উদাহরণ:
৩. Logical Operators (লজিকাল অপারেটর)
Logical Operators ব্যবহার করে আমরা True/False শর্ত ভিত্তিক অপারেশন করতে পারি। এটি সাধারণত একাধিক শর্তের মধ্যে সম্পর্ক তৈরি করতে ব্যবহৃত হয় এবং একাধিক শর্তের মধ্যে সিদ্ধান্ত গ্রহণে সহায়ক।
Logical Operators:
- AND (&&): দুটি শর্তের মধ্যে উভয় শর্তই সত্য হলে, ফলাফল সত্য হয়।
- উদাহরণ:
TRUE && FALSE→ ফলস্বরূপ:FALSE - উদাহরণ:
5 > 3 && 8 < 10→ ফলস্বরূপ:TRUE
- উদাহরণ:
- OR (||): দুটি শর্তের মধ্যে অন্তত একটি শর্ত সত্য হলে, ফলাফল সত্য হয়।
- উদাহরণ:
FALSE || TRUE→ ফলস্বরূপ:TRUE - উদাহরণ:
5 > 10 || 8 < 12→ ফলস্বরূপ:TRUE
- উদাহরণ:
- NOT (!) (Negation): একটি শর্তের বিপরীত মান দেয়। যদি শর্তটি সত্য হয়, তাহলে False ফিরিয়ে দেয়, এবং যদি তা মিথ্যা হয়, তাহলে True ফিরিয়ে দেয়।
- উদাহরণ:
NOT(TRUE)→ ফলস্বরূপ:FALSE - উদাহরণ:
NOT(FALSE)→ ফলস্বরূপ:TRUE
- উদাহরণ:
- IF(): Conditional Logic এর জন্য ব্যবহৃত হয়, যেখানে একটি শর্ত সত্য হলে একটি মান ফেরত দেয় এবং মিথ্যা হলে অন্য একটি মান ফেরত দেয়।
- উদাহরণ:
IF(5 > 3, "Yes", "No")→ ফলস্বরূপ:"Yes"
- উদাহরণ:
- IFERROR(): এটি কোনো ত্রুটি বা ভুল হলে একটি নির্দিষ্ট মান ফেরত দেয়।
- উদাহরণ:
IFERROR(10/0, "Error")→ ফলস্বরূপ:"Error"
- উদাহরণ:
সারাংশ
DAX Operators হল Arithmetic, Comparison, এবং Logical Operators যা ডেটা বিশ্লেষণ এবং ক্যালকুলেশন প্রক্রিয়াতে ব্যবহৃত হয়। Arithmetic Operators গাণিতিক ক্যালকুলেশন (যেমন যোগ, বিয়োগ, গুণ, ভাগ) সম্পাদন করতে ব্যবহৃত হয়, Comparison Operators তুলনা করতে ব্যবহৃত হয়, এবং Logical Operators শর্তযুক্ত বিশ্লেষণের জন্য ব্যবহৃত হয়। DAX অপারেটরগুলির দক্ষ ব্যবহারে, ব্যবহারকারীরা তাদের ডেটা মডেল এবং রিপোর্টকে আরও শক্তিশালী এবং কার্যকরী করতে সক্ষম হন।
DAX (Data Analysis Expressions) হল একটি ফাংশনাল ভাষা যা Power BI, Power Pivot, এবং SQL Server Analysis Services (SSAS) তে ডেটা বিশ্লেষণ এবং হিসাব তৈরি করতে ব্যবহৃত হয়। ড্যাক্স ফাংশন ব্যবহার করে আপনি calculated columns, measures, এবং calculated tables তৈরি করতে পারেন, যা ডেটাকে আরও শক্তিশালীভাবে বিশ্লেষণ করতে সহায়ক।
ড্যাক্স ফর্মুলা লিখার সময় এটি খুবই গুরুত্বপূর্ণ যে ফর্মুলা পরিষ্কার এবং সংক্ষিপ্ত হোক, যাতে অন্যরা (বা আপনি নিজে ভবিষ্যতে) সহজে বুঝতে পারেন। এই উদ্দেশ্যে, ড্যাক্স ফাংশনে comments যোগ করা এবং formula documentation তৈরি করা একটি ভাল অভ্যাস।
DAX ফাংশনে Comments যোগ করা
Comments ড্যাক্স ফর্মুলা লিখতে সহায়ক, কারণ এটি আপনাকে ফর্মুলার উদ্দেশ্য, কার্যকারিতা, অথবা পদ্ধতি ব্যাখ্যা করার সুযোগ দেয়। ড্যাক্স ফর্মুলা কমেন্ট যোগ করার জন্য দুটি প্রকারের সিঙ্কট্যাক্স ব্যবহার করা যায়:
১. Single-line Comment (এক লাইনের কমেন্ট)
একটি একক লাইনে মন্তব্য যোগ করতে // ব্যবহার করা হয়। এটি ড্যাক্স কোডের যেকোনো স্থানে ব্যবহার করা যেতে পারে।
উদাহরণ:
Total Sales = SUM(Sales[Amount]) // Calculating total sales
২. Multi-line Comment (একাধিক লাইনের কমেন্ট)
একাধিক লাইনের মন্তব্য যোগ করতে /* এবং */ ব্যবহার করতে হয়।
উদাহরণ:
/*
This formula calculates the total sales
by summing up the values from the 'Amount' column in the 'Sales' table.
It is used in the dashboard to display the total sales for the month.
*/
Total Sales = SUM(Sales[Amount])
Comments খুবই গুরুত্বপূর্ণ যখন আপনি একাধিক পরিশীলিত ফাংশন বা জটিল সূত্র ব্যবহার করছেন, কারণ এটি কেবল কোড লেখার সময় নয়, ভবিষ্যতে কোড সংশোধন বা উন্নত করার সময়ও সহায়ক হতে পারে।
Formula Documentation (ফর্মুলা ডকুমেন্টেশন)
ড্যাক্স ফর্মুলা ডকুমেন্টেশন হল একটি প্রক্রিয়া যেখানে ফর্মুলার উদ্দেশ্য, ব্যবহৃত ফাংশন এবং কোডের কার্যকারিতা সম্পর্কে বিস্তারিত বর্ণনা করা হয়। এটি বিশেষ করে বড় বা জটিল প্রজেক্টগুলির জন্য গুরুত্বপূর্ণ, যেখানে অনেক ফর্মুলা এবং ফাংশন ব্যবহৃত হয়।
ডকুমেন্টেশন লেখার সময় আপনি নিম্নলিখিত তথ্য অন্তর্ভুক্ত করতে পারেন:
১. ফর্মুলার লক্ষ্য এবং উদ্দেশ্য
প্রতিটি ফর্মুলা বা ক্যালকুলেটেড কলামের উদ্দেশ্য বর্ণনা করুন। উদাহরণস্বরূপ, আপনি যদি একটি টোটাল সেলস ফর্মুলা তৈরি করেন, তাহলে এটি উল্লেখ করুন যে এটি মোট বিক্রয় পরিমাণ বের করতে ব্যবহৃত হয়।
২. ব্যবহৃত ফাংশন
কোন কোন ড্যাক্স ফাংশন ব্যবহার করেছেন তা উল্লেখ করুন। উদাহরণস্বরূপ, আপনি SUM, FILTER, CALCULATE, ইত্যাদি ফাংশন ব্যবহার করতে পারেন।
৩. ইনপুট ডেটা এবং টেবিল
ফর্মুলাতে যেসব ডেটা এবং টেবিল ব্যবহার করা হয়েছে তা উল্লেখ করুন। এর মধ্যে columns, measures, এবং tables অন্তর্ভুক্ত থাকতে পারে।
৪. ফর্মুলা সম্পর্কে বিস্তারিত ব্যাখ্যা
ফর্মুলা কীভাবে কাজ করে, কোন শর্তে এটি ব্যবহৃত হয় এবং কি ফলাফল প্রদান করে, সে সম্পর্কে বিস্তারিত ব্যাখ্যা দিন।
৫. ট্রাবলশুটিং এবং কনটেক্সট
যদি কোনো সমস্যা থাকে বা আপনি যদি কোনো বিশেষ কেস বা সীমাবদ্ধতা জানাতে চান, তবে সেগুলি ডকুমেন্টেশন আকারে উল্লেখ করুন।
DAX Formula Documentation Example
/*
Total Sales Calculation Formula
---------------------------------
Purpose: This formula calculates the total sales by summing up the 'Amount' column in the 'Sales' table.
Used Functions:
- SUM: Sums up the values in the 'Amount' column
Input Data:
- Sales[Amount] column from the 'Sales' table
Explanation:
This formula is used to calculate the total sales for a given period or category. It can be used in reports
where total sales for a region, product, or sales representative is required.
It works by aggregating all the values in the 'Amount' column and returning the total sum.
*/
Total Sales = SUM(Sales[Amount])
সারাংশ
DAX Comments এবং Formula Documentation হল গুরুত্বপূর্ণ অনুশীলন যা ড্যাক্স ফর্মুলার পরিষ্কারতা এবং সংরক্ষণযোগ্যতা নিশ্চিত করে। ফর্মুলার উদ্দেশ্য, ব্যবহৃত ফাংশন, ইনপুট ডেটা এবং ফর্মুলার কার্যকারিতা স্পষ্টভাবে বর্ণনা করা গুরুত্বপূর্ণ, বিশেষ করে যখন আপনি অথবা অন্য কেউ ভবিষ্যতে সেই ফর্মুলা সম্পাদনা বা পুনর্ব্যবহার করতে চান। Single-line comments এবং multi-line comments ব্যবহার করে ড্যাক্স ফর্মুলাতে মন্তব্য যোগ করা সহজ এবং কার্যকরী একটি উপায়।
DAX (Data Analysis Expressions) হল একটি ভাষা যা Power BI, Power Pivot, এবং SQL Server Analysis Services (SSAS) এর মতো মাইক্রোসফট প্রযুক্তিতে ব্যবহৃত হয়। DAX ফাংশনগুলি ডেটা মডেলিং এবং রিপোর্টিংয়ের জন্য ব্যবহার করা হয়, যাতে আমরা শক্তিশালী বিশ্লেষণ এবং কাস্টম ক্যালকুলেশন তৈরি করতে পারি।
এখানে, আমরা DAX Nested Functions এবং Complex Expressions সম্পর্কে বিস্তারিত আলোচনা করব, যাতে আপনি বুঝতে পারেন কিভাবে এই ফাংশনগুলি ব্যবহার করে আরও জটিল এবং শক্তিশালী বিশ্লেষণ তৈরি করা যায়।
Nested Functions in DAX
Nested Functions হল DAX ফাংশনের একটি অত্যন্ত গুরুত্বপূর্ণ বৈশিষ্ট্য, যেখানে একটি ফাংশনের মধ্যে অন্য একটি ফাংশন রাখা হয়। এটি ব্যবহারকারীদেরকে কাস্টম ক্যালকুলেশন তৈরি করতে সহায়তা করে। একটি ফাংশনের আউটপুট অন্য একটি ফাংশনের ইনপুট হিসেবে ব্যবহার করা হয়।
Nested Functions এর উদাহরণ
ধরা যাক, আমরা SUM ফাংশন এবং IF ফাংশন ব্যবহার করতে চাই, যেখানে IF ফাংশনটি একটি শর্ত পরীক্ষা করবে এবং যদি সেই শর্ত পূর্ণ হয়, তবে এটি SUM ফাংশনকে চালাবে।
IF(SUM(Sales[Amount]) > 1000, "High Sales", "Low Sales")
এই উদাহরণে:
- SUM(Sales[Amount]) হচ্ছে একটি ফাংশন যা সেলস অ্যামাউন্টের মোট যোগফল বের করবে।
- IF() ফাংশনটি এই যোগফলটির উপর ভিত্তি করে একটি শর্তমূলক পরীক্ষা করবে।
যদি SUM(Sales[Amount]) > 1000 হয়, তবে "High Sales" রিটার্ন করবে, না হলে "Low Sales" রিটার্ন করবে।
আরও একটি উদাহরণ:
ধরা যাক, আপনি চাচ্ছেন যে, কিছু নির্দিষ্ট শর্তের উপর ভিত্তি করে মোট সেলসের যোগফল বের করতে, এবং আপনি CALCULATE এবং FILTER ফাংশন ব্যবহার করতে চান:
CALCULATE(SUM(Sales[Amount]), FILTER(Sales, Sales[Region] = "North"))
এখানে:
- FILTER ফাংশনটি Sales টেবিল থেকে Region কন্ডিশনের মাধ্যমে North অঞ্চলের সেলস ডেটা ফিল্টার করবে।
- CALCULATE ফাংশনটি সেই ফিল্টার করা ডেটার উপর SUM ফাংশন প্রয়োগ করবে এবং ফলস্বরূপ ক্যালকুলেটেড সেলস মান প্রদান করবে।
Complex Expressions in DAX
Complex Expressions DAX-এ একাধিক ফাংশন এবং অপারেটরকে একত্রিত করে জটিল ক্যালকুলেশন তৈরি করতে ব্যবহৃত হয়। এই ধরনের এক্সপ্রেশনগুলি বিভিন্ন ফাংশন এবং শর্তের সমন্বয় ব্যবহার করে ডেটার বিশ্লেষণ ও কাস্টম ক্যালকুলেশন তৈরি করার জন্য ব্যবহার করা হয়।
Complex Expression এর উদাহরণ
ধরা যাক, আপনি একটি Sales Performance মাপ তৈরী করতে চান যেখানে Total Sales এবং Target Sales এর মধ্যে পার্থক্য বের করতে হবে এবং যদি পার্থক্য নেতিবাচক হয়, তবে তা শূন্য হিসেবে দেখাতে হবে। এখানে আমরা IF, SUM, এবং MAX ফাংশন ব্যবহার করতে পারি।
Sales Performance = MAX(0, SUM(Sales[Amount]) - SUM(Target[Amount]))
এখানে:
- SUM(Sales[Amount]) মোট সেলস অ্যামাউন্ট হিসাব করে।
- SUM(Target[Amount]) লক্ষ্য (target) সেলস অ্যামাউন্ট হিসাব করে।
- MAX(0, ...) ফাংশনটি নেতিবাচক মানের পরিবর্তে শূন্য দেখাবে।
এভাবে, আপনি নিশ্চিত করতে পারেন যে Sales Performance কখনই শূন্যের নিচে যাবে না।
আরেকটি Complex Expression উদাহরণ:
ধরা যাক, আপনাকে একটি রিপোর্ট তৈরি করতে হবে যা কাস্টমারের পছন্দের পণ্যের উপর ভিত্তি করে সেলস ক্যাটেগরি নির্ধারণ করবে। এখানে SWITCH এবং TRUE ফাংশন ব্যবহার করা যাবে।
Sales Category = SWITCH(TRUE(),
Sales[Amount] >= 1000, "High",
Sales[Amount] >= 500, "Medium",
"Low")
এখানে:
- SWITCH(TRUE(), ...) একটি শর্তযুক্ত কন্ডিশন তৈরি করবে, যেখানে প্রথম শর্তটি TRUE রিটার্ন করলে পরবর্তী শর্ত কার্যকর হবে।
- এই ক্যালকুলেশন অনুযায়ী:
- যদি সেলস অ্যামাউন্ট 1000 বা তার বেশি হয়, তবে এটি "High" ক্যাটেগরি রিটার্ন করবে।
- যদি সেলস অ্যামাউন্ট 500 বা তার বেশি, তবে এটি "Medium" রিটার্ন করবে।
- অন্যথায়, এটি "Low" রিটার্ন করবে।
Nested Functions এবং Complex Expressions এর সুবিধা
১. শক্তিশালী কাস্টম ক্যালকুলেশন
Nested Functions এবং Complex Expressions ব্যবহার করে আপনি কাস্টম এবং জটিল ক্যালকুলেশন তৈরি করতে পারেন, যা সহজতর বিশ্লেষণ এবং রিপোর্টিংয়ের জন্য সহায়ক।
২. ডেটা বিশ্লেষণের গভীরতা বৃদ্ধি
এই ফাংশনগুলি আপনাকে ডেটার মধ্যে deep insights বের করতে সহায়ক করে, যেমন পারফরম্যান্স বিশ্লেষণ, প্রবণতা শনাক্তকরণ, এবং ব্যবসায়িক সিদ্ধান্ত গ্রহণে সহায়তা।
৩. ফ্লেক্সিবিলিটি এবং কাস্টমাইজেশন
এটি ব্যবহারকারীদের ডেটা মডেলিং এবং রিপোর্টিং টুলসকে কাস্টমাইজ করার জন্য ব্যাপক ফ্লেক্সিবিলিটি প্রদান করে, যা তাদের নির্দিষ্ট ব্যবসায়িক চাহিদার সাথে মানানসই।
সারাংশ
DAX Nested Functions এবং Complex Expressions হল DAX-এর গুরুত্বপূর্ণ বৈশিষ্ট্য যা ব্যবহারকারীদেরকে কাস্টম এবং জটিল ক্যালকুলেশন তৈরি করতে সহায়ক করে। Nested Functions একাধিক ফাংশনের সমন্বয়ে তৈরি হয়, যা ডেটার মধ্যে সম্পর্ক এবং শর্ত পরীক্ষা করতে সহায়ক, এবং Complex Expressions ডেটা বিশ্লেষণকে আরও গভীর এবং শক্তিশালী করে তোলে। এই ফিচারগুলির মাধ্যমে, কগনোস ব্যবহারকারীরা আরও সুনির্দিষ্ট এবং কার্যকরী ডেটা বিশ্লেষণ করতে সক্ষম হন।
Read more