
বড় ডেটাসেটের সাথে কাজ করার সময় এক্সেলে IF এবং VLOOKUP-এর মতো অ্যাডভান্সড ফর্মুলা ক্লাঙ্কি হয়ে যেতে পারে। অন্যদিকে, পাওয়ার বি Data Analysis Expressions (DAX) অফার করে, যা এই জটিল ক্যালকুলেশনগুলোকে স্ট্রিমলাইন ও সিম্পলিফাই করতে পারে। DAX ফর্মুলা আপনাকে ক্যালকুলেটেড কলাম, মেজার, এবং টেবিল তৈরি করতে দেয় যা প্রায়নিয় এক্সেল ফর্মুলা চেয়ে বেশি ইফিশিয়েন্ট এবং মেইনটেইন করা সহজ।
এই টিউটোরিয়ালে আমরা ৫টি পাওয়ার বি DAX ফর্মুলা এক্সপ্লোর করব যা জটিল এক্সেল ক্যালকুলেশন সরল করে। আপনি যদি এক্সেল পাওয়ার ইউজার হন, তবে DAX ফর্মুলা শিখলে আপনার পাওয়ার বি স্কিল বাড়বে এবং আপনার ডেটা অ্যানালিসিস আরও রবাস্ট এবং ইফিশিয়েন্ট হবে।
১. CALCULATE: ফিল্টার কনটেক্সট মডিফাই করা
এক্সেলে নির্দিষ্ট কন্ডিশন ভিত্তিক ভ্যালু ক্যালকুলেট করতে নেস্টেড IF স্টেটমেন্ট প্রয়োজন হয় অনেক সময়। DAX-এর CALCULATE ফাংশন আপনাকে ফিল্টার কনটেক্সট আরও ইফিশিয়েন্টলি এবং রিডেবলভাবে মডিফাই করতে দেয়। এটি সবচেয়ে পাওয়ারফুল DAX ফাংশনগুলির একটি, যা জটিল এগ্রিগেশন এবং ডাইনামিক ফিল্টারিং সক্ষম করে।
এক্সেল সমতুল্য: নেস্টেড IF স্টেটমেন্ট
এক্সেলে আপনার কিছু এমন হতে পারে:
=IF(A2 > 100, "High", IF(A2 > 50, "Medium", "Low"))
পাওয়ার বি DAX:
Filter Sales Category = CALCULATE ( IF (SUM(Sales[SalesAmount]) > 50000, "High", "Low"), Products[Category] = "Book" )

এই কেসে, CALCULATE ফিল্টার কনটেক্সটকে পরিবর্তন করে শুধু "Book"-এর ডেটা ইনক্লুড করে এবং তারপর যাচাই করে টোটাল সেলস অ্যামাউন্ট ৫০,০০০-এর বেশি কিনা।
CALCULATE করেন্ট ফিল্টার কনটেক্সট মডিফাই করে। এটি পাওয়ার বিকে বলে বর্তমান ফিল্টারগুলো উপেক্ষা করে এবং নির্দিষ্ট কন্ডিশন অ্যাপ্লাই করে। আপনি একাধিক কন্ডিশনও স্ট্যাক করতে পারেন।
২. RELATED: রিলেটেড টেবিল অ্যাক্সেস করা
এক্সেল অন্য টেবিল থেকে রিলেটেড ভ্যালু রিট্রিভ করতে লুকআপ ফাংশন ব্যবহার করে। পাওয়ার বিতে RELATED ফাংশন এই প্রসেসকে আরও সরল এবং ইফিশিয়েন্ট করে দেয়।
এক্সেল সমতুল্য: VLOOKUP
এক্সেলে এমন একটি ফর্মুলা:
=VLOOKUP(A2, SalesData, 2, FALSE)
SalesData টেবিলের সেকেন্ড কলাম থেকে ভ্যালু রিট্রিভ করে যেখানে ফার্স্ট কলাম A2-এর ভ্যালুর সাথে মॅাচ করে।
পাওয়ার বি DAX: RELATED
DAX-এ RELATED ফাংশন একটি রিলেটেড টেবিল থেকে ভ্যালু রিট্রিভ করে। RELATED ব্যবহার করতে পাওয়ার বি ডেটা মডেলে দুটি টেবিলের মধ্যে রিলেশনশিপ থাকতে হবে।
- Sales টেবিলে ক্যালকুলেটেড কলাম
Product Category = RELATED(Products[Category])

এখানে, RELATED ফাংশন বিদ্যমান রিলেশনশিপের ভিত্তিতে Products টেবিল থেকে Product Category ফেচ করে। এটি জটিল লুকআপ ফর্মুলার প্রয়োজন নেই করে দেয় এবং ডেটা মডেলের সুবিধা নেয়ে এরর কমায়।
৩. SWITCH(TRUE(), …): নেস্টেড IF স্টেটমেন্টের জন্য ক্লিনার রিপ্লেসমেন্ট
এক্সেলের IF ফাংশন একাধিক কন্ডিশন হলে ম্যানেজ করা কঠিন হয়, কিন্তু DAX-এর SWITCH ফাংশন কন্ডিশনাল লজিক স্ট্রিমলাইন করে। এটি spesially উপযোগী যখন একাধিক কন্ডিশন হ্যান্ডল করতে হয় গভীর নেস্টেড IF স্টেটমেন্ট ছাড়া।
এক্সেল সমতুল্য: নেস্টেড IF স্টেটমেন্ট
এক্সেলে আপনি এমন কিছু ব্যবহার করতে পারেন:
=IF(A2>100000,"High",IF(A2>50000,"Medium",IF(A2>10000,"Low","Tiny")))
পাওয়ার বি DAX:
Sales Tier = SWITCH( TRUE(), [Total Sales] > 200000, "High Performer", [Total Sales] > 150000, "Strong", [Total Sales] > 100000, "Moderate", "Entry Level" )

[Total Sales] হলো অন্য একটি মেজার:
Total Sales = SUM(Sales[Amount])
Customer Segment: ক্যালকুলেটেড কলাম
Customer Segment Logic = SWITCH( TRUE(), CALCULATE([Total Sales]) > 75000 && RELATED(Regions[Country]) = "United States", "US VIP", CALCULATE([Total Sales]) > 50000 && RELATED(Regions[Country]) = "United Kingdom", "UK Premium", CALCULATE([Total Sales]) > 30000 && RELATED(Regions[Country]) = "Canada", "Canada Premium", Customers[CustomerType] = "Premium", "Premium Customer", "Standard" )

এই অ্যাপ্রোচ গভীর নেস্টেড IF স্টেটমেন্ট চেয়ে উল্লেখযোগ্যভাবে বেশি রিডেবল। এটি ক্লাসিফিকেশন লজিকের জন্য আদর্শ যেমন সেগমেন্টেশন, ব্যান্ডিং, বা KPI ক্যাটেগরাইজেশন।
৪. SUMX: একটি টেবিলের ওপর ইটেরেট করে সমষ্টি ক্যালকুলেট করা
যখন আপনাকে রো বাই রো ক্যালকুলেশন করে তারপর রেজাল্টগুলো সমষ্টি করতে হয়, তখন SUMX উপযুক্ত ফাংশন। এটি একটি টেবিলের ওপর ইটেরেট করে, প্রতিটি রো için এক্সপ্রেশন ইভ্যালুয়েট করে, এবং তারপর রেজাল্টগুলো যোগ করে।
এক্সেল সমতুল্য: SUMPRODUCT
এক্সেলে আপনি ব্যবহার করতে পারেন:
=SUMPRODUCT(A2:A10, B2:B10)
পাওয়ার বি DAX:
Total Revenue = SUMX( Sales, Sales[Quantity] * Sales[UnitPrice] )

SUMX ফাংশন Sales টেবিলের প্রতিটি রোতে ইটেরেট করে, Quantity কে UnitPrice দিয়ে গুন করে, এবং তারপর রেজাল্টগুলো সমষ্টি করে।
৫. CALCULATE + টাইম ইন্টেলিজেন্স: ম্যানুয়াল ডেট লজিক দূর করা
এক্সেলে টাইম-ভিত্তিক ক্যালকুলেশন প্রায়শই জটিল SUMIFS, OFFSET, বা INDEX/MATCH প্যাটার্নের ওপর নির্ভর করে। DAX বিল্ট-ইন টাইম-ইন্টেলিজেন্স ফাংশন অফার করে যা এই টাস্কগুলোকে সরল করে।
পাওয়ার বি DAX:
Sales YoY % Growth = VAR CurrentSales = SUM(Sales[SalesAmount]) VAR PreviousSales = CALCULATE( SUM(Sales[SalesAmount]), SAMEPERIODLASTYEAR('Calendar'[Date]) ) RETURN DIVIDE(CurrentSales - PreviousSales, PreviousSales, 0)

সিম্পল বিল্ট-ইন টাইম-ইন্টেলিজেন্স মেজার:
YTD Sales = TOTALYTD( SUM(Sales[SalesAmount]), 'Calendar'[Date] )
Sales vs Last Year = CALCULATE( SUM(Sales[SalesAmount]), PARALLELPERIOD('Calendar'[Date], -1, YEAR) )
এই ফাংশনগুলো আপনার রিপোর্টের যেকোনো ডেট ফিল্টারসহ স্মুথলি কাজ করে, স্লাইসারসহ মাস, কোয়ার্টার, বা ফিস্কাল ইয়ারের জন্য। কোনো হেল্পার কলাম বা ম্যানুয়াল অ্যাডজাস্টমেন্ট প্রয়োজন নেই।
রিপোর্টে DAX ফর্মুলা:

টিপ: এরর হ্যান্ডল করার জন্য DIVIDE ব্যবহার করুন
এক্সেলে শূন্য দিয়ে ভাগ করলে প্রায়শই এরর হয়। DAX DIVIDE ফাংশন দিয়ে আরও রবাস্ট সমাধান দেয়, যা ডিভিশন বাই জিরো গ্রেসফুলি হ্যান্ডল করে।
DIVIDE ফাংশন আপনাকে ডিভিশন বাই জিরো হলে অল্টারনেটিভ রেজাল্ট স্পেসিফাই করতে দেয়:
Profit Margin = DIVIDE(Sales[Profit], Sales[Total Revenue], 0)
এই ফাংশন ডিনোমিনেটর শূন্য হলে ০ রিটার্ন করে, অতিরিক্ত লজিক ছাড়া এরর এড়ায়।
এক্সেল ইউজারদের জন্য কুইক স্টার্ট টিপস
- সবসময় প্রথমে রিলেশনশিপ বানান: এটিই সেটা যেখানে RELATED এবং CALCULATE তাদের শক্তি পায়
- কলামের বদলে মেজার তৈরি করুন: মেজার সাধারণত ফাস্টার এবং বেশি নমনীয়
- ভেরিয়েবল (VAR) ব্যবহার করুন: এগুলো রিডেবিলিটি এবং মেইনটেইনেবিলিটি বাড়ায়
- ব্ল্যাঙ্ক ভিজুয়ালে টেস্ট করুন: কার্ড বা স্লাইসারসহ টেবিল দিয়ে মেজার ভ্যালিডেট করুন
- পারফরম্যান্স টিপ: ফিল্টার যতটা সম্ভব ন্যারো রাখুন; ডায়রেক্ট কলাম ফিল্টার সাধারণত ফুল টেবিল স্ক্যান চেয়ে ফাস্ট
উপসংহার
এই পাঁচটি পাওয়ার বি DAX ফর্মুলা — CALCULATE, RELATED, SWITCH, SUMX, এবং টাইম-ইন্টেলিজেন্স ফাংশন — এক্সেলের জটিল ফর্মুলার মতো নেস্টেড IF স্টেটমেন্ট বা VLOOKUP প্রয়োজন হতো এমন ক্যালকুলেশন হ্যান্ডল করার জন্য একটি ক্লিনার এবং আরও ইফিশিয়েন্ট উপায় প্রদান করে। এই টেকনিকগুলো আপনার ওয়ার্কফ্লোতে অন্তর্ভুক্ত করলে আপনি আপনার ডেটা মডেল সিম্পলিফাই করতে পারবেন, পারফরম্যান্স উন্নত করতে পারবেন, এবং আরও স্কেলেবল রিপোর্ট বানাতে পারবেন।
Get FREE Advanced Excel Exercises with Solutions!