DAX (Data Analysis Expressions) হল একটি শক্তিশালী ভাষা যা Power BI, Power Pivot, এবং SQL Server Analysis Services (SSAS) এ ব্যবহৃত হয়। DAX ফাংশনগুলি conditional aggregation করার জন্য বিশেষভাবে ডিজাইন করা হয়েছে, যার মাধ্যমে আপনি শর্ত অনুযায়ী কাস্টম গণনা এবং পরিমাপ তৈরি করতে পারেন। এই প্রবন্ধে, আমরা দুটি গুরুত্বপূর্ণ DAX ফাংশন SUMX এবং AVERAGEX এর মাধ্যমে কিভাবে conditional aggregation করা যায় তা আলোচনা করব।
১. SUMX ফাংশন
SUMX একটি রিলেটেড ফাংশন, যা একটি table বা expression এর জন্য conditional aggregation করতে ব্যবহৃত হয়। এটি একটি টেবিল বা রেঞ্জের মধ্যে প্রতিটি সারির উপর গণনা (calculation) করে এবং তারপর সেই মানগুলির যোগফল প্রদান করে।
Syntax:
SUMX(<table>, <expression>)
- : এটি একটি টেবিল বা রেঞ্জ হতে পারে, যার ওপর গণনা করতে হবে।
- : এটি একটি এক্সপ্রেশন বা ফর্মুলা যা প্রতি সারি/রেঞ্জে প্রয়োগ করা হবে।
ব্যবহার:
SUMX ফাংশনটি ব্যবহৃত হয় যখন আপনি একটি টেবিল বা রেঞ্জের উপর একটি কাস্টম এক্সপ্রেশন প্রয়োগ করতে চান, এবং তারপরে সেই এক্সপ্রেশনের যোগফল বের করতে চান। এটি সাধারণত row context এর মধ্যে কাজ করে এবং প্রতিটি রো বা কলামের জন্য আলাদা আলাদা ক্যালকুলেশন করে।
উদাহরণ:
ধরা যাক, আপনার কাছে একটি Sales টেবিল রয়েছে এবং আপনি Quantity এবং UnitPrice কলামগুলোকে একসাথে গুণ করে মোট বিক্রয় (Total Sales) বের করতে চান:
Total Sales = SUMX(Sales, Sales[Quantity] * Sales[UnitPrice])
এখানে:
- Sales টেবিলের প্রতিটি সারির জন্য, Quantity এবং UnitPrice এর গুণফল হিসাব করা হবে।
- তারপর, সব সারির গুণফল যোগ করে মোট বিক্রয় বের করা হবে।
Conditional Aggregation:
আপনি যদি একটি শর্তের ভিত্তিতে SUMX ব্যবহার করতে চান, যেমন বিক্রয় পরিমাণ 1000 এর বেশি হলে, আপনি একটি IF শর্ত ব্যবহার করতে পারেন:
Total Sales > 1000 = SUMX(FILTER(Sales, Sales[Quantity] > 1000), Sales[Quantity] * Sales[UnitPrice])
এখানে:
- FILTER ফাংশনের মাধ্যমে Sales টেবিলকে Quantity > 1000 শর্ত অনুযায়ী ফিল্টার করা হয়েছে।
- এরপর, SUMX ফাংশনটি এই ফিল্টার করা টেবিলের প্রতি সারির গুণফল যোগ করবে।
২. AVERAGEX ফাংশন
AVERAGEX ফাংশনটি SUMX ফাংশনের মতোই কাজ করে, তবে এটি গড় মান (average) বের করার জন্য ব্যবহৃত হয়। এটি একটি টেবিল বা এক্সপ্রেশন নিয়ে কাজ করে এবং প্রতিটি সারির জন্য গণনা করার পর তাদের গড় প্রদান করে।
Syntax:
AVERAGEX(<table>, <expression>)
- : এটি একটি টেবিল বা রেঞ্জ হতে পারে, যার ওপর গড় হিসাব করতে হবে।
- : এটি একটি এক্সপ্রেশন বা ফর্মুলা যা প্রতি সারি/রেঞ্জে প্রয়োগ করা হবে।
ব্যবহার:
AVERAGEX ফাংশনটি ব্যবহার করে আপনি একটি টেবিল বা রেঞ্জের উপর শর্তাধীন গড় বের করতে পারেন।
উদাহরণ:
ধরা যাক, আপনি Sales টেবিলের Quantity এবং UnitPrice কলামের গড় গুণফল বের করতে চান:
Average Sales = AVERAGEX(Sales, Sales[Quantity] * Sales[UnitPrice])
এখানে:
- AVERAGEX প্রতিটি সারির জন্য Quantity এবং UnitPrice গুণ করে গড় বের করবে।
- তারপর, সমস্ত সারির গুণফলের গড় প্রদান করবে।
Conditional Aggregation:
আপনি AVERAGEX ফাংশনটি শর্ত ব্যবহার করে কাস্টম গড় বের করতে ব্যবহার করতে পারেন। উদাহরণস্বরূপ, আপনি যদি শুধু সেই রেকর্ডগুলির গড় বের করতে চান, যেখানে Quantity 500 এর বেশি, তাহলে:
Average Sales (Quantity > 500) = AVERAGEX(FILTER(Sales, Sales[Quantity] > 500), Sales[Quantity] * Sales[UnitPrice])
এখানে:
- FILTER ফাংশনটি Sales টেবিলের শুধু সেই সারিগুলোকেই নির্বাচন করবে যেখানে Quantity > 500।
- এরপর, AVERAGEX এই ফিল্টার করা টেবিলের গুণফলের গড় বের করবে।
SUMX এবং AVERAGEX এর মধ্যে পার্থক্য
- SUMX একটি টেবিল বা এক্সপ্রেশনের উপর প্রতিটি সারির যোগফল বের করে এবং তারপর সেই যোগফলের মান প্রদান করে।
- AVERAGEX একটি টেবিল বা এক্সপ্রেশনের উপর প্রতিটি সারির মান হিসাব করে এবং তারপর তার গড় প্রদান করে।
এগুলো conditional aggregation তৈরি করার জন্য ব্যবহৃত হয় যেখানে filtering এর মাধ্যমে একটি শর্ত অনুযায়ী টেবিল বা ডেটা সিলেক্ট করা হয় এবং তারপর নির্দিষ্ট গণনা করা হয়।
সারাংশ
SUMX এবং AVERAGEX ফাংশনগুলি DAX-এ conditional aggregation করার জন্য অত্যন্ত শক্তিশালী টুল। SUMX ফাংশনটি একটি টেবিলের উপর প্রতিটি সারির জন্য কাস্টম এক্সপ্রেশন প্রয়োগ করে তাদের যোগফল বের করতে সাহায্য করে, এবং AVERAGEX ফাংশনটি সেই এক্সপ্রেশনগুলির গড় বের করতে ব্যবহৃত হয়। এই ফাংশনগুলো আপনার Power BI বা Excel মডেলে ডেটার ওপর গাণিতিক এবং পরিসংখ্যানগত বিশ্লেষণ সহজ করে তোলে এবং সঠিক সিদ্ধান্ত গ্রহণে সহায়তা করে।
Read more