DAX: COUNT না DISTINCTCOUNT? কখন, কীভাবে?
DAX AVERAGE ফাংশন: উদাহরণসহ সহজ ব্যাখ্যা
পাওয়ার BI-এ প্রথম DAX মেজার: সহজ শুরু!

DAX AVERAGE ফাংশন: উদাহরণসহ সহজ ব্যাখ্যা

Table of Contents

DAX AVERAGE ফাংশন: সহজ করে বুঝুন উদাহরণসহ!

ডাটা অ্যানালাইসিস বা ডেটা বিশ্লেষণ আজকাল আমাদের দৈনন্দিন জীবনের এক অবিচ্ছেদ্য অংশ হয়ে উঠেছে, তাই না? স্কুল-কলেজের পরীক্ষার ফলাফল থেকে শুরু করে অফিসের মাসিক রিপোর্ট – সবখানেই আমরা গড় বা এভারেজ বের করি। আর এই গড় বের করার জন্য মাইক্রোসফট পাওয়ার BI-এর DAX (Data Analysis Expressions) এ রয়েছে এক দারুণ ফাংশন – AVERAGE ফাংশন! ভাবছেন, DAX আবার কী? সহজ ভাষায় বলতে গেলে, DAX হলো পাওয়ার BI, পাওয়ার পিভট (Power Pivot) এবং এসএসএএস ট্যাবলার (SSAS Tabular)-এর জন্য তৈরি একটি ফর্মুলা ল্যাঙ্গুয়েজ। এটা অনেকটা এক্সেলের ফর্মুলার মতো, কিন্তু আরও শক্তিশালী এবং ডেটা মডেলের সাথে কাজ করার জন্য বিশেষভাবে ডিজাইন করা হয়েছে।

আজ আমরা এই DAX AVERAGE ফাংশন নিয়ে বিস্তারিত আলোচনা করব, একদম সহজভাবে, যেন আপনি একজন নতুন ব্যবহারকারী হলেও সহজেই বুঝতে পারেন। চলুন তাহলে, গড় আর DAX-এর মজার জগতে ডুব দেই!

DAX AVERAGE ফাংশন কী এবং কেন এটি এত গুরুত্বপূর্ণ?

DAX-এর AVERAGE ফাংশনটি মূলত একটি কলামের মধ্যে থাকা সকল সংখ্যার গাণিতিক গড় (Arithmetic Mean) বের করতে ব্যবহৃত হয়। অর্থাৎ, এটি একটি কলামের সব সংখ্যাকে যোগ করে সেই কলামে যতগুলো সংখ্যা আছে, তা দিয়ে ভাগ করে ফলাফল দেয়।

কেন এটি এত গুরুত্বপূর্ণ?

ধরুন, আপনার একটি দোকানের এক মাসের বিক্রির ডেটা আছে। প্রতিটি দিনের বিক্রি আলাদা আলাদা করে লেখা আছে। এখন আপনার মালিক জানতে চাইলেন, "এই মাসে আমাদের দৈনিক গড় বিক্রি কত ছিল?" অথবা, "গত তিন মাসে আমাদের গড় লাভ কত?" এই ধরনের প্রশ্নগুলোর উত্তর দিতেই AVERAGE ফাংশনটি কাজে লাগে।

বাংলাদেশের প্রেক্ষাপটে ভাবুন, একজন গার্মেন্টস ফ্যাক্টরির মালিক তার কর্মীদের দৈনিক গড় উৎপাদনশীলতা জানতে চান, অথবা একজন কৃষিবিদ জানতে চান একটি নির্দিষ্ট এলাকায় প্রতি বিঘা জমিতে ধান উৎপাদনের গড় ফলন কত। এই সব ক্ষেত্রেই AVERAGE ফাংশন আপনাকে দ্রুত এবং নির্ভুলভাবে তথ্য দিতে সাহায্য করবে।

AVERAGE ফাংশনের সিনট্যাক্স এবং ব্যবহার

DAX-এর AVERAGE ফাংশনের সিনট্যাক্স (Syntax) বা লেখার নিয়মটি খুবই সহজ:

AVERAGE(<column>)

এখানে <column> বলতে আপনি যে কলামের গড় বের করতে চান, সেই কলামের নাম বোঝায়।

উদাহরণ:

ধরি, আপনার কাছে একটি টেবিল আছে যার নাম 'বিক্রি' (Sales) এবং সেখানে 'পরিমাণ' (Quantity) নামের একটি কলাম আছে যেখানে প্রতিটি বিক্রির পরিমাণ লেখা আছে। আপনি যদি মোট গড় বিক্রির পরিমাণ বের করতে চান, তাহলে ফর্মুলাটি হবে:

Enhanced Content Image

গড় বিক্রি = AVERAGE(বিক্রি[পরিমাণ])

এই ফর্মুলাটি 'বিক্রি' টেবিলের 'পরিমাণ' কলামে থাকা সব সংখ্যার গড় বের করে দেবে।

বাস্তব উদাহরণ: একটি মুদি দোকানের ডেটা বিশ্লেষণ

চলুন, একটি বাস্তব উদাহরণ দিয়ে বিষয়টি আরও পরিষ্কার করি। ধরুন, আপনার একটি মুদি দোকান আছে 'সাদিয়া স্টোর' নামে, এবং আপনি পাওয়ার BI ব্যবহার করে আপনার দোকানের বিক্রি বিশ্লেষণ করছেন। আপনার কাছে 'দৈনিক বিক্রি' (Daily Sales) নামে একটি টেবিল আছে, যেখানে কয়েকটি কলাম আছে:

  • তারিখ (Date): বিক্রির তারিখ
  • পণ্যের নাম (Product Name): বিক্রি হওয়া পণ্যের নাম
  • পরিমাণ (Quantity): বিক্রি হওয়া পণ্যের পরিমাণ (পিস বা কেজি)
  • একক মূল্য (Unit Price): প্রতি ইউনিটের মূল্য
  • মোট মূল্য (Total Price): পরিমাণ * একক মূল্য

এখন আপনি জানতে চান, আপনার দোকানে প্রতিদিন গড়ে কত টাকার পণ্য বিক্রি হয়।

স্টেপ বাই স্টেপ প্রয়োগ:

  1. পাওয়ার BI Desktop খুলুন: আপনার কম্পিউটারে পাওয়ার BI Desktop অ্যাপ্লিকেশনটি চালু করুন।

  2. ডেটা লোড করুন: 'Get Data' অপশন থেকে আপনার 'দৈনিক বিক্রি' ডেটাটি লোড করুন। (ধরুন, এটি একটি Excel ফাইল)।

  3. নতুন পরিমাপ (New Measure) তৈরি করুন: 'দৈনিক বিক্রি' টেবিলটি সিলেক্ট করুন। এরপর 'Modeling' ট্যাবে গিয়ে 'New Measure' এ ক্লিক করুন।

  4. ফর্মুলা লিখুন: নতুন পরিমাপের জন্য যে ফর্মুলা বার আসবে, সেখানে নিচের ফর্মুলাটি লিখুন:

    গড় দৈনিক বিক্রি = AVERAGE('দৈনিক বিক্রি'[মোট মূল্য])
    
  5. ফলাফল দেখুন: এন্টার চাপুন। এখন আপনি এই 'গড় দৈনিক বিক্রি' পরিমাপটি আপনার রিপোর্টে যেকোনো কার্ড (Card) বা টেবিল ভিজুয়ালে টেনে এনে দেখতে পারবেন। এটি আপনাকে আপনার দোকানের দৈনিক গড় বিক্রির পরিমাণ দেখাবে।

দেখলেন তো, কত সহজে আপনি একটি গুরুত্বপূর্ণ ব্যবসায়িক প্রশ্নর উত্তর বের করে ফেললেন!

Enhanced Content Image

AVERAGE ফাংশনের কিছু গুরুত্বপূর্ণ বিষয় ও সীমাবদ্ধতা

যদিও AVERAGE ফাংশনটি খুবই কার্যকরী, এর কিছু বিষয় জেনে রাখা জরুরি:

  • নাল মান (NULL Values): AVERAGE ফাংশনটি নাল মান (অর্থাৎ, খালি সেল) উপেক্ষা করে। যদি আপনার কলামে কিছু খালি সেল থাকে, তাহলে AVERAGE ফাংশন শুধুমাত্র সংখ্যাযুক্ত সেলগুলোকেই হিসাবে নেবে। এটি এক্সেলের AVERAGE ফাংশনের মতোই কাজ করে।
  • নন-নিউমেরিক ডেটা (Non-Numeric Data): যদি আপনার কলামে সংখ্যা ছাড়া অন্য কোনো ডেটা টাইপ (যেমন টেক্সট) থাকে, তাহলে AVERAGE ফাংশন সেগুলোকে উপেক্ষা করবে এবং শুধুমাত্র সংখ্যাগুলোকে গড় করার জন্য ব্যবহার করবে।
  • জিরো মান (Zero Values): জিরো মান (0) কে AVERAGE ফাংশন একটি বৈধ সংখ্যা হিসাবে বিবেচনা করে এবং গড়ের হিসাবে অন্তর্ভুক্ত করে। অর্থাৎ, যদি আপনার কলামে 0 থাকে, সেটি গড়ের উপর প্রভাব ফেলবে।

উদাহরণ:

ধরুন, আপনার 'বিক্রি' কলামে এই মানগুলো আছে: 100, 200, (খালি), 300, "টেক্সট"।
AVERAGE ফাংশনটি 100, 200, 300 এই তিনটি মানকে হিসাবে নেবে এবং এদের গড় হবে (100+200+300)/3 = 200। খালি সেল এবং "টেক্সট" কে উপেক্ষা করা হবে।

AVERAGEA এবং AVERAGEX ফাংশনের সাথে পার্থক্য

DAX-এ AVERAGE ফাংশন ছাড়াও আরও দুটি গড় সম্পর্কিত ফাংশন আছে: AVERAGEA এবং AVERAGEX। এদের মধ্যে পার্থক্য বোঝা জরুরি:

1. AVERAGEA ফাংশন:

AVERAGEA ফাংশনটি টেক্সট এবং বুলিয়ান (TRUE/FALSE) মানগুলোকেও সংখ্যায় রূপান্তর করে গড়ের হিসাবে অন্তর্ভুক্ত করে।

  • টেক্সট মান: টেক্সট মানগুলো 0 (শূন্য) হিসাবে ধরা হয়।
  • TRUE: 1 হিসাবে ধরা হয়।
  • FALSE: 0 হিসাবে ধরা হয়।

Enhanced Content Image

সিনট্যাক্স: AVERAGEA(<column>)

উদাহরণ:

যদি আপনার কলামে 10, 20, "NA", TRUE, FALSE থাকে:
AVERAGEA(কলাম) = (10 + 20 + 0 (NA) + 1 (TRUE) + 0 (FALSE)) / 5 = 31 / 5 = 6.2

AVERAGE ফাংশন শুধু 10 এবং 20 কে হিসাবে নিত এবং গড় হতো (10+20)/2 = 15। তাই AVERAGEA খুব কম ক্ষেত্রেই ব্যবহৃত হয়, কারণ এটি ডেটা টাইপের উপর ভিত্তি করে গড় বের করার ক্ষেত্রে ভুল ফলাফল দিতে পারে।

2. AVERAGEX ফাংশন:

AVERAGEX ফাংশনটি একটি টেবিলে পুনরাবৃত্তি (Iterate) করে প্রতিটি সারির জন্য একটি এক্সপ্রেশন গণনা করে এবং তারপর সেই গণনা করা মানগুলির গড় বের করে। এটি খুবই শক্তিশালী এবং জটিল গণনার জন্য ব্যবহৃত হয়।

সিনট্যাক্স: AVERAGEX(<table>, <expression>)

উদাহরণ:

ধরুন, আপনি প্রতিটি পণ্যের মোট মূল্য (পরিমাণ * একক মূল্য) এর গড় বের করতে চান। আপনার 'দৈনিক বিক্রি' টেবিলে 'পরিমাণ' এবং 'একক মূল্য' কলাম আছে।

গড় পণ্যের মূল্য = AVERAGEX(
    'দৈনিক বিক্রি',
    'দৈনিক বিক্রি'[পরিমাণ] * 'দৈনিক বিক্রি'[একক মূল্য]
)

এখানে AVERAGEX ফাংশনটি 'দৈনিক বিক্রি' টেবিলের প্রতিটি সারিতে যাবে, প্রতিটি সারির জন্য 'পরিমাণ' এবং 'একক মূল্য' গুণ করে মোট মূল্য বের করবে, এবং তারপর সেই সব মোট মূল্যের গড় বের করবে।

এই ফাংশনটি তখন কাজে আসে যখন আপনার সরাসরি গড় বের করার মতো কোনো কলাম না থাকে, কিন্তু আপনি একাধিক কলামের উপর ভিত্তি করে একটি গণনা করে তার গড় বের করতে চান। যেমন, প্রতিটি গ্রাহকের গড় অর্ডার মূল্য, অথবা প্রতিটি অঞ্চলের গড় লাভ।

বাংলাদেশে DAX এর ব্যবহার এবং ভবিষ্যৎ

বাংলাদেশে ডেটা অ্যানালাইসিসের চাহিদা দিন দিন বাড়ছে। ছোট থেকে বড়, সব ধরনের ব্যবসায় প্রতিষ্ঠানই এখন তাদের ডেটা থেকে মূল্যবান তথ্য বের করতে চাইছে। ব্যাংক, টেলিকম, গার্মেন্টস, ই-কমার্স – সব খাতেই পাওয়ার BI এবং DAX এর ব্যবহার বাড়ছে। যারা ডেটা অ্যানালাইসিস নিয়ে কাজ করছেন, তাদের জন্য DAX শেখাটা অত্যন্ত জরুরি। AVERAGE ফাংশন হলো DAX এর একটি মৌলিক বিল্ডিং ব্লক, যা দিয়ে শুরু করে আপনি আরও জটিল গণনা এবং বিশ্লেষণ করতে পারবেন।

কিছু সাধারণ প্রশ্ন (FAQ)

Q1: DAX AVERAGE ফাংশন কি শূন্য মান (0) উপেক্ষা করে?

A1: না, DAX AVERAGE ফাংশন শূন্য মানকে একটি বৈধ সংখ্যা হিসাবে বিবেচনা করে এবং গড়ের হিসাবে অন্তর্ভুক্ত করে। এটি শুধুমাত্র নাল (খালি) মান এবং নন-নিউমেরিক (সংখ্যা ছাড়া) মান উপেক্ষা করে।

Q2: আমি কি একাধিক কলামের গড় একসাথে বের করতে পারব?

A2: সরাসরি AVERAGE ফাংশন দিয়ে একাধিক কলামের গড় একসাথে বের করা যায় না। AVERAGE ফাংশন শুধুমাত্র একটি কলামের উপর কাজ করে। তবে, AVERAGEX ফাংশন ব্যবহার করে আপনি একাধিক কলামের উপর ভিত্তি করে একটি এক্সপ্রেশনের গড় বের করতে পারবেন।

Q3: DAX AVERAGE ফাংশন এবং এক্সেলের AVERAGE ফাংশনের মধ্যে কি কোনো পার্থক্য আছে?

A3: মৌলিক গাণিতিক গড় বের করার ক্ষেত্রে দুটি ফাংশনই একই রকম কাজ করে। তবে, DAX AVERAGE ফাংশনটি একটি ডেটা মডেলের কলামের উপর কাজ করে, যেখানে এক্সেলের AVERAGE ফাংশন সেলের রেঞ্জের উপর কাজ করে। এছাড়াও, DAX এর AVERAGE ফাংশন ডেটা মডেলের সম্পর্ক (relationships) এবং ফিল্টার কনটেক্সট (filter context) এর উপর ভিত্তি করে কাজ করে, যা এটিকে আরও শক্তিশালী করে তোলে।

Q4: যদি আমার কলামে #N/A বা Error থাকে, তাহলে AVERAGE ফাংশন কিভাবে কাজ করবে?

A4: যদি আপনার কলামে #N/A বা অন্য কোনো Error মান থাকে, তাহলে AVERAGE ফাংশন তাদের উপেক্ষা করবে। এটি শুধুমাত্র বৈধ সংখ্যাগুলি ব্যবহার করে গড় গণনা করবে।

Q5: আমি কি DAX AVERAGE ফাংশন ব্যবহার করে একটি নির্দিষ্ট শর্তের উপর ভিত্তি করে গড় বের করতে পারব?

A5: হ্যাঁ, আপনি MEASURE ব্যবহার করে AVERAGE ফাংশনের সাথে CALCULATE ফাংশন ব্যবহার করে একটি নির্দিষ্ট শর্তের উপর ভিত্তি করে গড় বের করতে পারবেন। উদাহরণস্বরূপ, CALCULATE(AVERAGE(বিক্রি[পরিমাণ]), বিক্রি[পণ্যের নাম] = "শার্ট") এটি শুধুমাত্র "শার্ট" পণ্যের বিক্রির পরিমাণের গড় বের করবে।

কী টেকঅ্যাওয়েস (Key Takeaways)

  • AVERAGE ফাংশনের কাজ: একটি কলামের সংখ্যাগুলোর গাণিতিক গড় বের করে।
  • সিনট্যাক্স: AVERAGE(<column>)
  • নাল ও নন-নিউমেরিক মান: নাল (খালি) এবং নন-নিউমেরিক (সংখ্যা ছাড়া) মান উপেক্ষা করে।
  • শূন্য মান: শূন্য (0) মানকে হিসাবে অন্তর্ভুক্ত করে।
  • AVERAGEA: টেক্সট ও বুলিয়ান মানকেও সংখ্যায় রূপান্তর করে গড়ের হিসাবে নেয় (টেক্সট=0, TRUE=1, FALSE=0)। খুব কম ব্যবহৃত হয়।
  • AVERAGEX: একটি টেবিলে প্রতিটি সারির জন্য একটি এক্সপ্রেশন গণনা করে তার গড় বের করে। এটি জটিল গণনার জন্য খুবই শক্তিশালী।
  • গুরুত্ব: ব্যবসায়িক ডেটা বিশ্লেষণে গুরুত্বপূর্ণ সিদ্ধান্ত নিতে সাহায্য করে, যেমন দৈনিক গড় বিক্রি, মাসিক গড় লাভ ইত্যাদি।

আশা করি, DAX AVERAGE ফাংশন নিয়ে আপনার সব ধারণা পরিষ্কার হয়েছে। ডেটা বিশ্লেষণ এখন আর কোনো কঠিন কাজ নয়, বরং একটি মজার খেলা! পাওয়ার BI এবং DAX এর ক্ষমতাকে কাজে লাগিয়ে আপনার ডেটা থেকে নতুন নতুন তথ্য বের করুন এবং আপনার ব্যবসাকে আরও এগিয়ে নিয়ে যান। আপনার যদি আরও কোনো প্রশ্ন থাকে, তাহলে কমেন্ট করে জানাতে ভুলবেন না। আমরা সবসময় আপনার পাশে আছি!

Add a comment

Leave a Reply

Your email address will not be published. Required fields are marked *