আপনি কি ডেটা অ্যানালাইসিস (Data Analysis) নিয়ে কাজ করেন? বিশেষ করে মাইক্রোসফট পাওয়ার বিআই (Microsoft Power BI) নিয়ে যাদের আগ্রহ, তাদের জন্য DAX (Data Analysis Expressions) একটি পরিচিত নাম। DAX হচ্ছে একটি শক্তিশালী ফর্মুলা ল্যাঙ্গুয়েজ যা পাওয়ার বিআই, এক্সেল পাওয়ার পিভট (Excel Power Pivot) এবং এসকিউএল সার্ভার অ্যানালাইসিস সার্ভিসেস (SQL Server Analysis Services) এ ডেটা মডেল তৈরি ও বিশ্লেষণের জন্য ব্যবহৃত হয়। কিন্তু DAX ব্যবহার করতে গিয়ে অনেকের মনেই একটা প্রশ্ন আসে, "ক্যালকুলেটেড কলাম (Calculated Columns) আর মেজারস (Measures) এর মধ্যে পার্থক্যটা আসলে কী?" এই প্রশ্নটি নতুন থেকে শুরু করে অভিজ্ঞ ব্যবহারকারী, সবারই কমবেশি মনে আসে।
বাংলাদেশে ডেটা অ্যানালাইসিসের ক্ষেত্র ক্রমশ বাড়ছে। ছোট-বড় ব্যবসা প্রতিষ্ঠান থেকে শুরু করে সরকারি সংস্থা, সবাই এখন ডেটা থেকে মূল্যবান তথ্য বের করতে আগ্রহী। এই প্রেক্ষাপটে, DAX এর খুঁটিনাটি জানাটা আপনার ক্যারিয়ারের জন্য দারুণ সহায়ক হতে পারে। চলুন, আজ আমরা এই Calculated Columns এবং Measures এর মধ্যেকার রহস্য উন্মোচন করি। সহজ ভাষায়, কিছু উদাহরণ এবং বাস্তব জীবনের প্রেক্ষাপট দিয়ে আমরা এই দুটি ধারণার পার্থক্য বোঝার চেষ্টা করব, যাতে আপনি আপনার ডেটা মডেলিং এর কাজগুলো আরও দক্ষতার সাথে করতে পারেন।
DAX-এর দুনিয়ায় Calculated Columns বনাম Measures: পার্থক্যটা কোথায়?
DAX এর জগতে Calculated Columns এবং Measures, দুটোই আপনার ডেটা থেকে নতুন তথ্য বের করার শক্তিশালী উপায়। কিন্তু এদের কার্যকারিতা, ব্যবহার এবং পারফরম্যান্সের দিক থেকে রয়েছে বেশ কিছু মৌলিক পার্থক্য। এই পার্থক্যগুলো ভালোভাবে বোঝা আপনার ডেটা মডেলের কার্যকারিতা এবং পারফরম্যান্সের জন্য খুবই জরুরি। চলুন, একটি তুলনামূলক আলোচনার মাধ্যমে আমরা এই দুটি ধারণাকে আরও ভালোভাবে বোঝার চেষ্টা করি।
Calculated Columns: ডেটা টেবিলে নতুন কলাম যোগ করা
Calculated Column বা গণনা করা কলাম, নাম শুনেই বোঝা যাচ্ছে এটি আপনার বিদ্যমান ডেটা টেবিলে একটি নতুন কলাম হিসেবে যুক্ত হয়। প্রতিটি রো (Row) বা সারির ডেটার উপর ভিত্তি করে এটি গণনা করা হয় এবং ফলাফল সরাসরি টেবিলে সংরক্ষণ করা হয়। অনেকটা এক্সেল শিটে একটি নতুন কলাম যোগ করে ফর্মুলা প্রয়োগ করার মতোই।
Calculated Columns এর বৈশিষ্ট্য:
- স্টোরেজ: Calculated Column এর ফলাফল আপনার ডেটা মডেলে ফিজিক্যালি স্টোর হয়। অর্থাৎ, এটি আপনার ফাইলের আকার বাড়িয়ে দেয়।
- সময়: ডেটা লোড হওয়ার সময় অথবা ডেটা রিফ্রেশ (Refresh) হওয়ার সময় Calculated Column গুলো গণনা করা হয়। একবার গণনা হয়ে গেলে, এর ফলাফল ডেটা মডেলে স্থায়ীভাবে থাকে।
- ব্যবহার: এটি সাধারণত Row-level context এ কাজ করে। অর্থাৎ, আপনি প্রতিটি সারির জন্য আলাদাভাবে হিসাব করতে পারবেন। যেমন, একটি পণ্যের পরিমাণ এবং মূল্য থেকে প্রতিটি অর্ডারের মোট মূল্য বের করা।
- উদাহরণ (বাংলাদেশে প্রেক্ষাপটে): ধরুন, আপনার কাছে একটি "বিক্রয়" টেবিল আছে যেখানে "পণ্যের পরিমাণ" এবং "একক মূল্য" কলাম রয়েছে। আপনি একটি "মোট বিক্রয় মূল্য" কলাম তৈরি করতে চান।
মোট বিক্রয় মূল্য = 'বিক্রয়'[পণ্যের পরিমাণ] * 'বিক্রয়'[একক মূল্য]
এখানে, প্রতিটি বিক্রয় সারির জন্য "মোট বিক্রয় মূল্য" Calculated Column টি গণনা করা হবে এবং টেবিলে যোগ হবে।
Measures: গতিশীল গণনা এবং বিশ্লেষণের জন্য
Measures বা পরিমাপ, Calculated Column এর থেকে সম্পূর্ণ ভিন্নভাবে কাজ করে। এটি আপনার ডেটা মডেলে ফিজিক্যালি স্টোর হয় না। বরং, এটি একটি ফর্মুলার মতো কাজ করে যা ডেটা দেখার সময় (Query Time) গতিশীলভাবে গণনা করা হয়। এটি আপনার ডেটা মডেলের আকার বৃদ্ধি করে না।
Measures এর বৈশিষ্ট্য:
- স্টোরেজ: Measures এর ফলাফল আপনার ডেটা মডেলে ফিজিক্যালি স্টোর হয় না। এটি শুধুমাত্র যখন প্রয়োজন হয়, তখনই গণনা করা হয়।
- সময়: যখন আপনি কোনো ভিজ্যুয়াল (Visual) বা রিপোর্ট (Report) তৈরি করেন এবং Measures ব্যবহার করেন, তখনই এটি গণনা করা হয়। আপনার ফিল্টার (Filter) এবং স্লাইসার (Slicer) এর উপর ভিত্তি করে এর মান পরিবর্তন হয়।
- ব্যবহার: এটি Aggregated context এ কাজ করে। অর্থাৎ, আপনি ডেটার সমষ্টি, গড়, সর্বোচ্চ, সর্বনিম্ন ইত্যাদি বের করতে পারবেন। যেমন, মোট বিক্রয়, গড় লাভ, বা নির্দিষ্ট একটি পণ্যের সর্বোচ্চ বিক্রয়।
- উদাহরণ (বাংলাদেশে প্রেক্ষাপটে): ধরুন, আপনি আপনার সমস্ত পণ্যের মোট বিক্রয় দেখতে চান। আপনি একটি "মোট বিক্রয়" Measure তৈরি করতে পারেন।
মোট বিক্রয় = SUM('বিক্রয়'[মোট বিক্রয় মূল্য])
এখানে, "মোট বিক্রয়" Measure টি আপনার ভিজ্যুয়াল এর ফিল্টার অনুযায়ী মোট বিক্রয় মূল্য নির্ণয় করবে। যদি আপনি বিভাগ অনুযায়ী মোট বিক্রয় দেখতে চান, তাহলে Measure টি প্রতিটি বিভাগের জন্য আলাদাভাবে গণনা করবে।
Calculated Columns বনাম Measures: একটি তুলনামূলক চিত্র
বৈশিষ্ট্য | Calculated Columns | Measures |
---|---|---|
স্টোরেজ | ডেটা মডেলে ফিজিক্যালি স্টোর হয় (ফাইলের আকার বাড়ায়) | ডেটা মডেলে ফিজিক্যালি স্টোর হয় না (শুধুমাত্র ফর্মুলা) |
গণনার সময় | ডেটা লোড/রিফ্রেশ হওয়ার সময় | যখন ভিজ্যুয়াল বা রিপোর্টে ব্যবহার করা হয় (Query Time) |
কন্টেক্সট | Row-level context | Aggregated context (Filter context) |
উপযোগিতা | প্রতিটি সারির জন্য নতুন ডেটা তৈরি | ডেটার সমষ্টিগত বিশ্লেষণ (মোট, গড়, সর্বোচ্চ, সর্বনিম্ন) |
পারফরম্যান্স | বড় ডেটাসেটে ধীর হতে পারে, RAM ব্যবহার করে | সাধারণত দ্রুত, কারণ এটি শুধুমাত্র প্রয়োজনীয় ডেটা গণনা করে |
উদাহরণ | পণ্য A + পণ্য B = মোট খরচ প্রতি অর্ডারে | মোট লাভ (সকল পণ্যের লাভের সমষ্টি) |
কখন কোনটি ব্যবহার করবেন?
এই প্রশ্নটি খুবই গুরুত্বপূর্ণ। ভুলভাবে Calculated Column বা Measure ব্যবহার করলে আপনার রিপোর্ট ধীরগতির হতে পারে বা ভুল ফলাফল দিতে পারে।
Calculated Columns কখন ব্যবহার করবেন?
- যখন আপনি প্রতিটি সারির জন্য একটি নতুন বৈশিষ্ট্য (Attribute) তৈরি করতে চান। যেমন: "পুরো নাম" (প্রথম নাম + শেষ নাম), "বয়স গোষ্ঠী" (বয়স থেকে), "লাভের হার" (লাভ / বিক্রয়)।
- যখন আপনার গণনা করা ডেটা স্লাইসার বা ফিল্টার হিসেবে ব্যবহার করার প্রয়োজন হয়।
- যখন আপনি একটি কলামের উপর ভিত্তি করে নতুন সম্পর্ক (Relationship) তৈরি করতে চান।
Measures কখন ব্যবহার করবেন?
- যখন আপনি ডেটার সমষ্টিগত বিশ্লেষণ করতে চান। যেমন: মোট বিক্রয়, গড় গ্রাহক সন্তুষ্টি, সর্বনিম্ন স্টক, সর্বোচ্চ তাপমাত্রা।
- যখন আপনার গণনা করা ডেটা ফিল্টার এবং স্লাইসারের উপর ভিত্তি করে গতিশীলভাবে পরিবর্তন হওয়া প্রয়োজন।
- যখন আপনি পারফরম্যান্সকে অগ্রাধিকার দিতে চান, কারণ Measures সাধারণত Calculated Columns এর চেয়ে দ্রুত হয়।
- যখন আপনার রিপোর্টের জন্য KPI (Key Performance Indicator) বা মেট্রিক (Metric) প্রয়োজন হয়।
উদাহরণস্বরূপ, যদি আপনি বাংলাদেশের বিভিন্ন জেলা থেকে আগত গ্রাহকদের মোট সংখ্যা দেখতে চান, তাহলে আপনি একটি Measure ব্যবহার করবেন। কিন্তু যদি আপনি প্রতিটি গ্রাহকের পূর্ণ ঠিকানা (গ্রাম + থানা + জেলা) একটি কলামে দেখাতে চান, তাহলে Calculated Column ব্যবহার করবেন।
বাস্তব জীবনের উদাহরণ ও ব্যবহারিক টিপস
চলুন, কিছু বাস্তব জীবনের উদাহরণ দিয়ে Calculated Columns এবং Measures এর ব্যবহার আরও পরিষ্কার করি।
উদাহরণ ১: বিক্রয় ডেটা বিশ্লেষণ
ধরুন, আপনার কাছে একটি অনলাইন শপ আছে এবং আপনি প্রতিদিনের বিক্রয় (Sales) ডেটা বিশ্লেষণ করতে চান। আপনার কাছে Orders
নামে একটি টেবিল আছে যেখানে OrderDate
, ProductID
, Quantity
, UnitPrice
কলাম আছে।
-
Calculated Column এর ব্যবহার: আপনি যদি প্রতিটি অর্ডারের জন্য "মোট মূল্য" (Total Price) বের করতে চান, তাহলে একটি Calculated Column ব্যবহার করবেন:
OrderTotalPrice = Orders[Quantity] * Orders[UnitPrice]
এটি প্রতিটি অর্ডারের জন্য একটি নতুন কলাম তৈরি করবে যা সরাসরি টেবিলে দেখা যাবে।
-
Measure এর ব্যবহার: আপনি যদি আপনার মোট বিক্রয় (Total Sales) দেখতে চান, তাহলে একটি Measure ব্যবহার করবেন:
Total Sales = SUM(Orders[OrderTotalPrice])
অথবা, যদি আপনার
OrderTotalPrice
কলামটি না থাকে, তাহলে সরাসরি:Total Sales = SUMX(Orders, Orders[Quantity] * Orders[UnitPrice])
এই Measure টি আপনার রিপোর্টে যখন ব্যবহার করবেন, তখন আপনার ফিল্টার অনুযায়ী মোট বিক্রয় দেখাবে। যেমন, যদি আপনি ঢাকা বিভাগের মোট বিক্রয় দেখতে চান, তাহলে Measure টি শুধু ঢাকা বিভাগের ডেটা নিয়ে গণনা করবে।
উদাহরণ ২: ছাত্র-ছাত্রীদের ফলাফল বিশ্লেষণ
একটি শিক্ষা প্রতিষ্ঠানের ডেটাবেসে Students
নামে একটি টেবিল আছে যেখানে StudentID
, StudentName
, Subject1Marks
, Subject2Marks
, Subject3Marks
কলাম আছে।
-
Calculated Column এর ব্যবহার: প্রতিটি ছাত্রের "মোট নম্বর" (Total Marks) বের করতে চাইলে:
Total Marks = Students[Subject1Marks] + Students[Subject2Marks] + Students[Subject3Marks]
এটি প্রতিটি ছাত্রের জন্য একটি নতুন কলাম তৈরি করবে।
-
Measure এর ব্যবহার: যদি আপনি ক্লাসের "গড় নম্বর" (Average Marks) দেখতে চান:
Average Class Marks = AVERAGE(Students[Total Marks])
অথবা, যদি আপনি বিজ্ঞান বিভাগের ছাত্র-ছাত্রীদের গড় নম্বর দেখতে চান, তাহলে ফিল্টার প্রয়োগ করলে Measure টি স্বয়ংক্রিয়ভাবে সেই অনুযায়ী গণনা করবে।
কিছু ব্যবহারিক টিপস:
- পারফরম্যান্সের জন্য: যেখানে সম্ভব, Measures ব্যবহার করার চেষ্টা করুন। Calculated Columns অপ্রয়োজনীয়ভাবে আপনার ডেটা মডেলের আকার বাড়াতে পারে এবং রিপোর্টকে ধীর করে দিতে পারে, বিশেষ করে যখন আপনার ডেটা সেট অনেক বড় হয়।
- কমপ্লেক্সিটি: যদি আপনার গণনা Row-level এ খুব জটিল হয় এবং আপনি সেই ফলাফলকে ফিল্টার বা স্লাইসার হিসেবে ব্যবহার করতে চান, তাহলে Calculated Column ব্যবহার করা যেতে পারে। তবে, এক্ষেত্রেও পারফরম্যান্সের দিকটি মাথায় রাখতে হবে।
- ডাইনামিক ক্যালকুলেশন: যদি আপনার গণনা ফিল্টার বা স্লাইসারের উপর ভিত্তি করে পরিবর্তনশীল হতে হয়, তাহলে Measure-ই একমাত্র উপায়।
- ক্যালকুলেটেড টেবিল (Calculated Tables): Calculated Columns এবং Measures এর পাশাপাশি DAX এ Calculated Tablesও আছে, যা আপনার ডেটা মডেলের জন্য নতুন টেবিল তৈরি করতে ব্যবহৃত হয়। এটি সাধারণত ডেটা মডেলের কাঠামো পরিবর্তন বা নতুন ডেটা ভিউ তৈরি করার জন্য ব্যবহৃত হয়। তবে এটি আজকের আলোচনার বিষয় নয়।
প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী (FAQ)
প্রশ্ন ১: DAX কি শুধু পাওয়ার বিআই-তেই ব্যবহার করা হয়?
উত্তর: না, DAX শুধুমাত্র পাওয়ার বিআই-তেই ব্যবহার করা হয় না। এটি মাইক্রোসফট এক্সেল পাওয়ার পিভট (Excel Power Pivot), এসকিউএল সার্ভার অ্যানালাইসিস সার্ভিসেস (SQL Server Analysis Services – SSAS) এবং আরও কিছু মাইক্রোসফট ডেটা টুলস-এ ব্যবহৃত হয়। DAX এর মূল উদ্দেশ্য হলো মাল্টিডাইমেনশনাল ডেটা মডেলিং এবং ডেটা বিশ্লেষণকে সহজ করা।
প্রশ্ন ২: Calculated Columns কি ডেটা মডেলকে ধীর করে দেয়?
উত্তর: হ্যাঁ, Calculated Columns ডেটা মডেলকে ধীর করে দিতে পারে, বিশেষ করে যদি আপনার ডেটা সেট অনেক বড় হয়। এর কারণ হলো Calculated Columns এর ফলাফল ফিজিক্যালি আপনার ডেটা মডেলে স্টোর হয়। যখন ডেটা রিফ্রেশ হয়, তখন এই কলামগুলো পুনরায় গণনা করা হয়, যা সময়সাপেক্ষ হতে পারে এবং RAM (Random Access Memory) এর ব্যবহার বাড়িয়ে দেয়। তাই, যেখানে সম্ভব, Measures ব্যবহার করাই ভালো।
প্রশ্ন ৩: Measures কি Calculated Columns এর চেয়ে সবসময়ই ভালো?
উত্তর: না, Measures সবসময়ই Calculated Columns এর চেয়ে ভালো নয়। তাদের ব্যবহারের উদ্দেশ্য ভিন্ন। Measures গতিশীল এবং অ্যাগ্রিগেটেড গণনার জন্য সেরা, যেখানে Calculated Columns প্রতিটি সারির জন্য নতুন ডেটা তৈরি করতে ব্যবহৃত হয় এবং এই ডেটা ফিল্টার বা স্লাইসার হিসেবেও ব্যবহার করা যায়। সঠিক ব্যবহার আপনার ডেটা মডেলের পারফরম্যান্স এবং কার্যকারিতা নিশ্চিত করে।
প্রশ্ন ৪: আমি কি Calculated Column এর উপর ভিত্তি করে Measure তৈরি করতে পারি?
উত্তর: হ্যাঁ, অবশ্যই পারেন। এটি একটি সাধারণ প্র্যাকটিস। উদাহরণস্বরূপ, আপনি একটি Calculated Column তৈরি করলেন প্রতিটি অর্ডারের মোট মূল্য বের করার জন্য, যেমন OrderTotalPrice
। এরপর আপনি এই OrderTotalPrice
কলামের উপর ভিত্তি করে মোট বিক্রয় (Total Sales
) এর জন্য একটি Measure তৈরি করতে পারেন, যেমন SUM(Orders[OrderTotalPrice])
। এটি আপনার মডেলকে আরও সংগঠিত এবং সহজে বোধগম্য করে তোলে।
প্রশ্ন ৫: Calculated Column এবং Measure এর মধ্যে কোনটি ডেটার গোপনীয়তা (Data Privacy) এর জন্য বেশি ভালো?
উত্তর: ডেটার গোপনীয়তার ক্ষেত্রে Calculated Column এবং Measure এর মধ্যে সরাসরি কোনো পার্থক্য নেই। উভয়ই আপনার ডেটা মডেলের অংশ। তবে, ডেটা মডেলের নিরাপত্তা নিশ্চিত করার জন্য Power BI তে Row-Level Security (RLS) এর মতো ফিচার ব্যবহার করা হয়, যা আপনার ডেটাকে নির্দিষ্ট ব্যবহারকারীদের জন্য ফিল্টার করে দেয়। DAX ফর্মুলা RLS বাস্তবায়নে ব্যবহৃত হয়।
প্রশ্ন ৬: যদি আমি একটা নতুন Calculated Column যোগ করি, তাহলে কি আমার রিপোর্টগুলো অটোমেটিকভাবে আপডেট হবে?
উত্তর: হ্যাঁ, যখন আপনি একটি নতুন Calculated Column যোগ করেন এবং আপনার ডেটা মডেল রিফ্রেশ করেন, তখন সেই কলামের ডেটা গণনা করা হয় এবং আপনার রিপোর্টে সেই কলাম ব্যবহার করে তৈরি ভিজ্যুয়ালগুলো স্বয়ংক্রিয়ভাবে আপডেট হবে। তবে, যদি আপনার রিপোর্টটি আগে থেকে সেই কলাম ব্যবহার না করে থাকে, তাহলে আপনাকে ম্যানুয়ালি সেই কলামটি ভিজ্যুয়ালে ড্র্যাগ করে যোগ করতে হবে।
প্রশ্ন ৭: Calculated Column এবং Measure এর syntax কি একই রকম?
উত্তর: DAX syntax এর মূল কাঠামো একই রকম হলেও, Calculated Column এবং Measure এর ফর্মুলার মধ্যে প্রায়শই পার্থক্য দেখা যায়। Calculated Column সাধারণত Row-level context এ কাজ করে, তাই এর ফর্মুলায় টেবিলের নাম এবং কলামের নাম সরাসরি উল্লেখ করা হয় (যেমন: Table[Column]
)। Measures সাধারণত Aggregated context এ কাজ করে, তাই এখানে SUM()
, AVERAGE()
, COUNTROWS()
, CALCULATE()
এর মতো অ্যাগ্রিগেশন ফাংশনগুলো বেশি ব্যবহৃত হয়।
প্রশ্ন ৮: Calculated Column কখন ব্যবহার করা উচিত নয়?
উত্তর: Calculated Column ব্যবহার করা উচিত নয় যখন:
১. আপনার গণনাটি অ্যাগ্রিগেটেড প্রকৃতির এবং ফিল্টার অনুযায়ী পরিবর্তনশীল হওয়া প্রয়োজন।
২. আপনি ডেটা মডেলের আকার বৃদ্ধি করতে চান না বা পারফরম্যান্সের উপর চাপ কমাতে চান।
৩. আপনি একই গণনা বিভিন্ন ফিল্টার বা স্লাইসার ব্যবহার করে দেখতে চান।
এই সব ক্ষেত্রে Measure ব্যবহার করা অনেক বেশি কার্যকর।
Key Takeaways (মূল শিক্ষা)
- Calculated Columns: আপনার ডেটা টেবিলে নতুন কলাম হিসেবে যোগ হয়। প্রতিটি সারির জন্য গণনা করা হয় এবং ডেটা মডেলে ফিজিক্যালি স্টোর হয়। এটি প্রতিটি রো-এর জন্য নির্দিষ্ট মান দেখায় এবং ডেটা লোড/রিফ্রেশ করার সময় গণনা করা হয়।
- Measures: ডেটা মডেলে ফিজিক্যালি স্টোর হয় না। এটি একটি গতিশীল ফর্মুলা যা যখন প্রয়োজন হয় (যেমন রিপোর্টে দেখার সময়), তখনই গণনা করা হয়। এটি ডেটার সমষ্টিগত বিশ্লেষণ (যেমন: মোট, গড়, সর্বোচ্চ) এর জন্য ব্যবহৃত হয় এবং ফিল্টার ও স্লাইসারের উপর ভিত্তি করে এর মান পরিবর্তন হয়।
- কখন কোনটি ব্যবহার করবেন: প্রতিটি সারির জন্য নতুন ডেটা বা বৈশিষ্ট্য তৈরি করতে Calculated Columns ব্যবহার করুন। ডেটার সমষ্টিগত বিশ্লেষণ এবং গতিশীল গণনার জন্য Measures ব্যবহার করুন।
- পারফরম্যান্স: সাধারণত, Measures Calculated Columns এর চেয়ে বেশি পারফরম্যান্ট, কারণ তারা ডেটা মডেলের আকার বাড়ায় না এবং শুধুমাত্র প্রয়োজনের সময় গণনা করা হয়। বড় ডেটাসেটে Calculated Columns মডেলকে ধীর করতে পারে।
- সঠিক ব্যবহার: আপনার ডেটা মডেলের কার্যকারিতা এবং রিপোর্ট পারফরম্যান্সের জন্য Calculated Columns এবং Measures এর মধ্যেকার পার্থক্য বোঝা এবং সঠিক সময়ে সঠিকটি ব্যবহার করা অত্যন্ত গুরুত্বপূর্ণ।
আশা করি, এই বিস্তারিত আলোচনা Calculated Columns এবং Measures এর মধ্যেকার পার্থক্য সম্পর্কে আপনার ধারণা পরিষ্কার করতে পেরেছে। ডেটা অ্যানালাইসিসের এই যাত্রা আপনার জন্য আরও সহজ এবং ফলপ্রসূ হোক। আপনার যদি আরও কোনো প্রশ্ন থাকে, তাহলে নির্দ্বিধায় জিজ্ঞাসা করুন। শিখতে থাকুন, ডেটা নিয়ে খেলতে থাকুন!