DAX (Data Analysis Expressions) হলো একটি শক্তিশালী ফর্মুলা ভাষা, যা Power Pivot, Power BI, এবং SQL Server Analysis Services (SSAS) এ ব্যবহৃত হয়। DAX-এর মাধ্যমে আপনি জটিল ক্যালকুলেশন এবং বিশ্লেষণ করতে পারেন। এক্সেল পাওয়ার পিভট-এ DAX ফর্মুলা ব্যবহার করে বিভিন্ন কাস্টম ক্যালকুলেশন, মেট্রিক্স এবং ফলাফল তৈরি করা হয়।
DAX এর বেসিক সিনট্যাক্স
DAX-এর সিনট্যাক্স সাধারণত Excel এর ফর্মুলার মতো হলেও কিছু গুরুত্বপূর্ণ পার্থক্য রয়েছে। এখানে DAX-এর মূল উপাদান এবং এর বেসিক সিনট্যাক্স ব্যাখ্যা করা হলো:
১. ফাংশন এবং আর্গুমেন্টস
DAX ফর্মুলায় ফাংশনগুলি সঠিকভাবে কাজ করতে, প্রয়োজনীয় আর্গুমেন্টস দিতে হয়। ফাংশন সাধারণত একটি নাম এবং তার পরে প্যারেনথেসিসে ( ) আর্গুমেন্টগুলো নিয়ে থাকে।
সাধারণ সিনট্যাক্স:
FunctionName(Argument1, Argument2, ...)
যেখানে:
- FunctionName হলো DAX ফাংশন যেমন: SUM, AVERAGE, COUNT, CALCULATE ইত্যাদি।
- Argument1, Argument2 হলো সেই ডেটা বা কলাম, যার উপর ফাংশনটি কাজ করবে।
উদাহরণ:
SUM(Sales[Amount])
এই ফর্মুলাটি Sales টেবিলের Amount কলামের সমস্ত মান যোগ করবে।
২. অপারেটরস (Operators)
DAX-এ বিভিন্ন ধরনের অপারেটর ব্যবহৃত হয়, যেমন:
- গণনা অপারেটর (Arithmetic Operators):
+,-,*,/- উদাহরণ:
Total = Sales[Quantity] * Sales[Price]
- উদাহরণ:
- তুলনা অপারেটর (Comparison Operators):
=,<,>,<=,>=,<>- উদাহরণ:
IsHighSale = IF(Sales[Amount] > 1000, "Yes", "No")
- উদাহরণ:
- লজিক্যাল অপারেটর (Logical Operators):
AND,OR,NOT- উদাহরণ:
Result = IF(Sales[Amount] > 1000 && Sales[Quantity] > 50, "High", "Low")
- উদাহরণ:
৩. DAX ফাংশনগুলো
SUM():
এই ফাংশনটি একটি কলামের সব মানের যোগফল বের করে।
সিনট্যাক্স:
SUM(ColumnName)
উদাহরণ:
SUM(Sales[Amount])
এই ফর্মুলাটি Sales টেবিলের Amount কলামের সমস্ত মান যোগ করবে।
AVERAGE():
এই ফাংশনটি একটি কলামের গড় মান বের করে।
সিনট্যাক্স:
AVERAGE(ColumnName)
উদাহরণ:
AVERAGE(Sales[Amount])
এই ফর্মুলাটি Sales টেবিলের Amount কলামের গড় মান বের করবে।
COUNT():
এই ফাংশনটি একটি কলামে মোট কতটি সংখ্যা (Numeric Values) রয়েছে তা গণনা করে।
সিনট্যাক্স:
COUNT(ColumnName)
উদাহরণ:
COUNT(Sales[Amount])
এই ফর্মুলাটি Sales টেবিলের Amount কলামের মোট সংখ্যা গণনা করবে।
IF():
এই ফাংশনটি একটি শর্ত ভিত্তিক ফলাফল দেয়। এটি True অথবা False শর্তের উপর নির্ভর করে একটি মান ফেরত দেয়।
সিনট্যাক্স:
IF(Condition, ResultIfTrue, ResultIfFalse)
উদাহরণ:
IF(Sales[Amount] > 1000, "High", "Low")
এই ফর্মুলাটি চেক করবে যদি Sales[Amount] 1000 এর বেশি হয় তবে "High", নতুবা "Low" ফিরিয়ে দেবে।
CALCULATE():
এই ফাংশনটি নির্দিষ্ট কন্ডিশনের উপর ভিত্তি করে গণনা করার জন্য ব্যবহৃত হয়। এটি কন্ডিশন এবং নির্দিষ্ট ফিল্টার প্রয়োগ করে একটি নতুন পরিমাপ বের করে।
সিনট্যাক্স:
CALCULATE(Expression, Filter1, Filter2, ...)
উদাহরণ:
CALCULATE(SUM(Sales[Amount]), Sales[Region] = "East")
এই ফর্মুলাটি Sales টেবিলের Amount কলামের যোগফল বের করবে যেখানে Region "East"।
RELATED():
এই ফাংশনটি ব্যবহৃত হয় যখন আপনি একাধিক টেবিলের মধ্যে সম্পর্ক তৈরি করেছেন। এটি এক টেবিল থেকে আরেক টেবিলের ডেটা আনতে সাহায্য করে।
সিনট্যাক্স:
RELATED(ColumnName)
উদাহরণ:
RELATED(Customers[CustomerName])
এই ফর্মুলাটি Customers টেবিলের CustomerName কলাম থেকে ডেটা আনবে।
৪. ডেটা টাইপ এবং কনভার্সন
DAX-এ ডেটা টাইপ পরিবর্তন করতে CONVERT() বা VALUE() এর মতো ফাংশন ব্যবহার করা হয়।
সিনট্যাক্স:
CONVERT(Expression, DataType)
উদাহরণ:
CONVERT(Sales[Amount], STRING)
এটি Sales[Amount] কলামের মানকে স্ট্রিং (STRING) টাইপে রূপান্তর করবে।
৫. FILTER():
এই ফাংশনটি টেবিলের মধ্যে নির্দিষ্ট শর্তে ফিল্টার করে ডেটা ফিরিয়ে আনে।
সিনট্যাক্স:
FILTER(TableName, Condition)
উদাহরণ:
FILTER(Sales, Sales[Amount] > 1000)
এই ফর্মুলাটি Sales টেবিল থেকে সব রেকর্ডকে ফিল্টার করবে, যেখানে Amount 1000 এর বেশি।
DAX এর কিছু গুরুত্বপূর্ণ টিপস
- ডেটা টাইপ মেনে চলুন: DAX ফর্মুলার মধ্যে সঠিক ডেটা টাইপ ব্যবহার করা খুবই গুরুত্বপূর্ণ। ভুল ডেটা টাইপ ব্যবহার করলে ফর্মুলা কাজ নাও করতে পারে।
- ফর্মুলা সহজ রাখুন: DAX ফর্মুলাগুলো সোজা এবং সহজ রাখুন, যাতে সহজেই বিশ্লেষণ করা যায় এবং ডিবাগ করা সহজ হয়।
- CALCULATE() ব্যবহার করুন: CALCULATE ফাংশনটি DAX-এ অত্যন্ত গুরুত্বপূর্ণ, কারণ এটি বিভিন্ন ফিল্টার প্রয়োগ করে কাস্টম পরিমাপ তৈরি করতে সহায়তা করে।
DAX এর বেসিক সিনট্যাক্স বুঝে আপনি Power Pivot-এ আরও শক্তিশালী ডেটা মডেল তৈরি করতে পারবেন এবং ডেটার উপর ভিত্তি করে জটিল কাস্টম ক্যালকুলেশন করতে পারবেন।
Read more