ডেটা বিশ্লেষণে, স্ট্যান্ডার্ড AVERAGE ফাংশন একটি কার্যকরী টুল, কিন্তু এর একটি গুরুত্বপূর্ণ দুর্বলতা রয়েছে: এটি আউটলায়ার থেকে বিকৃতির জন্য অত্যন্ত সংবেদনশীল। একটি একক চরম মান, উচ্চ বা নিম্ন যাই হোক না কেন, সম্পূর্ণ ফলাফলকে বিকৃত করতে পারে, ডেটার প্রকৃত কেন্দ্রীয় প্রবণতাকে ভুলভাবে উপস্থাপন করে।
\ এখানেই ট্রাঙ্কেটেড মিন অপরিহার্য হয়ে ওঠে। এটি গণনা থেকে ক্ষুদ্রতম এবং বৃহত্তম মানের একটি নির্দিষ্ট শতাংশ বাদ দিয়ে গড়ের একটি আরও শক্তিশালী পরিমাপ প্রদান করে।
\ যদিও আধুনিক Power BI মডেলগুলিতে একটি বিল্ট-ইন TRIMMEAN ফাংশন রয়েছে, এই ফাংশনটি প্রায়শই একটি পুরানো Analysis Services (SSAS) মডেলে Live Connection ব্যবহার করার সময় অনুপলব্ধ। এই নিবন্ধটি একটি শক্তিশালী, ম্যানুয়াল DAX প্যাটার্ন প্রদান করে যা এই কার্যকারিতাকে প্রতিলিপি করে এবং সম্পূর্ণ ডায়নামিক থাকে, আপনার রিপোর্টের সমস্ত স্লাইসার এবং ফিল্টারে সাড়া দেয়।
এই পরিমাপটি অবশিষ্ট ৮০% গড় করার আগে নিচের ১০% এবং উপরের ১০% মান সরিয়ে একটি ২০% ট্রাঙ্কেটেড মিন গণনা করে।
\ আপনি এই কোডটি সরাসরি "New Measure" ফর্মুলা বারে পেস্ট করতে পারেন।
Trimmed Mean (20%) = VAR TargetTable = 'FactTable' VAR TargetColumn = 'FactTable'[MeasureColumn] VAR LowerPercentile = 0.10 // Defines the bottom 10% to trim VAR UpperPercentile = 0.90 // Defines the top 10% to trim (1.0 - 0.10) // 1. Find the value at the 10th percentile VAR MinThreshold = PERCENTILEX.INC( FILTER( TargetTable, NOT( ISBLANK( TargetColumn ) ) ), TargetColumn, LowerPercentile ) // 2. Find the value at the 90th percentile VAR MaxThreshold = PERCENTILEX.INC( FILTER( TargetTable, NOT( ISBLANK( TargetColumn ) ) ), TargetColumn, UpperPercentile ) // 3. Calculate the average, including only values between the thresholds RETURN CALCULATE( AVERAGEX( FILTER( TargetTable, TargetColumn >= MinThreshold && TargetColumn <= MaxThreshold ), TargetColumn ) )
এই সূত্রটি তিনটি পৃথক ধাপে কাজ করে, যার সবগুলি বর্তমান ফিল্টার প্রেক্ষাপটের মধ্যে সম্পাদিত হয় (যেমন, ব্যবহারকারী যা স্লাইসার নির্বাচন করেছে)।
TargetTable & TargetColumn: আমরা পরিষ্কার, পুনরায় ব্যবহারযোগ্য কোডের জন্য টেবিল এবং কলামের নাম ভেরিয়েবলে নির্ধারণ করি। আপনার ডেটা মডেলের সাথে মিলাতে আপনাকে অবশ্যই 'FactTable'[MeasureColumn] পরিবর্তন করতে হবে।LowerPercentile / UpperPercentile: আমরা সীমানা সংজ্ঞায়িত করি। ০.১০ এবং ০.৯০ মানে আমরা নিচের ১০% এবং উপরের ১০% ছাঁটাই করছি। প্রতিটি প্রান্ত থেকে ৫% ছাঁটাই করতে (মোট ১০% ছাঁটাই), আপনি ০.০৫ এবং ০.৯৫ ব্যবহার করবেন।MinThreshold & MaxThreshold: এই ভেরিয়েবলগুলি প্রকৃত মান সংরক্ষণ করে যা আমাদের পার্সেন্টাইল সীমানার সাথে সঙ্গতিপূর্ণ।PERCENTILEX.INC: আমরা এই "iterator" ফাংশনটি ব্যবহার করি কারণ এটি আমাদের প্রথমে টেবিল FILTER করতে দেয়।MinThreshold ১০তম পার্সেন্টাইলের মান ধারণ করে (যেমন, ৪.৫) এবং MaxThreshold বর্তমানে দৃশ্যমান ডেটার জন্য ৯০তম পার্সেন্টাইলের মান ধারণ করে (যেমন, ৮৮.২)।RETURN CALCULATE(...): CALCULATE ফাংশন পরিমাপকে ডায়নামিক করার চাবিকাঠি। এটি নিশ্চিত করে যে সম্পূর্ণ গণনা রিপোর্টের যেকোনো স্লাইসার বা ভিজ্যুয়াল দ্বারা প্রয়োগ করা ফিল্টারগুলি মেনে চলে।AVERAGEX(FILTER(...)): গণনার মূল। আমরা একটি টেবিলের উপর পুনরাবৃত্তি করতে AVERAGEX ব্যবহার করি।FILTER(...): আমরা আমাদের TargetTable শেষবারের মতো ফিল্টার করি। এই ফিল্টারটি "ট্রিম"। এটি শুধুমাত্র সেই সারিগুলি রাখে যেখানে TargetColumn-এ মান:AVERAGEX(..., TargetColumn): AVERAGEX তারপর শুধুমাত্র যে সারিগুলি ফিল্টার পাস করেছে তাদের জন্য TargetColumn-এর সাধারণ গড় গণনা করে।এই DAX প্যাটার্ন বাস্তবায়নের মাধ্যমে, আপনি একটি শক্তিশালী, ডায়নামিক, এবং আউটলায়ার-প্রতিরোধী KPI তৈরি করেন। এই পরিমাপ আপনার ডেটার কেন্দ্রীয় প্রবণতার আরও সঠিক চিত্র প্রদান করে এবং ব্যবহারকারীরা আপনার Power BI রিপোর্টের সাথে মিথস্ক্রিয়া করার সাথে সাথে সঠিকভাবে পুনরায় গণনা করবে।
আমার সাথে ডেটা-সম্পর্কিত অন্তর্দৃষ্টি অন্বেষণ করার জন্য সময় নেওয়ার জন্য আপনাকে ধন্যবাদ। আমি আপনার অংশগ্রহণের প্রশংসা করি। আপনি যদি এই তথ্য সহায়ক মনে করেন, আমি আপনাকে আমাকে ফলো করতে বা LinkedIn বা X(@Luca_DataTeam) এ আমার সাথে সংযুক্ত হতে আমন্ত্রণ জানাচ্ছি। শুভ অন্বেষণ!👋


