فرمول Excel MAX IF برای یافتن بزرگترین مقدار با شرایط

  • این را به اشتراک بگذارید
Michael Brown

این مقاله چند روش مختلف برای به دست آوردن حداکثر مقدار در اکسل بر اساس یک یا چند شرطی که شما مشخص کرده‌اید نشان می‌دهد.

در آموزش قبلی، ما به کاربردهای رایج نگاه کردیم. از تابع MAX که برای برگرداندن بیشترین عدد در یک مجموعه داده طراحی شده است. با این حال، در برخی شرایط، ممکن است لازم باشد اطلاعات خود را بیشتر بررسی کنید تا حداکثر مقدار را بر اساس معیارهای خاصی بیابید. این را می توان با استفاده از چند فرمول مختلف انجام داد، و این مقاله همه راه های ممکن را توضیح می دهد.

    فرمول Excel MAX IF

    تا همین اواخر، مایکروسافت اکسل یک تابع MAX IF داخلی برای بدست آوردن حداکثر مقدار بر اساس شرایط. با معرفی MAXIFS در اکسل 2019، می‌توانیم حداکثر شرطی را به روشی آسان انجام دهیم.

    در اکسل 2016 و نسخه‌های قبلی، شما همچنان باید فرمول آرایه خود را با ترکیب MAX ایجاد کنید. تابع با یک دستور IF:

    {=MAX(IF( محدوده_معیار= معیار، محدوده_حداکثر))}

    برای مشاهده چگونگی این MAX عمومی اگر فرمول روی داده های واقعی کار می کند، لطفاً مثال زیر را در نظر بگیرید. فرض کنید، شما یک جدول با نتایج پرش طول چندین دانش آموز دارید. جدول شامل داده های سه راند است و شما به دنبال بهترین نتیجه یک ورزشکار خاص هستید، می گویند جیکوب. با نام دانش آموزان در A2:A10 و فاصله ها در C2:C10، فرمول به این شکل است:

    =MAX(IF(A2:A10="Jacob", C2:C10))

    لطفاً به خاطر داشته باشید که یک فرمول آرایهباید همیشه با فشار دادن همزمان کلیدهای Ctrl + Shift + Enter وارد شود. در نتیجه، به طور خودکار با براکت‌های فرفری احاطه می‌شود که در تصویر زیر نشان داده شده است (تایپ کردن بریس‌ها به صورت دستی کار نمی‌کند!). سلول، به طوری که شما به راحتی می توانید بدون تغییر فرمول شرایط را تغییر دهید. بنابراین، نام مورد نظر را در F1 تایپ می کنیم و نتیجه زیر را می گیریم:

    =MAX(IF(A2:A10=F1, C2:C10))

    این فرمول چگونه کار می کند

    در منطقی با آزمایش تابع IF، لیست نام ها (A2:A10) را با نام هدف (F1) مقایسه می کنیم. نتیجه این عملیات آرایه ای از TRUE و FALSE است، که در آن مقادیر TRUE نام هایی را نشان می دهد که با نام هدف (Jacob) مطابقت دارند:

    {FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;FALSE;FALSE;FALSE}

    برای value_ if_true آرگومان، نتایج پرش طول (C2:C10) را ارائه می کنیم، بنابراین اگر آزمون منطقی به درستی ارزیابی شود، عدد مربوطه از ستون C برگردانده می شود. آرگومان value_ if_false حذف شده است، به این معنی که در صورتی که شرط برقرار نباشد، فقط مقدار FALSE خواهد داشت:

    {FALSE;FALSE;FALSE;5.48;5.42;5.57;FALSE;FALSE;FALSE}

    این آرایه به تابع MAX تغذیه می شود، که حداکثر عدد را با نادیده گرفتن مقادیر FALSE برمی گرداند.

    نکته. برای مشاهده آرایه های داخلی که در بالا بحث شد، قسمت مربوطه از فرمول را در کاربرگ خود انتخاب کنید و کلید F9 را فشار دهید. برای خروج از حالت ارزیابی فرمول، کلید Esc را فشار دهید.

    فرمول MAX IF با چندینمعیار

    در شرایطی که نیاز دارید حداکثر مقدار را بر اساس بیش از یک شرط پیدا کنید، می‌توانید یکی از این موارد را:

    از عبارات IF تودرتو برای گنجاندن معیارهای اضافی استفاده کنید:

    {=MAX( IF( محدوده_معیار1 = معیار1 ، IF( محدوده_معیار2 = معیار2 ، محدوده_حداکثر )))}

    یا چندین معیار را با استفاده از عملیات ضرب انجام دهید:

    {=MAX(IF(( محدوده_معیار1 = معیار1 ) * ( محدوده_معیار2 = معیار2 max_range ))}

    فرض کنید نتایج پسران و دختران را در یک جدول دارید و می خواهید طولانی ترین پرش را در بین دختران در دور 3 پیدا کنید. ، اولین معیار (مونث) را در G1 وارد می کنیم، معیار دوم (3) را در G2، و از فرمول های زیر برای محاسبه حداکثر مقدار استفاده می کنیم:

    =MAX(IF(B2:B16=G1, IF(C2:C16=G2, D2:D16)))

    =MAX(IF((B2:B16=G1)*(C2:C16=G2), D2:D16))

    از آنجایی که هر دو فرمول آرایه هستند، لطفاً به خاطر داشته باشید که Ctrl + Shift + Enter را فشار دهید تا آنها را به درستی تکمیل کنید.

    همانطور که در تصویر زیر نشان داده شده است، فرمول ها نتیجه یکسانی دارند، بنابراین کدام یک از آنها استفاده می شود موضوع شما ترجیح شخصی شما برای من، خواندن و ساخت فرمول با منطق بولی آسان‌تر است – این فرمول اجازه می‌دهد تا هر تعداد که می‌خواهید شرایط را بدون تودرتو توابع اضافی IF اضافه کنید.

    این فرمول‌ها چگونه کار می‌کنند.

    فرمول اول از دو تابع IF تو در تو برای ارزیابی دو معیار استفاده می کند. در تست منطقی اولین دستور IF، مقادیر موجود در ستون Gender را با هم مقایسه می کنیم(B2:B16) با معیار در G1 ("زن"). نتیجه آرایه ای از مقادیر TRUE و FALSE است که در آن TRUE داده هایی را نشان می دهد که با معیار مطابقت دارند:

    {FALSE; FALSE; FALSE; TRUE; TRUE; TRUE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; TRUE; TRUE; TRUE}

    به روشی مشابه، تابع IF دوم مقادیر موجود در ستون Round را بررسی می کند (C2 :C16) بر خلاف معیار G2.

    برای آرگومان value_if_true در دستور IF دوم، نتایج پرش طول (D2:D16) را ارائه می کنیم، و به این ترتیب موارد را بدست می آوریم. که در دو آرایه اول در موقعیت های مربوطه درست است (یعنی مواردی که جنسیت "مونث" و گرد 3 است):

    {FALSE; FALSE; FALSE; FALSE; FALSE; 4.63; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; 4.52}

    این آرایه نهایی به تابع MAX می رود و بیشترین عدد را برمی گرداند.

    فرمول دوم شرایط یکسان را در یک آزمون منطقی ارزیابی می کند و عملیات ضرب مانند عملگر AND عمل می کند:

    وقتی مقادیر TRUE و FALSE در هر مورد استفاده می شود. عملیات حسابی، به ترتیب به 1 و 0 تبدیل می شوند. و چون ضرب در 0 همیشه صفر را به دست می دهد، آرایه حاصل فقط زمانی 1 دارد که همه شرایط درست باشد. این آرایه در تست منطقی تابع IF ارزیابی می شود که فاصله های مربوط به 1 عنصر (TRUE) را برمی گرداند.

    MAX IF بدون آرایه

    بسیاری از کاربران اکسل، از جمله من، هستند. نسبت به فرمول های آرایه تعصب داشته و سعی کنید تا جایی که ممکن است از شر آنها خلاص شوید. خوشبختانه، مایکروسافت اکسل چند توابع دارد که به صورت بومی آرایه را مدیریت می کند، و ما می توانیم از یکی استفاده کنیماز این توابع، یعنی SUMPRODUCT، به عنوان نوعی "پوشش" در اطراف MAX.

    فرمول عمومی MAX IF بدون آرایه به شرح زیر است:

    =SUMPRODUCT(MAX(( محدوده_معیار1 = معیار1 ) * ( محدوده_معیار2 = معیار2 ) * محدوده_حداکثر ))

    به طور طبیعی، می‌توانید جفت‌های محدوده/معیار بیشتری اضافه کنید اگر مورد نیاز است.

    برای مشاهده فرمول در عمل، از داده های مثال قبلی استفاده خواهیم کرد. هدف این است که حداکثر پرش یک ورزشکار زن را در دور 3 بدست آوریم:

    =SUMPRODUCT(MAX(((B2:B16=G1) * (C2:C16=G2) * (D2:D16))))

    این فرمول با یک ضربه کلید معمولی Enter رقابت می کند و همان نتیجه آرایه فرمول MAX IF را برمی گرداند:

    با نگاهی دقیق تر به اسکرین شات بالا، می توانید متوجه شوید که پرش های نامعتبر که با "x" در مثال های قبلی مشخص شده اند اکنون دارای 0 مقدار در ردیف های 3، 11 و 15 هستند. و بخش بعدی دلیل آن را توضیح می دهد.

    این فرمول چگونه کار می کند

    مانند فرمول MAX IF، ما دو معیار را با مقایسه هر مقدار در جنسیت (B2:B16) و Round (مقایسه می کنیم. C2:C16) ستون هایی با معیارهای موجود در سلول های G1 و G2. نتیجه دو آرایه از مقادیر TRUE و FALSE است. ضرب عناصر آرایه ها در موقعیت های یکسان، TRUE و FALSE را به ترتیب به 1 و 0 تبدیل می کند، جایی که 1 نشان دهنده مواردی است که هر دو معیار را دارند. سومین آرایه ضرب شده حاوی نتایج پرش طول (D2:D16) است. و چون ضرب در 0 صفر می شود، فقط مواردی که 1 (درست) در موقعیت های مربوطه دارند.زنده ماندن:

    {0; 0; 0; 0; 0; 4.63; 0; 0; 0; 0; 0; 0; 0; 0; 4.52}

    در صورتی که max_range حاوی هر مقدار متنی باشد، عملیات ضرب خطای #VALUE را برمی‌گرداند که به این دلیل کل فرمول کار نمی‌کند.

    تابع MAX آن را از اینجا می گیرد و بیشترین عددی را که شرایط مشخص شده را برآورده می کند برمی گرداند. آرایه حاصله متشکل از یک عنصر واحد {4.63} به تابع SUMPRODUCT می رود و حداکثر عدد را در یک سلول خروجی می دهد.

    توجه داشته باشید. به دلیل منطق خاص خود، فرمول با اخطارهای زیر کار می کند:

    • محدوده ای که در آن بالاترین مقدار را جستجو می کنید باید فقط شامل اعداد باشد. اگر مقادیر متنی وجود دارد، یک #VALUE! خطا برگردانده شده است.
    • فرمول نمی تواند شرط "عدم برابری با صفر" را در مجموعه داده های منفی ارزیابی کند. برای یافتن حداکثر مقدار بدون نادیده گرفتن صفرها، از فرمول MAX IF یا تابع MAXIFS استفاده کنید.

    فرمول Excel MAX IF با منطق OR

    برای یافتن حداکثر مقدار زمانی که هر از شرایط مشخص شده برآورده شده است، از فرمول MAX IF آرایه آشنا با منطق بولی استفاده کنید، اما به جای ضرب آنها، شرایط را اضافه کنید.

    {=MAX(IF(( criteria_range1 = معیار1 ) + ( محدوده_معیار2 = معیار2 محدوده_حداکثر ))}

    به طور متناوب، می توانید از فرمول غیر آرایه زیر استفاده کنید :

    =SUMPRODUCT(MAX((( محدوده_معیار1 = معیار1 ) + ( محدوده_معیار2 = معیار2 )) * max_range ))

    به عنوان مثال، بیایید کار کنیمبهترین نتیجه در دورهای 2 و 3. لطفاً توجه داشته باشید که در زبان اکسل، کار به شکل دیگری فرموله می شود: اگر دور 2 یا 3 باشد، حداکثر مقدار را برگردانید.

    با دورهای فهرست شده در B2:B10 ، نتایج در C2:C10 و معیارها در F1 و H1، فرمول به شرح زیر است:

    =MAX(IF((B2:B10=F1) + (B2:B10=H1), C2:C10))

    با فشردن کلیدهای ترکیبی Ctrl + Shift + Enter وارد فرمول شوید و دریافت خواهید کرد. این نتیجه:

    حداکثر مقدار با شرایط یکسان را نیز می توان با استفاده از این فرمول غیر آرایه پیدا کرد:

    =SUMPRODUCT(MAX(((B2:B10=F1) + (B2:B10=H1)) * C2:C10))

    با این حال، در این مورد باید تمام مقادیر "x" در ستون C را با صفر جایگزین کنیم زیرا SUMPRODUCT MAX فقط با داده های عددی کار می کند:

    چگونه این فرمول ها کار می کنند

    فرمول آرایه دقیقاً مانند MAX IF با منطق AND کار می کند با این تفاوت که با استفاده از عمل جمع به جای ضرب به معیارها می پیوندید. در فرمول های آرایه، جمع به عنوان عملگر OR عمل می کند:

    با اضافه کردن دو آرایه TRUE و FALSE (که از بررسی مقادیر B2:B10 در برابر معیارهای F1 و H1 حاصل می شود) آرایه ای از 1 و 0 که در آن 1 مواردی را نشان می دهد که هر یک از شرایط برای آنها TRUE است و 0 نشان دهنده مواردی است که هر دو شرط برای آنها FALSE هستند. در نتیجه، تابع IF تمام موارد موجود در C2:C10 ( value_if_true ) را نگه می دارد که هر شرطی برای آنها TRUE است (1). موارد باقیمانده با FALSE جایگزین می شوند زیراآرگومان value_if_false مشخص نشده است.

    فرمول غیر آرایه به روشی مشابه کار می کند. تفاوت این است که به جای آزمون منطقی IF، عناصر آرایه 1 و 0 را در عناصر آرایه نتایج پرش طول (C2:C10) در موقعیت های مربوطه ضرب می کنید. این موارد مواردی را که هیچ شرطی را ندارند (در اولین آرایه 0 دارند) باطل می کند و مواردی را که یکی از شرایط را دارند (دارای 1 در آرایه اول) حفظ می کند.

    MAXIFS – راه آسان برای یافتن بالاترین ارزش با شرایط

    کاربران اکسل 2019، 2021 و اکسل 365 از مشکل رام کردن آرایه ها برای ساختن فرمول MAX IF خود رها هستند. این نسخه‌های اکسل تابع MAXIFS مورد انتظار را ارائه می‌کنند که باعث می‌شود بیشترین مقدار را با شرایط بازی کودک پیدا کنید.

    در اولین آرگومان MAXIFS، محدوده‌ای را وارد می‌کنید که حداکثر مقدار باید در آن پیدا شود (D2: D16 در مورد ما)، و در آرگومان های بعدی می توانید تا 126 جفت محدوده/معیار وارد کنید. به عنوان مثال:

    =MAXIFS(D2:D16, B2:B16, G1, C2:C16, G2)

    همانطور که در تصویر زیر نشان داده شده است، این فرمول ساده با پردازش محدوده ای که دارای مقادیر عددی و متنی است مشکلی ندارد:

    برای اطلاعات دقیق در مورد این تابع، لطفاً تابع Excel MAXIFS را با مثال‌های فرمول ببینید.

    به این ترتیب می‌توانید حداکثر مقدار را با شرایط در اکسل پیدا کنید. از خواندن شما سپاسگزارم و امیدوارم در آینده شما را در وبلاگ خود ببینیمهفته!

    کتاب کار را برای دانلود تمرین کنید

    نمونه‌های فرمول Excel MAX IF (فایل xlsx.)

    مایکل براون یک علاقه‌مند به فناوری است که علاقه زیادی به ساده‌سازی فرآیندهای پیچیده با استفاده از ابزارهای نرم‌افزاری دارد. او با بیش از یک دهه تجربه در صنعت فناوری، مهارت های خود را در Microsoft Excel و Outlook و همچنین Google Sheets و Docs تقویت کرده است. وبلاگ مایکل اختصاص داده شده است تا دانش و تخصص خود را با دیگران به اشتراک بگذارد و نکات و آموزش هایی را برای بهبود بهره وری و کارایی ارائه دهد. چه یک حرفه ای با تجربه باشید و چه مبتدی، وبلاگ مایکل، بینش های ارزشمند و توصیه های عملی را برای استفاده حداکثری از این ابزارهای نرم افزاری ضروری ارائه می دهد.