
تابع DGET در اکسل یکی از توابع پایگاه داده است که یک مقدار واحد را از ستونی در یک جدول یا دیتابیس برمیگرداند. این مقدار بر اساس یک شرط خاص یا حتی چند شرط انتخاب می شود. به زبان ساده، تابع DGET در واقع یک تابع جستجو (Lookup) است، درست مثل تابع های VLOOKUP و INDEX/MATCH. با این تفاوت که اگر در محدوده جستجوی شما مقادیر تکراری باشد یا بخواهید یک مقدار واحد را که با بیش از یک شرط مطابقت دارد پیدا کنید، استفاده از VLOOKUP و INDEX/MATCH خیلی راحت نخواهد بود.
برای مثال در جدول زیر، اگر از شما خواسته شود که نام نماینده فروشی را پیدا کنید که کمتر از ۱۰ حضور داشته است، VLOOKUP نمی تواند این کار را انجام دهد زیرا ستون بازگشت در سمت چپ ستون جستجو قرار دارد. یا اگر نیاز باشد مقدار فروش را براساس نام نماینده جستجو کنید، VLOOKUP و INDEX/MATCH کمکی نمی کنند، زیرا نام نماینده ها تکراری است.

شکل ۱ – جدول نمونه
اینجاست که تابع DGET وارد میدان جستجو می شود و به راحتی تمام مشکلات بالا را حل می کند!
آرگومان های تابع DGET اکسل
تابع DGET در اکسل به این صورت نوشته می شود و سه آرگومان می گیرد:
DGET(database, field, criteria)=
آرگومان اول: دیتابیس
یک محدوده داده است که شامل سرستون ها (عنوان ستون ها) هم می شود. برای عملکرد درست تابع DGET بودن سرستون ها در رنج انتخابی ضروری است، زیرا این تابع از عنوان ستون ها برای شناسایی هر ستون و اعمال شرط ها استفاده می کند.
آرگومان دوم: فیلد (field)
در اصطلاحات پایگاه داده، field معادل همان سرستون (column header) است. اگر ستون ها با نام مشخص شده باشند، باید نام آنها را داخل علامت نقل قول دوتایی ” ” قرار دهید. همچنین می توانید مانند تابع VLOOKUP از اعداد برای مشخص کردن ستون خاصی استفاده کنید.
آرگومان سوم: شرط ها
محدوده ای از سلول هاست که یک یا چند شرط رو مشخص می کنند و اکسل بر اساس این شرط ها به شما خروجی می دهد. این محدوده باید به این صورت نمایش داده شود، نام فیلد یا همان عنوان ستون در یک سلول و شرط مربوط به آن در سلول زیر آن باشد. مثلا:
سن | درس |
۸< | ریاضی |
حالت های مختلف آرگومان دوم
شرط های زیر هر عنوان فیلد می توانند یکی از این موارد باشند:
- یک مقدار عددی شامل عدد صحیح، اعشاری، تاریخ، زمان یا مقدار منطقی (مثلاً ۱۰، ۰۱/۰۱/۲۰۱۷، FALSE)
- یک رشته متنی به صورت ” Text” (مثلاً “Thursday”)
- یک عبارت (مثلاً “۸<“، “۰<>”)
توجه داشته باشید که توابع پایگاه داده در اکسل حساس به حروف بزرگ و کوچک نیستند. به عنوان مثال، شرط “North” برای سلولهایی که شامل متن “North” یا “north” هستند برآورده خواهد شد.
شرط های تابع DGET می توانند شامل انواع مختلفی از عبارات، از جمله برخی کاراکترهای جایگزین اکسل (wildcards) باشند. چند نمونه از این کاراکترها را در جدول زیر می بینید:
شرط | خروجی |
*سا | با “سا” شروع شود |
۱۰ | برابر با ۱۰ |
۱۰< | بزرگتر از ۱۰ |
<> | خالی نباشد (Not blank) |
۱۰۰<> | ۱۰۰ نباشد |
لیست کامل کاراکترهای جایگزین اکسل یا همان wildcards را می توانید از لینک زیر ببینید. توجه داشته باشید که وایلد کارت ها فقط برای متن (Text) استفاده می شوند:
نکته: به نظر میرسد که پشتیبانی از کاراکترهای جایگزین (wildcards) در توابع دیتابیس به اندازه توابعی مانند COUNTIFS، SUMIFS، MATCH و غیره گسترده نیست. به عنوان مثال، الگوی “???” در توابع جدیدتر اکسل رشته هایی با دقیقا سه کاراکتر را تطبیق می دهد، اما در توابع دیتابیس اینطور نیست. اگر از کاراکترهای جایگزین استفاده می کنید، باید با دقت تست کنید. البته در مقاله جستجو پیشرفته در اکسل با استفاده از Wildcard کامل این مبحث رو پوشش دادیم و درباره نحوه استفاده از این کاراکترها کامل توضیح دادیم که پیشنهاد می کنیم حتما مطالعه کنید.
مثال برای تابع DGET
فرض کنید در جدول بالا می خواهیم فروشنده ای که بیشتر از ۸۵۰ تا فروش کرده را پیدا کنیم. پس تابع DGET آن به این صورت می شود:
DGET(A1:E8, “Agent”, A10:A11)
برای آرگومان اول محدوده جدول را با عنوان های ستون ها انتخاب می کنیم.
برای آرگومان دوم عنوان مقداری که می خواهیم به ما برگرداند را داخل علامت ” ” می نویسیم. (البته به جای این کار میتوانیم شماره ستون را یعنی عدد ۱ را فقط بنویسیم)
برای آرگومان سوم هم محدوده شرطی که تعریف کردیم را انتخاب می کنیم.
و در نهایت مطابق تصویر زیر به ما خروجی مورد نظر را می دهد.

شکل ۲ – تابع DGET با تعریف یک شرط
مثال دوم:
حالا دو شرط می خواهیم تعریف کنیم. به این صورت که برای فروشنده Emma که تعداد فروش هایش بیشتر از ۳۰۰ بوده، ID فروش را برگرداند. پس تابع را به این شکل می نویسیم:
DGET(A1:E8, “ID”, A10:B11)
اینگونه، تابع مطابق تصویر زیر، ID فروش را برای Emma که تعداد فروش هایش هم بیشتر از ۳۰۰ باشد را برای ما برمیگرداند.

شکل ۳ – تابع DGET با تعریف دو شرط
خطاهای تابع DGET
خطای !NUM#
این خطا را زمانی دریافت می کنید که بیشتر از یک رکورد در دیتابیس شما با شرط هایی که تعریف کردید تطبیق داشته باشد. پس در واقع محدودیت تابع DGET این است که برای شرط هایی که تعریف می کنید اگر بیشتر از یه مقدار تطابق پیدا کند، تابع خطای NUM# را برمیگرداند. مثلا، اگر برای مثال بالا به جای فروشنده Mike را قرار دهیم، تابع خطای NUM را می دهد زیرا بیشتر از یک نتیجه با این شرط ها مطابقت دارد.

خطای !VALUE#
اگر هیچ رکوردی در دیتابیس شما با شرط هایی که تعریف کردید تطبیق نداشته باشد، این خطا را می دهد.
تعریف شرط های چند ردیفی
محدوده شرطی که برای تابع DGET تعریف می کنیم، می تواند بیشتر از یک ردیف باشد. وقتی که شرط ها بیشتر از یک ردیف باشد، ردیف ها با منطق Or (یا) به هم مرتبط می شوند. از طرفی دیگر شرط هایی که در یک ردیف تعریف می شوند با منطق And (و) مرتبط می شوند. قبلا در مقاله توابع بانک اطلاعاتی توابع شرطی در اکسل به طور کامل درباره این دو منطق و نحوه استفاده از آنها برای توابع دیتابیسی توضیح دادیم. با کمک منطق “و” ، “یا” می توانید شرط های بیشتری برای این تابع تعریف کنید و به این ترتیب جستجوی خود را دقیق تر کنید. بنابراین پیشنهاد می کنیم برای آشنایی بیشتر با این منطق ها حتما این مقاله را مطالعه کنید.
ویدیوی آموزش تابع DGET در اکسل
در این ویدیو با ذکر چند مثال نحوه کار کردن با این تابع را نشان دادیم و درباره مزیت های این تابع نسبت به دیگر توابع جستجو گفتیم. البته تابع DGET دو تا محدودیت هم دارد که در ویدیو کامل توضیح دادیم.