نسخه جدید افزونه تقویم شمسی منتشر شد!!! جزئیات بیشتر در صفحه این محصول (سابقه افزونه تقویم شمسی) نوشته شده.
سبد خرید
0

محصولی در سبد خرید نیست.

بازگشت به فروشگاه
تمام دسته ها
  • تمام دسته ها
  • ابزارها
  • افزونه ها
  • اکسل مدیا
  • Power BI
  • Power Pivot
  • Power Query
  • توابع اکسل
  • دسته‌بندی نشده
  • دیده بان
  • گوگل شیت
  • مسائل کاربردی
  • معرفی کتاب
  • نمودار ها
  • وی بی - ماکرو

توابع بانک اطلاعاتی توابع شرطی در اکسل

توابع بانک اطلاعاتی
۲.۳/۵ - (۳ امتیاز)

توابع سریع بانک اطلاعاتی

توابع بانک اطلاعاتی در اکسل توابعی هستن که برای انجام یک سری محاسبات در یک پایگاه داده بکار برده میشن. توابع بانک اطلاعاتی یک سری محاسبات پایه ای مثل جمع، شمارش، میانگین و … رو حساب میکنه با این تفاوت که میتونه شرطهای مختلفی رو بپذیره، مثلا جمع رکورد های خاصی در دیتابیس رو محاسبه کنه (یه سری کاربرد دیگه هم در مقاله کاربردهای حرفه ای توابع اطلاعاتی گفته شده که پیشنهاد میکنم حتما بخونی). لیست توابع بانک اطلاعاتی رو در جدول زیر میبینیم:

تابع عملکرد تابع
Daverage میانگین داده هایی که مطابق با شرط ها هستن رو محاسبه میکنه
Dcount تعداد سلول های حاوی عدد رو در محدوده مطابق با شرط ها محاسبه میکنه
Dcounta تعداد سلول های پر، رو در محدوده مطابق با شرط ها محاسبه میکنه
Dget تنها داده ای که مطابق با شرط ها هست رو نمایش میده
Dmax ماکزیمم داده هایی که مطابق با شرط ها هستن رو محاسبه میکنه
Dmin مینیمم داده هایی که مطابق با شرط ها هستن رو محاسبه میکنه
Dproduct ضرب داده هایی که مطابق با شرط ها هستن رو محاسبه میکنه
Dstdev انحراف معیار استاندارد (نمونه) داده هایی که مطابق با شرط ها هستن رو محاسبه میکنه
Dstdevp انحراف معیار استاندارد (جامعه) داده هایی که مطابق با شرط ها هستن رو محاسبه میکنه
Dsum جمع داده هایی که مطابق با شرط ها هستن رو محاسبه میکنه
Dvar واریانس (نمونه) داده هایی که مطابق با شرط ها هستن رو محاسبه میکنه
Dvarp واریانس (جامعه) داده هایی که مطابق با شرط ها هستن رو محاسبه میکنه

آرگومان های توابع بانک اطلاعاتی

همه این توابع ساختار یکسان دارند. در واقع سه آرگومان اجباری داریم که با یک مثال در ادامه تشریح میکنیم:

فرض کنید میخواهیم مجموع تعداد اشتغال در بخش صنعت رو محاسبه کنیم. برای این کار از تابع Dsum استفاده میکنیم و بصورت زیر:

Database: آرگومان اول که محدوده بانک اطلاعاتی رو تعیین میکنه. این محدوده میتونه Table باشه. در این مثال، Table1 به عنوان آرگومان اول تابع تعیین میشه.

Field: آرگومان فیلد، ستونی رو که قراره محاسبات روی اون انجام بشه رو تعیین میکنه. در اینجا چون میخوایم مجموع اشتغال رو محاسبه کنیم، باید فیلد تعداد اشتغال رو مشخص کنیم. نحوه مشخص کردن فیلد تعداد اشتغال به سه صورت امکان پذیر هست:

  • اسم فیلد یعنی: “تعداد اشتغال”
  • شماره فیلد یعنی: عدد ۴ (ستون تعداد اشتغال چهارمین ستون از Table1 هست)
  • آدرس سلولی که داخل اون نوشته شده تعداد اشتغال، یعنی: J1 (با فرض اینکه در سلول J1 نوشته شده تعداد اشتغال)

Criteria: محدوده شرط های مورد نظر در این آرگومان مشخص میشه. در این مثال محدوده J3:J4 محدوده شرط مورد نظر هست. محدوده شرط حتما با اسم سرستون ها مشخص میشه.

ساختار تابع

شکل ۱- توابع بانک اطلاعاتی-ساختار تابع

همین فرمول رو به شکل های زیر هم میتونیم بنویسیم:

=DSUM (Table1[#All] , ۴ , J3:J4)

=DSUM (Table1[#All] , “تعداد اشتغال” , J3:J4)

شرط های قابل استفاده

شرط هایی که در این توابع بکار برده میشن، در جدول زیر آمده:

مفهوم شرط
سلول هایی که نوشته شده “قرمز” رو در نظر میگیره قرمز
سلول هایی که با “قر” شروع میشن رو در نظر میگیره قر*
سلول های مساوی با ۱۰ رو در نظر میگیره ۱۰
سلول های بزرگتر از ۱۰ رو در نظر میگیره >10
سلول های پر رو در نظر میگیره <>
سلول هایی که با ۱۰۰ مخالف هستن رو در نظر میگیره <>100
تاریخ های بعد از ۱۹ دسامبر ۲۰۱۷ رو در نظر میگیره >12/19/2017
نکته:
در مورد امکان استفاده از تاریخ شمسی، میتونیم از آفیس ۲۰۱۶ و نمایش تاریخ شمسی استفاده کنیم.

 

نکته:
علامت های Wildcards به گستردگی کاربرد در توابع sumifs و … نیستند. در واقع بعضی الگوها در توابع بانک اطلاعاتی شناخته نمیشن. پس هنگام استفاده از علامت های Wildcards در توابع بانک اطلاعاتی خیلی باید دقت کنیم و نتیجه رو حتما یکبار چک کنیم.

 

ممکنه این سوال برامون پیش بیاد که فرق بین تابع sumif و Dsum چی هست؟

یکی از تفاوت های اصلی این دو تابع، سرعت عملکرد هست. تابع sumifs از دسته توابع volatile به شمار میاد و در موارد زیاد، باعث سنگین و کند شدن فایل میشه. اما تابع Dsum سرعات عملکرد بالاتری داره.

د رادامه یکی دیگه از ویژگی های مهم توابع بانک اطلاعاتی رو خواهیم دید:

یکی از ویژگی های خیلی مهم این توابع، امکان برقراری شرط های متنوع با منطق Or/And هست.

در محدوده Criteria، اگر شرط بصورت افقی قرار بگیره، منطق AND و اگر زیر هم قرار بگیره، منطق OR خواهد داشت.

در شکل ۲، در جدولی که به معنی OR هست، شرط به اینصورت تفسیر میشه، رکوردهایی در نظر گرفته میشه که مربوط به بانک سپه در بخش صنعت یا بانک ملی در بخش صنعت باشند.

منطق یا OR

شکل ۲- توابع بانک اطلاعاتی-منطق یا

در شکل ۳، در جدولی که به معنی AND هست، شرط به اینصورت تفسیر میشه، رکوردهایی در نظر گرفته میشه که مربوط به بخش صنعت و با اشتغال بین ۱۰ تا ۱۵ باشند.

منطق و AND

شکل ۳- توابع بانک اطلاعاتی-منطق و

پس با این منطق میتونیم شرط های متنوعی رو با مفهوم AND/Or در توابع بانک اطلاعاتی داشته باشیم و محاسبات دلخواه مثل جمع، میانگین، شمارش و … رو محاسبه کنیم.

نکته:
محدوده Criteria ، حتما باید عین سر ستون مربوطه در دیتابیس رو داشته باشه. حتی یک اسپیس کم و زیاد در نتیجه اثرگذار خواهد بود. پس جهت اطمینان، سر ستون های دلخواه رو کپی میکنیم و در محدوده شرط پیست میکنیم.

 

از بین توابع بانک اطلاعاتی، همه، مشابه تابع Dsum عمل میکنند و نکته خاصی ندارند به جز تابع Dget. اینن تابع میتونه جستجوی شرطی انجام بده، به شرط اینکه نتیجه جستجو، یک رکورد یونیک و منحصر بفرد باشه. اگر نتیجه جستجو یک مقدار منحصر بفرد نباشه تابع با خطای #NUM! مواجه میشه و اگر کلا جستجو، نتیجه ای نداشته باشه، خطای #Value! نمایش داده خواهد شد.

مثلا میخواهیم میزان وام پرداختی به کد شماره a00846 رو فراخوانی کنیم. (شکل ۴)

توابع بانک اطلاعاتی – تابع Get

شکل ۴- توابع بانک اطلاعاتی – تابع Get

 چون میدونیم کد طرح یک مقدار یونیک هست، و نتیجه جستجو منحصر بفرد خواهد بود، پس تابع نتیجه داره و مقدار مبلغ پرداختی به طرح a00846 رو یعنی ۳۱۳ رو نشون میده.

اما اگر مورد جستجو، مثلا بانک سپه باشه، چون چندین بانک سپه وجود داره و یکی نیست، نتیجه تابع #NUM! خواهد بود. مطابق شکل ۵.

توابع بانک اطلاعاتی-تابع Dget و خطای NUM

شکل ۵- توابع بانک اطلاعاتی-تابع Dget و خطای NUM

دانلود فایل نمونه این آموزش

حالا که همه نکات مربوط به این توابع رو شرح دادیم، کافیه، فایل نمونه رو دانلود کنید و چند تمرین حل کنید. نمونه هایی از توابع Dcount, Dcounta  و …

133

من سامان چراغی هستم. دانش آموخته مقطع فوق لیسانس دانشگاه تربیت مدرس در رشته مهندسی صنایع. از سال 1388 اکسل و برنامه نویسی VBA رو به صورت حرفه ای شروع کردم.

دیدگاه کاربران
  • مهسا امینی ۲۲ آذر ۱۴۰۲ / ۹:۴۵ ب٫ظ

    میشه برای این توابع طوری فرمول نویس کرد که بخش criteria توی سلول نباشه و توی فرمول نوشته بشه؟
    من فایلی دارم که سنگین شده و فکر کردم شاید با تعویض توابع sumifs با dsum سبک تر بشه
    ولی مشکل اینجاست که اعمال شرط های جمع توی سلول های اکسل فضای خیلی زیادی از شیت رو اشغال می کنه

    • آواتار
      حسنا خاکزاد ۲۳ آذر ۱۴۰۲ / ۱۰:۲۸ ق٫ظ

      درود بر شما
      مسئله این توابع همینه که شرط ها چون سرستون دارن، داخل فرمول نمیان

  • مهرناز رمضان زاده ۲۳ تیر ۱۴۰۲ / ۱۲:۰۵ ب٫ظ

    درورد بر شما
    فکر میکنم در مثال بالا، در قسمت توضیحات DGET، مثال بانک سپه هم نتیجه یونیک داره و بهتره به جاش بانک ملی نوشته بشه
    دوم اینکه فایل نمونه آموزش اشکال داره و باز نمیشه

    • آواتار
      حسنا خاکزاد ۲۳ تیر ۱۴۰۲ / ۵:۵۸ ب٫ظ

      درود بر شما
      طبق عکس درست میفرمایید، از قسمتی که عکس گذاشته شده همینطور به نظر میاد ولی داد ها ادامه داره و بانک سپه چندتاست برای همین خطا داده
      در مورد فایل هم مجدد تست کردم وهیچ مشکلی نیست چک کنید کهکامل دانلود شده باشه و با نسخه اپدیت شده زیپشو باز کنید

  • Alemi ۲۴ آبان ۱۳۹۹ / ۶:۰۵ ب٫ظ

    سلام مهندس. اگر در یک سلول دو انتخاب داشته باشیم مثلا خانم و اقا
    اقا رو انتخاب میکنیم و بعد در ستون بعدی چند تا انتخاب رشته داریم ک فقط برای اقایان مثلا جوشکاری را انتخاب میکنیم ولی جوشکاری برای خانم ها نباید باشد و یه جوری عمل شرطی بذاریم
    دوتا ستون داریم
    ستون اول
    جنسیت
    ستون دوم رشته ها
    چجوری باید این کارو انجام بدیم.مرسی

  • َatousa ۲۰ آذر ۱۳۹۸ / ۱:۲۳ ب٫ظ

    سلام
    میخواستم بدونم داخل اکسل چطوری میتونم عددی رو که به ریال نوشتم با برداشتن صفر آخرش تبدیلش کنم به تومان ؟

    • سامان چراغی ۲۰ آذر ۱۳۹۸ / ۶:۲۴ ب٫ظ

      سلام
      اگر به صورت عدد نوشته شده، سلول رو بر ۱۰ تقسیم کنید.
      اگر به صورت متن نوشته شده از تابع Left استفاده کنید.

    • آواتار
      حسنا خاکزاد ۲۰ آذر ۱۳۹۸ / ۶:۳۸ ب٫ظ

      درود
      باید داده هاتون و تقسیم بر ده کنید
      اگر از فرمت سل میخواید تنظیم کنید، میشه ظاهر عدد رو تنظیم کرد ولی اصل عدد همونه. اگر ظاهر و میخواید تنظیم کنید، این کد و بزنید:

  • افشین ابدی ۱۰ آذر ۱۳۹۸ / ۵:۵۷ ب٫ظ

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

    • آواتار
      حسنا خاکزاد ۱۱ آذر ۱۳۹۸ / ۱:۳۹ ب٫ظ

      درود
      منظور از آورده شوند چیه؟
      با فرمول؟فیلتر؟کد؟
      اگر فقط بحث عدم نمایش صفر در دیتابیس هست این کد رو در فرمت سل بزنید:
      0;-۰;;@@

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

توسط
تومان