
تفاوت تابع Rank.EQ و Rank اکسل چیه؟
خیلی وقت ها پیش میاد که بخوایم بدونیم یک عدد مشخص، بین یک مجموعه عدد، چه رتبه ای داره (در واقع چندمین عدد هست؟)
برخی افراد ترجیح میدن اعداد رو مرتب (سورت) کنن (کوچک به بزرگ یا برعکس) و بعد از روی ترتیب جدید ببینن که عدد مورد نظر چندمین عدد هست. اما این روش ابزار هست، یعنی با تغییر هر عدد، باید دوباره مراحل رو انجام بدیم. اگر نیاز باشه که بصورت اتومات آپدیت بشه باید از تابع مخصوص برای اینکار استفاده کنیم. در این مقاله میخوایم روش رتبه بندی با استفاده از تابع Rank اکسل رو شرح بدیم.
تابع Rank تابع رتبه بندی در اکسل هست. در واقع جایگاه یک عدد رو بین یک سری اعداد به ما میده. در ادامه با آرگومان های این تابع آشنا میشیم.
Number: عددی هست که میخوایم ببینیم چه جایگاهی داره و چندمین عدد هست.
Ref: محدوده ای از اعداد که میخوایم رتبه بندی بین اونها انجام بشه. هم میتونه آرایه ای از اعداد باشه و هم یک رنج(Range)
Order: این آرگومان اختیاری (optional) است عدد ۰ یا ۱ رو میگیره. در واقع با این دو عدد مشخص میکنیم که منطق رتبه بندی چطور باشه؟
صفر: بصورت نزولی رتبه بندی انجام میشه. یعنی اعداد از بزرگ به کوچک در نظر گرفته میشه و بزرگترین عدد رتبه یک میگیره الی آخر.
یک: بصورت صعودی رتبه بندی انجام میشه. یعنی اعداد از کوچک به بزرگ در نظر گرفته میشه و کوچکترین عدد رتبه یک میگیره الی آخر.
اگر آرگومان سوم رو مشخص نکنیم اکسل بصورت پیشفرض، صفر در نظر میگیره و در واقع با منطق نزولی رتبه بندی رو انجام میده.
Rank.EQ: این تابع حالت پیشرفته تابع rank هست و از ورژن ۲۰۱۰ به اکسل اضافه شده. آرگومان ها مشابه با تابع rank هست، اما در خروجی با هم متفاوت هستن. به اینصورت که اگر چند عدد وجود داشته باشه که جایگاه یکسان داشته باشن، برای همه، بزرگترین رتبه در نظر گرفته میشه.
Rank.AVG: این تابع حالت پیشرفته تابع rank هست و از ورژن ۲۰۱۰ به اکسل اضافه شده. آرگومان ها مشابه با تابع rank هست، اما در خروجی با هم متفاوت هستن. به اینصورت که اگر چند عدد وجود داشته باشه که رتبه یکسان داشته باشن، خروجی این تابع میانگین رتبه ها خواهد بود.
۴ نکته ای که باید راجع به این تابع بدونید
- توابع رتبه بندی در اکسل فقط روی اعداد کار میکنن. اعداد منفی، مثبت، صفر، تاریخ و زمان. داده های غیر عددی در نظر گرفته نمیشن.
- توابع رتبه بندی، برای داده های تکراری یک رتبه یکسان رو نمایش میدن و به ازای داده های تکراری یک رتبه رو در نظر میگیرن. (به مثال اول دقت کنید)
- در ورژن ۲۰۱۰ توابع EQ و Rank.AVG به اکسل اضافه شدن. اما همچنان تابع Rank برای حفظ سازگاری با نسخه های قبلی در اکسل وجود داره. اما ممکنه د رآینده حذف بشه.
- اگر در مجموعه REF عددی پیدا نشه، خروجی تابع #N/A خواهد بود.
مثال اول- حالت ساده و اصلی تابع RANK
فرض کنید میخواهیم افراد رو بر اساس نمره کسب شده، رتبه بندی کنیم. هر سه تابع رتبه بندی رو در شکل ۱ می بینید. به خروجی توابع در خصوص اعداد تکراری دقت کنید.

شکل ۱- رتبه بندی با سه تابع رتبه بندی
چند نکته راجع به مثال اول:
- همونطور که مشاهده میکنید، برای داده های تکراری، رتبه یکسان تکرار شده.
- خروجی تابع RANK و EQ یکسان هست. در واقع تابع RANK میتونه کم کم حذف بشه.
- وقتی دو عدد رتبه ۳ دارن، در واقع رتبه ۳ و ۴ اشغال شده. برای همین بعد از دو تا رتبه ۳، رتبه بعدی ۵ هست و ما اصلا رتبه ۴ نداریم.
- خروجی تابع AVG رتبه ۳.۵ هست. چون بین عدد ۳ و ۴ (رتبه دو عدد مشابه) میانگین گرفته شده.
مثال دوم-کاربرد تابع RANK در حالت صعودی یا Order=1
در این حالت تابع، اعداد رو طوری رتبه بندی میکنه که بیشترین عدد رتبه کمتری بگیره.
مثلا میخواهیم دانش آموزان رو بر اساس ساعت ورود به مدرسه رتبه بندی کنیم. هر کس زودتر آمده، رتبه بهتر و هر کس دیرتر آمده رتبه بدتر نمایش داده بشه.
=RANK (B3 ; $B$3:$B$9 ; 1)

شکل ۲- رتبه بندی دانش آموزان بصورت صعودی با تابع Rank اکسل
همونطور که میدونید داده های تاریخ و زمان، مقدار عددی هستند. پس تابع RANK براحتی میتونه کار رتبه بندی رو انجام بده.
مثال سوم- رتبه بندی داده های تکراری بصورت منحصربفرد
همونطور که ملاحظه کردید، توابع رتبه بندی برای داده های تکراری، رتبه یکسان نمایش میدهند. حالا اگر بخوایم مثلا دو عدد که رتبه ۳ دارن رو بصورت ۳ و ۴ ببینیم چکار باید بکنیم؟
برای حل این موضوع باید تعداد عدد مورد نظر رو به رتبه خروجی اضافه کنیم. به شکل ۳ دقت کنید:
=RANK (B3;$B$3:$B$9) + COUNTIF ($B$2:B2;B3)

شکل ۳- رتبه بندی اعداد تکراری با تابع Rank اکسل
در مثال بالا، تابع Countif تعداد عدد مورد نظر رو در محدوده بالای سرش به خروجی RANK اضافه میکنه. در واقع فرمولی که در ردیف ۸ نوشته شده به اینصورت عمل میکنه:
تعداد عدد ۵۶ در محدوده B3:B7 شمرده میشه و نتیجه میشه ۱. این مقدار به خروجی RANK که عدد ۳ هست اضافه میشه و میشه ۴.
مثال چهارم- رتبه بندی بر اساس شروط چندگانه
فرض کنید میخواید دانش آموزان رو بر اساس نمره (معیار اول) رتبه بندی کنید. هر چند دانش آموزی که نمره یکسان داشتن، بر اساس نمره انضباط (معیار دوم) رتبه بندی بشن.
به شکل ۴ دقت کنید. دانش آموز E و F نمره یکسان ۵۶ کسب کردن که رتبه هر دو ۳ میشه. حالا میخوایم کسی که انضباط بهتری داره، رتبه ۳ و کسی انضباطش پایینتره رتبه ۴ بگیره. برای این کار از تابع Countifs استفاده میکنیم و شرط های مورد نظر رو اعمال میکنیم.
=RANK.EQ ( $B2; $B$2:$B$8)+COUNTIFS ( $B$2:$B$8;$B2;$C$2:$C$8; “>”&$C2)

شکل ۴- رتبه بندی بر اساس شروط چندگانه با استفاده از تابع Rank اکسل
در واقع قسمت Countifs فرمول، میاد دو شرط رو بررسی میکنه و خروجی این تابع اضافه میشه به خروجی تابع رتبه بندی.
خب در این مقاله با توابع رتبه بندی آشنا شدیم. یکی از توابع پرکاربرد در تهیه داشبورد همین توابع رتبه بندی هستن که با ترفندها و روش های مختلف مور استفاده قرار میگیرند.
پبیشنهاد میکنم مقاله مربوط به تابع Small و تابع Large رو مطالعه کنید و تفاوت ها رو خوب درک کنید. سعی کنید این دو تابع رو با حالت های مختلف تابع Rank اکسل تطبیق بدید.
دانلود فایل آموزش رتبه بندی اعداد در اکسل
برای دانلود فایل این آموزش روی دکمه زیر کلیک کنید:





با سلام
ضمن تشکر از آموزشهای خوبتون من یه سوالی برام پیش اومده که ممنون میشم راهنماییم کنید.
وقتی از بین داده های چند تا شیت میخوایم رتبه بندی انجام بدیم و برا رتبه هایی که مساوی میشن سلولی که در ویژگی دیگه ای پایین تره رتبه برتری داشته باشه از چه روشی باید استفاده کرد. البته من از ترکیب rank و countifs فرمول زیر رو نوشتم ولی نمیدونم چرا خطا میده؟
(RANK.EQ(sheet1!Y2,sheet1:sheet10!Y2:Y100)+COUNTIFS(sheet1:sheet10!Y2:Y100,sheet1!Y2,sheet1:sheet10!H2:H100,”<"&sheet1!H1
آیا اشکالی تو فرمول نویسی هست یا چیز دیگه است؟ اگه فرموله ایراد داره چجوری متوجه بشم کجاشه؟
در مورد این سوال فرموده بودید مثال بزنم، رتبه بندی بین رکروردهای ورزشی ورزشکاران، و شرط رتبه بندی در رتبه های برابر، داشتن سن کمتر است.
آزمایش کردم نیمه اول فرمول یعنی بخش مربوط به RANK.EQ درست کار میکنه و ایراد مربوط هست به بخش دوم یعنی تابع COUNTIFS که نمیدونم چشه؟
درود
داخل اسم شیت نمیتونید : داشته باشید
اینو چطور زدید؟
sheet1:sheet10!Y2:Y100
طبق این باید sheet1:sheet10 اسم یک شیت باشه
با سلام
ضمن تشکر از آموزشهای خوبتون من یه سوالی برام پیش اومده که ممنون میشم راهنماییم کنید.
وقتی از بین داده های چند تا شیت میخوایم رتبه بندی انجام بدیم و برا رتبه هایی که مساوی میشن سلولی که در ویژگی دیگه ای پایین تره رتبه برتری داشته باشه از چه روشی باید استفاده کرد. البته من از ترکیب rank و countifs فرمول زیر رو نوشتم ولی نمیدونم چرا خطا میده؟
(RANK.EQ(sheet1!Y2,sheet1:sheet10!Y2:Y100)+COUNTIFS(sheet1:sheet10!Y2:Y100,sheet1!Y2,sheet1:sheet10!H2:H100,”<"&sheet1!H1
آیا اشکالی تو فرمول نویسی هست یا چیز دیگه است؟ اگه فرموله ایراد داره چجوری متوجه بشم کجاشه؟
ممنون
درود
برای رتبه بندی شرطی حالت ها و روش های مختلفی وجود داره
sumproduct یا countifs و ….
منتها بستگی به داده ها داره
یک نمونه مثال بزنید
بعضی وقتها هم با داینامیک کردن محدوده میشه نتیجه گرفت
سلام و درود
یک گزارش تولید محصولات هست که قراره بر حسب ستون بیشترین فروش و ستون کمترین موجودی انبار اولویت بندی بشه
ممنون میشم بفرمایید از چه طریقی می توان اولویت بندی را انجام داد تاهمزمان این دو پارامتر رو مورد سنجش قرار بده ؟ از سورت بندی با دو شرط استفاده شد که جواب منطقی نبود ممنونم
درود
وزن بدید به هر فاکتور و به یک شتخص برسید…. اونو اولویت بندی کنید
سلام
با تشکر
سرکار خانم خاکزاد
چطور میتونیم اسامی رو هم در کنار رنک بندی ببینم وقتی که داده ها تکراری باشند یعنی دو عدد یکسان باشند .در مثال عدد ۵۶ چطور هم e و f نمایش داده بشه کنارشون .
مرسی
درود بر شما
این موضوع وارد فاز جستجوی داده تکراری میشه یا با توابع ۲۰۲۱ یا با استفاده از فرمول نویسی آرایه ای در این مقاله
یا اینکه اعداد رو بهشون ی عدد خیلی خیلی موچیک یونیک اضاضفه کنید و بعد فراخوانی کنید
اینم ی نگاه بندازید شاید بدرد خورد
https://excelpedia.net/sort-with-formula/
با سلام و احترام، چطور میتوان در یک مزایده برنده مزایده را در بین چندین نفر مشخص کرد. در یک سلول دیگر نام برنده و مبلغ پیشنهادی که از دیگران بالاتر است را نشان داد. سپاس
درود بر شما
میتونید max استفاده کنید و بیشترین قیمت رو تعیین کنید و بعد با match مکانشو پیدا کنید و بذارید داخل index که اسم شخص رو بهتون بده
مقالات مربوط به match و index رو داخل سایت مطالعه کنید
سلام وقت بخیر من یکسری داده دارم براشون نمودار پاراتو رو رسم کردم و حالا میخوام با توجه به قانون ۲۰ ۸۰ آنهارا کلاس بندی ABC کنم و روی نمودار دایره نشان دهم چگونه این کلاس بندی را انجام دهم در اکسل
درود
سپاس
منظورم گرد کردن هوشمند هست. مثلا
۸.۵ نزدیک به ۹ هست ولی من میخوام ۸ بشه یا
۱.۴ که نزدیک به یک هست ولی میخوام بشه ۲
چون دامنه عددها بین ۱ تا ۹ هست و نمیخوام عدد مشابه داشته باشم (مگر دو عدد مبنا یکسان باشند)
روش AHP رو یکم بهینه کردم ولی نمیخوام دستی عدد بدم یا فرمول نویسی کنم.
بازم از لطفتون سپاس گزارم.
درود
نهایتا میتونید یا فقط به پایین یا فقط به بالا گرد کنید
که بشه از این توابع استفاده کرد
ولی چیز یکه میخواید قاعده مشخصی نداره و با این توابع نمیشه
مگر اینکه الگوریتمی براش در بیارید و کدنویسی کنید براش
درود
در روش AHP وقتی میخواهیم یک ماتریس ۴ در ۴ رو رتبه دهی کنیم جواب گزینه ها به ترتیب مثلا:
۱. گزینه a=2.185.
۲. گزینه b=2.481.
۳.گزینه c=1 .
۴. گزینه d=9.
باشد چطور تعریف کنم که مقدار گرد شده به این شکل بشه:
گزینه a=2.
گزینه b=3.
گزینه c=1.
گزینه d=9.
آخه از ترکیب rank , countif , switch نشد.
راهی نیست بدون استفاده از VBA یا تابع شخصی این مشکل رو حل کنم؟!
فعلا فرصت برنامه نویسی رو ندارم و باید بدون کد نویسی باشه.
ممنون میشم راهنمایی کنید.
سپاس از آموزشهای ارزشمندتون.
درود
اگر فقط منظورتون گرد کردن عدد هست از توابع مخصوص گرد کردن استفاده کنید
سلام
عذر میخوام من تعداد ۱۰۱ سطر و تعداد ۸ سط به نام های که ردیف نام و نام خانوادگی مبلغ فیش واریزی مرحله اول مبلغ فیش واریزی مرحله دوم مبلغ فیش واریزی مرحله سوم دارم که هر مرحله با مبلغش رو برای این ۱۰۱ نفر جدا مرتب سازی براساس تاریخ واریزی انجام دادم
العان میخوام بین این سه مرحله مبلغ واریزی برای این ۱۰۱ نفر اولویت بندی کنم باید چیکار کنم ؟
درود
سوالتون واضح نیست
اگر منظورتون رتبه بندی هست، که خب تابعضو در همین مقاله مطالعه کردید.
مشکل رو بفرمایید کجاست.
سلام – دو عدد تکراری را میخوام با یک رتبه نشون بده ولی یکیشو ۳ و دیگری را ۴ نشون میده. چکار کنم ؟
سلام
از تابع RANK.EQ استفاده کنید.
سلام وقت بخیر
ببخشید یک ستون اعداد دارم که ۰ و ۱ و ۲ داره مثلا، بعد میخوام اعداد رو اولویت بندی کنم که مثلا سلول بیشترین عدد اویت ۱ بگیره و در ضمن سلول صفر هم جزو اولویت بندی ما نباشه،
ممنون میشم راهنمایی کنین
درود
سوال گنگه
اگه اعداد ۱ و ۲ هست فقط که رتبه اونها معلومه
اگر نه که باید منطق مشخص بشه
بصورت کلی میتونید با if صفر ها رو بذارید کنار و روی نتیجه رتبه بندی انجام بدید