تابع dmax در اکسل
تابع DMAX یکی از توابع دسته Database در اکسل است که بیشینه (Maximum) مقدار یک ستون مشخص را بر اساس معیارهای دلخواه برمیگرداند. این تابع زمانی مفید است که دادهها به شکل جدولی با سطر اول عنوان ستونها (header) سازمانیافته باشند و بخواهید بیشینه یک فیلد را فقط در بین رکوردهایی که شرایط خاصی دارند پیدا کنید.
ساختار و آرگومانها (Syntax)
ساختار کلی تابع DMAX به صورت زیر است:
=DMAX(database, field, criteria)توضیحات آرگومانها:
- database: دامنهٔ جدول شامل سطر عنوان ستونها و دادهها (مثلاً A1:D100).
- field: نام ستون هدف که میخواهید بیشینه آن را بیابید، میتواند نام ستون به صورت متن (“Sales”) یا شماره ستون (مثلاً 3) باشد.
- criteria: دامنهٔ معیارها که شامل یک یا چند عنوان ستون و زیرِ آنها شرایط است (مثلاً F1:G2).
قوانین مهم درباره criteria
- سطر اول محدودهٔ criteria باید حتماً عناوین ستون (header) را داشته باشد و نام آنها دقیقاً با عنوان ستونهای database مطابقت کند.
- اگر چند شرط را در یک ردیف criteria قرار دهید، این شروط بهصورت AND عمل میکنند.
- اگر شروط را در ردیفهای مختلف زیر header قرار دهید، آنها بهصورت OR عمل میکنند (هر ردیف یک مجموعه شرط مجزا).
- برای مقادیر متنی میتوانید از wildcardها (*) و (?) استفاده کنید.
- برای مقادیر عددی و تاریخی معمولاً شرطها را به صورت رشتهای مانند “>=100” یا “>=”&DATE(2025,1,1) قرار میدهید یا در سلولی مقدار را نوشته و در criteria مرجع میدهید.
نمونهٔ جدول داده (مثال)
| Date | Region | Sales | Rep |
|---|---|---|---|
| 2025-01-15 | North | 1200 | A |
| 2025-02-04 | South | 950 | B |
| 2025-02-20 | North | 1500 | C |
| 2025-03-01 | East | 700 | D |
مثالهای عملی با توضیح گامبهگام
فرض کنید جدول بالا در محدودهٔ A1:D5 قرار دارد. میخواهیم بیشینهٔ مقدار Sales برای Region = “North” را بیابیم.
=DMAX(A1:D5, "Sales", F1:F2)در این حالت محدودهٔ criteria را به شکل زیر تنظیم میکنیم:
| Region |
|---|
| North |
توضیح: در F1 هدر “Region” و در F2 مقدار “North” قرار میگیرد. تابع DMAX بیشینهٔ ستون Sales را فقط برای رکوردهایی که Region آنها North است برمیگرداند (در مثال بالا نتیجه 1500 خواهد بود).
مثال با شرط تاریخ و ترکیب AND
برای یافتن بیشینهٔ فروش در Region = “North” و تاریخ >= 2025-02-01:
=DMAX(A1:D5, "Sales", F1:G2)مثال ساختار criteria:
| Date | Region |
|---|---|
| >=”&DATE(2025,2,1) | North |
توضیح: در یک ردیف شرطها (AND) نوشته شدهاند، بنابراین فقط رکوردهایی که تاریخشان بعد یا مساوی 2025-02-01 و Region آنها North است در محاسبه بیشینه شرکت داده میشوند.
نکات پیشرفته و مشکلات رایج
- عنوانهای criteria باید دقیقاً مشابه عنوانهای جدول باشند؛ اختلاف فاصله یا کاراکتر باعث خطا یا نتایج نادرست میشود.
- اگر field را به صورت شماره ستون وارد کنید، شمارش از ستون اول پایگاه داده آغاز میشود (مثلاً 3 برای ستون Sales در مثال بالا).
- وقتی criteria سلولی شامل فرمول یا مرجع به یک تاریخ است، بهتر است از ترکیب متن و تابع DATE یا & برای اطمینان استفاده کنید: “>=”&A2
- برای عملیات OR از ردیفهای متفاوت در criteria استفاده کنید. مثلاً برای Region = North یا Region = South دو ردیف زیر header قرار دهید.
- تابع DMAX فقط روی محدودهٔ درجشده کار میکند؛ اگر دادهها را به Table تبدیل کنید (Insert → Table)، میتوانید محدودهٔ database را به Table1[#All] تغییر دهید یا از نام جدول استفاده کنید.
تفاوت DMAX با توابع جدیدتر مثل MAXIFS و AGGREGATE
- MAXIFS (از اکسل 2016 به بعد) امکان محاسبهٔ بیشینه با چند شرط را با فرمول مستقیم و سادهتر فراهم میکند: =MAXIFS(SalesRange, RegionRange, “North”, DateRange, “>=2025-02-01”).
- مزیت DMAX این است که معیارها را میتوان در یک جدول criteria انعطافپذیر قرار داد (پشتیبانی مستقیم از OR با ردیفهای متعدد) و در سناریوهایی که میخواهید شرایط را بدون تغییر فرمول تغییر دهید، مناسب است.
- MAXIFS سریعتر و واضحتر برای شرایط ساده است، اما DMAX برای قواعد پیچیده و گزارشگیری با criteriaهای متغیر مفیدتر است.
نمونهٔ فرمول پیشرفته با ارجاع به سلول
=DMAX(A1:D100, "Sales", F1:G2)در این نمونه F1:G2 میتواند چنین باشد:
| Region | Date |
|---|---|
| =I1 | >=”&I2 |
توضیح: با این روش میتوان مقادیر criteria را پویا کرد — مثلاً کاربر در I1 نام منطقه را وارد کند و در I2 تاریخ آستانه را وارد کند؛ سپس نتیجه DMAX مطابق ورودیها تغییر خواهد کرد.
نکات پایانی و توصیههای کارشناس
- در گزارشگیریهای پیچیده ترجیح دهید criteria را در جدولی مجزا قرار دهید تا نگهداری و تغییر آن آسان باشد.
- برای مقادیر متنی از wildcard استفاده کنید: مثلاً “North*” برای همهٔ مناطقی که با North شروع میشوند.
- در دیتاهای بزرگ مقایسهٔ سرعت DMAX و MAXIFS منطقی است؛ در بعضی موارد MAXIFS سریعتر عمل میکند.
- همیشه بررسی کنید آیا headerها دقیقاً تطابق دارند و سلولهای خالی یا متن در ستون عددی باعث مشکل نمیشوند.
با درک درست ساختار criteria و چگونگی عملکرد AND/OR در آن، تابع DMAX ابزار بسیار قدرتمندی برای استخراج بیشینهٔ دادهها در شرایط انعطافپذیر است و میتواند جایگزین یا مکمل توابع جدیدتر در گزارشگیریهای پیشرفته باشد.
آیا این مطلب برای شما مفید بود ؟




