ترکیب توابع با تابع Vlookup در اکسل

ترکیب توابع با تابع Vlookup
۵/۵ - (۱۱ امتیاز)

یکی از راه های حرفه ای شدن در اکسل، شناخت توابع به تنهایی و توانایی در ترکیب اونها با هم هست. تا حالا بصورت جداگانه با توابع IF و Vlookup آشنا شدید. این دو تابع به تنهایی هم خیلی پرکاربرد هستن و جزو توابعی هستن که حتما باید بهشون مسلط باشیم. وقتی که این دو تابع رو با هم ترکیب میکنیم، نتایج خیلی مفید و کاربردی به ما میده. در این مقاله میخوایم نمونه هایی از ترکیب توابع با تابع Vlookup در اکسل رو ببینیم:

  1. مقایسه خروجی تابع Vlookup با یک عبارت مشخص

یکی از بیشترین مسائلی که از ترکیب توابع IF و Vlookup داریم، این هست که خروجی Vlookup رو با یک عبارت مشخص مقایسه میکنیم و خروجی بله/خیر یا غلط/درست  و … رو نمایش میدیم. ساختار کلی این مسئله بصورت زیر هست:

IF(VLOOKUP(…) = sample_value, TRUE, FALSE) 

مثال اول-مقایسه خروجی Vlookup با یک مقدار مشخص

 فرض کنید لیستی از محصولات به همراه موجودی اونها رو داریم. میخوایم محصولی رو انتخاب کنیم و اگر موجودی اون محصول صفر بود، بگه در انبار نیست.

=IF(VLOOKUP (E1; A1:B10; 2; 0) =0; بله” ;  “خیر )

 مقایسه خروجی Vlookup با یک مقدار مشخص

شکل ۱- مقایسه خروجی Vlookup با یک مقدار مشخص

مثال دوم- مقایسه خروجی  Vlookup با یک سلول دیگه

فرض کنید میخوایم میزان فروش محصول مورد نظر رو با بیشترین فروش (که در یک سلول دیگه هست) مقایسه کنیم:

=IF ( VLOOKUP(E1;A1:B10;2;0 ) = E9 ;بله” ;  “خیر)

 مقایسه خروجی Vlookup با یک سلول دیگه

شکل ۲- مقایسه خروجی Vlookup با یک سلول دیگه

 مثال سوم- جستجو در یک لیست کوچکتر-مقایسه دو لیست

فرض کنید میخوایم دو لیست رو با هم مقایسه کنیم. اگر داده های جدول در لیست دوم وجود داشت، کلمه “وجود دارد” رو نمایش بده. اگر هم وجود نداشت، کلمه “وجود ندارد” رو نشون بده.

=IF ( ISNA ( VLOOKUP(A2;$D$2:$D$4;1;0) ) ; “وجود دارد” ; “وجود ندارد” )

تابع Vlookup در صورتی که داده مورد نظر رو پیدا نکنه،#N/A هست. پس با تابع ISNA چک میکنیم که آیا خروجی تابع Vlookup خطا هست یا نه. اگر خطا بود، یعنی وجود نداشته پس عبارت “وجود ندارد” را نمایش خواهد داد.

  مقایسه دو لیست

شکل ۳- مقایسه دو لیست با استفاده از ترکیب توابع با تابع Vlookup

  1.  ترکیب تابع Vlookup با IF برای اعمال محاسبات مختلف

میتونیم خروجی تابع Vlookup رو بررسی کنیم و یک سری محاسبات روش انجام بدیم.

فرض کنید میخوایم پورسانت فروشنده ها رو بر اساس میزان فروششون حساب کنیم. شرایط به این صورت است که هر نفر، فروش بیش از ۳۰۰ داشته باشد، بیست درصد و در غیر اینصورت ده درصد پورسانت دریافت خواهد کرد.

=IF(VLOOKUP(D2,A2:B9,2,0)>=300,0.2*VLOOKUP(D2,A2:B9,2,0),0.1*VLOOKUP(D2,A2:B9,2,0))

انجام عملیات مختلف روی خروجی تابع Vlookup

شکل ۴- انجام عملیات مختلف روی خروجی تابع Vlookup

  1. ترکیب توابع با تابع Vlookup برای کنترل خطای #N/A

IF(ISNA(VLOOKUP(…)), “عبارت مورد نظر”, VLOOKUP(…)) 

اگر تابع Vlookup داده مورد جستجو رو پیدا نکنه، با خطای #N/A مواجه میشیم. یکی از راه های کنترل این خطا استفاده از تابع منطقی ISNA با IF هست.

=IF(ISNA(VLOOKUP(D2,A2:B9,2,0)),“موجود نیست”,VLOOKUP(D2,A2:B9,2,0))

 کنترل خطای تابع Vlookup

شکل ۵- کنترل خطای تابع Vlookup

این تابع چطور کار میکنه؟

خروجی تابع ISNA، True یا False هست. اگر تابع Vlookup با خطا مواجه بشه، خروجی تابع IFNA(Vlookup(….) مقدار True خواهد بود و عبارت “موجود نیست” رو نمایش میده. در غیر اینصورت خروجی ISNA(Vlookup(…) مقدار False خواهد بود که نتیجه خود تابع Vlookup رو بر میگردونه. در اینجا چون “خرمی” در لیست وجود نداره، با خطا مواجه میشه و نتیجه “موجود نیست” نمایش داده میشه. به تصویر زیر دقت کنید.

این کار رو توابع دیگه هم انجام میدن. توابعی مثل IFNA، Iferror، Iserror و If(Iserror). جهت مطالعه بیشتر نحوه مدیریت خطا، مقاله مدیریت خطا در اکسل رو مطالعه کنید.

  1. استفاده از Match و Index بجای Vlookup

خیلی از کاربران اکسل معتقدند که تابع Vlookup تنها راه جستجوی عمودی در اکسل نیست و میتونیم این کار رو با توابع index و Match هم انجام بدیم. به مثال زیر توجه کنید:

=IF (ISERROR (INDEX ( B2:B9, MATCH (D2,A2:A9,0),1)) ,“”, INDEX (B2:B9, MATCH(D2,A2:A9,0),1))

استفاده از Index و Match بجای vlookup

شکل ۶- استفاده از Index و Match بجای Vlookup (ترکیب توابع با تابع Vlookup)

همونطور که در مثال بالا می بینید، بجای استفاده از Vlookup از ترکیب Match و Index برای پیدا کردن فروشنده مورد نظر استفاده کردیم. این فرمول چطور کار میکنه؟

تابع Match به ما میگه که موردی که جستجو میکنیم چندمین سلول از محدوده مورد نظر هست. خروجی تابع Match (که عدد هست) به عنوان آرگومان شماره ردیف در تابع index استفاده میشه. اگر هم داده مورد نظر رو پیدا نکنه خروجی Match بصورت #N/A خواهد بود و ما برای مدیریت خطا از تابع Iserror استفاده کردیم.

به تصویر زیر دقت کنید و نحوه عملکرد ترکیب این دو تابع رو ببینید.

 

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

134

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

دیدگاه کاربران
  • رحیم ۳۰ خرداد ۱۴۰۳ / ۶:۱۳ ب٫ظ

    سلام برای جمع تعداد افراد خانواده ازچه فرمولی استفاده کنم مثلا خانواده متشکل از سرپرست همسر فرزند بعضی‌ها پدر ومادر هم تحت تکفل آنها هست برای جمع کلی هم‌خانواده چگونه باید انجام داد متشکرم

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

      درود بر شما
      بستکی به نحوه ثبت داده و چینش داده داره
      کدملی داره؟ وجه اشتراک چیه
      یک خانواده از دیگری چطور تفکیک میشه

  • Atashi ۲۰ تیر ۱۴۰۰ / ۶:۵۵ ق٫ظ

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

  • علی فلاح ۴ آذر ۱۳۹۹ / ۸:۱۹ ق٫ظ

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

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

      درود بر شما
      خیلی بستگی به این داره که چه نوع تاریخ یاستفاده میشه
      تاریخ میلادی؟ شمسی؟ چه نوع شمسی؟
      اگر میلادی باشه و با ظاهر شمسی، کافیه از MAXIF یا Dmax استفاده کنید

  • مقصودی ۳۰ آبان ۱۳۹۹ / ۱۱:۵۰ ق٫ظ

    سلام و وقت بخیر اکسلی تهیه کردم برای انبار نزدیک به ۳۰۰۰کالا توش تعریف شده.حتی شیت بندی ها هم کاملا جداست.همه چی خیلی خوب کار میکنه اما تو بعضی از کالاها مجبور به استفاده – هستیم که در این موقع اخطار!value# میده ممنون میشم اگه کمک کنید.

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

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

      • مقصودی ۷ آذر ۱۳۹۹ / ۵:۴۱ ب٫ظ

        ممنون از پاسخگویتون این راه جواب نداد اگه امکان داره اکسل رو بفرستم براتون برسی کنید

  • سبحان ۲۹ آبان ۱۳۹۹ / ۸:۱۶ ب٫ظ

    سلام. تشکر از گروه عالیتون. من سوال اکسل داشتم توی جدول زیر که یه توضیح در موردش بدم: (خیلی دنبال جواب گشتم پیدا نکردم)
    – ستون A گروه های سنی هست از ۵ تا ۱۹ سال ادامه داره
    – ستون B تا E نمایه توده بدنی هست (BMI)
    – حالا با توجه به سن علی که در کتگوری ۵.۷۵ قرار میگیره (ردیف ۶)
    – و BMI علی که ۱۷ هست از ۱۶.۷۵ بیشتر و از ۱۸.۴۵ کمتر هست (نسبت به ردیف ۶)
    من نیاز دارم که در سلول زرد رنگ علی واژه “اضافه وزن” یا همون سلول B2 رو ببینم.
    و این روند برای ۷۰۰ نفر قراره بررسی بشه که هرکدوم ممکنه لاغری شدید، لاغری و… ادامه پیدا کنه. همچنین اگر بالاتر از محدوده اضافه وزن بود واژه “چاق” دیده بشه
    * خیلی سوال شد ببخشید *
    لینک فایل اکسل:
    https://s17.picofile.com/file/8414605776/1.xlsx.html
    لینک عکس جدول:
    https://s16.picofile.com/file/8414605884/1.JPG

ارسال دیدگاه

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