تابع dget در اکسل
تابع DGET یکی از توابع دسته «توابع پایگاه داده» (Database Functions) در اکسل است که برای بازگرداندن یک مقدار یکتا از یک فهرست یا بانک اطلاعاتی استفاده میشود؛ به شرطی که تنها یک رکورد با معیارهای مشخص شده مطابقت داشته باشد. این تابع در مواقعی که میخواهیم یک فیلد خاص از یک رکورد یکتا را استخراج کنیم، بسیار مفید است.
ساختار تابع
ساختار کلی تابع DGET بصورت زیر است:
=DGET(database, field, criteria)توضیح پارامترها:
- database: محدودهای که شامل جدول دادهها و سرفصل ستونها است.
- field: نام ستون (به صورت متن) یا شماره ستون در database که مقدار آن باید بازگردانده شود.
- criteria: محدودهای که شرطها (فیلترها) را نشان میدهد. این محدوده باید شامل یک ردیف سرفصل (همان نام ستونها) و یک یا چند ردیف شرط باشد.
مثال عملی
فرض کنید جدولی از محصولات داریم:
| ProductID | Product | Category | Price |
|---|---|---|---|
| 1001 | Keyboard | Accessories | 25 |
| 1002 | Mouse | Accessories | 15 |
| 1003 | Monitor | Displays | 150 |
| 1004 | Webcam | Accessories | 50 |
میخواهیم قیمت محصولی که ProductID آن برابر 1003 است استخراج شود. ابتدا محدوده داده (A1:D5) و معیار (مثلاً F1:F2) را آماده میکنیم.
=DGET(A1:D5, "Price", F1:F2)در این مثال، فیلد “Price” مقدار ستون قیمت را بازمیگرداند و در محدوده معیار انتظار داریم سرفصل ProductID در F1 و مقدار 1003 در F2 نوشته شده باشد.
چگونگی تنظیم محدوده Criteria
قواعد مهم برای ایجاد محدوده شرط:
- ردیف اول criteria باید عیناً نام ستونها (سرفصلها) را داشته باشد.
- هر ردیف زیر ردیف اول معرف یک مجموعه شرط است. ترکیب شرطها در یک ردیف بهصورت AND عمل میکند؛ شرطها در ردیفهای متفاوت بهصورت OR عمل میکنند.
- برای نوشتن شرطهای بزرگتر/کوچکتر یا شامل توابع متنی از علائم مانند >, <, <>، یا کاراکترهای wildcard مثل * و ? استفاده کنید.
مثال ترکیبی AND:
=DGET(A1:D5, "Product", H1:I2)فرض کنید H1=”Category” و H2=”Accessories” و I1=”Price” و I2=”50″؛ این فرمول فقط زمانی نتیجه میدهد که یک رکورد هم Category=”Accessories” و هم Price=50 داشته باشد.
مثال با wildcard و شرطهای متنی
=DGET(A1:D5, "Product", K1:K2)اگر K1=”Product” و K2=”*cam” نوشته شده باشد، تابع دنبال محصولی میگردد که نام آن به «cam» ختم شود (مثل “Webcam”).
خطاهای رایج و دلایل آنها
- #NUM! — وقتی که بیش از یک رکورد با شرایط مطابقت داشته باشد. DGET فقط زمانی کار میکند که دقیقاً یک رکورد مطابق باشد.
- #VALUE! — وقتی که field نامعتبری داده شود (مثلاً نام ستون وجود نداشته باشد یا ارجاع ناصحیح باشد).
- #N/A — وقتی هیچ رکوردی با شرایط مطابقت ندارد.
مقایسه با توابع مشابه
- DGET برای استخراج یک مقدار یکتا کاربرد دارد؛ اگر چندین رکورد وجود داشته باشد، خطا میدهد.
- VLOOKUP/HLOOKUP و INDEX/MATCH معمولاً برای جستجوی سفارشیتر یا بازگرداندن اولین مورد استفاده میشوند، اما این توابع به صورت پیشفرض شرطهای چندستونی AND/OR را پشتیبانی نمیکنند و برای شرایط پیچیده باید ترکیب شوند.
- توابع DSUM، DCOUNTA و … برای انجام محاسبات آماری روی مجموعهای از رکوردها با شرایط استفاده میشوند؛ اگر هدف شما محاسبه جمع یا شمارش است، از آنها استفاده کنید.
نکات پیشرفته و بهترین روشها
- از نامهای محدوده (Named Ranges) برای database و criteria استفاده کنید تا خوانایی فرمول افزایش یابد و خطا کاهش یابد.
- برای دادههای بزرگ و عملیات پیچیده، Power Query یا جدولهای اکسل (Excel Tables) کارایی و قابلیت نگهداری بهتری دارند و بهتر است از DGET برای جستجوی ساده و سریع استفاده شود.
- اگر ممکن است بیش از یک رکورد مطابق باشد و شما اولین یا آخرین مورد را بخواهید، به جای DGET از INDEX/MATCH به همراه SMALL/LARGE یا استفاده از فیلترهای پیشرفته بهره ببرید.
- در شرایطی که ستونها ممکن است تغییر مکان دهند، بهتر است به جای شماره ستون (مثلاً 4) نام ستون را بکار ببرید تا خطا کمتر شود.
نمونه پیشرفته: معیارهای OR و AND ترکیبی
فرض کنید میخواهید محصولی با Category=”Accessories” و (Price=50 یا Product=”Mouse”) پیدا کنید. برای این کار از چند ردیف criteria استفاده میکنیم:
| Category | Price | Product |
|---|---|---|
| Accessories | 50 | |
| Accessories | Mouse |
سپس فرمول:
=DGET(A1:D5, "Product", M1:O3)در این حالت تابع به دنبال رکوردی میگردد که Category آن Accessories و یا شرایط دوم (Product=Mouse) برقرار باشد؛ ولی توجه کنید که در نهایت باید دقیقاً یک رکورد مطابق پیدا شود تا خروجی معتبر باشد.
سازگاری و جایگزینها
DGET در اکثر نسخههای اکسل از جمله Excel 2010، 2013، 2016، 2019 و Office 365 موجود است. با این حال برای سناریوهای مدرن و دادههای بزرگ، Power Query (Get & Transform) یا ترکیباتی از INDEX/MATCH و توابع جدیدتر مانند XLOOKUP در Excel 365 قابلتطبیقتر و پایدارترند.
خلاصه و توصیههای عملی
- از DGET وقتی استفاده کنید که مطمئن هستید شرطها دقیقاً یک رکورد را برمیگردانند.
- برای شرایط چندگانه AND/OR از چیدمان مناسب ردیفها و ستون در محدوده criteria استفاده کنید.
- برای دادههای حجیم یا پرسوجوهای پیچیده از ابزارهای پیشرفتهتر مثل Power Query یا XLOOKUP بهره ببرید.
اگر نمونه گستردهتری از داده یا سناریوی خاص دارید، میتوانم فرمول و ساختار criteria را مطابق داده شما طراحی و خطاها را رفع کنم.
آیا این مطلب برای شما مفید بود ؟




