سبد خرید
0

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

بازگشت به فروشگاه

تابع Vlookup اکسل | معرفی و آشنایی

تابع Vlookup اکسل
۳/۵ - (۴۷ امتیاز)

آشنایی با تابع Vlookup اکسل

جستجو و فراخوانی در اکسل، از مباحث حرفه ای و کاربردی به شمار می رود. به همین منظور است که یک دسته از توابع در اکسل به این موضوع مهم اختصاص داده شده است. دسته توابع Lookup & Reference، همه توابع مربوط به جستجو و فراخوانی و ارجاع را در خود جای داده است. توابع موجود در این دسته از اهمیت بسیار زیادی برخوردار هستند. مخصوصا که این توابع هنگامی که با یکدیگر و سایر توابع ترکیب می شوند نتایج فوق العاده ای خلق می کنند. یک فرد حرفه ای در اکسل، لازم است مهارت و تسلط زیادی روی این دسته از توابع داشته باشد. یکی از معروف ترین توابع از این دسته، تابع Vlookup اکسل است.

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

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

این تابع شامل چهار آرگومان به شرح زیر است:

Lookup_Value: عبارت یا سلی که می‏خواهیم جستجو کنیم.

Table_Array: جدولی که جستجو در آن انجام می‏شود.

Col_index_Num: شماره ستونی از جدول است که می‏خواهیم برگردانده شود.

Range_Lookup: تعیین می‏کند که بصورت دقیق جستجو کند یا تخمینی.

تشریح یک مثال حل شده

در ادامه با یک مثال به تشریح آرگومان های این تابع می پردازیم.

در بانک اطلاعاتی زیر کد مشتری و اطلاعات مربوط به خرید هر مشتری موجود است. همانطور که در شکل ۱ مشخص است، می خواهیم کد مشتری را در سل G3 وارد کرده و تاریخ خرید همان مشتری را در سل روبرو  (H3)مشاهده کنیم (به این کار فراخوانی گفته می شود).

جستجوی دقیق در تابع Vlookupشکل ۱ – نحوه نوشتن تابع Vlookup

آرگومان اول: موردی است که به جستجوی آن پرداختیم. در اینجا کد مشتری Lookup-Value ما خواهد بود که در سل G3 نوشته شده است.

=VLOOKUP(G3,A1:E16,5,0)

آرگومان دوم: محدوده ای است که جستجو در آن انجام می شود. در اینجا محدوده A1:E16، Table_Array ما خواهد بود.

=VLOOKUP(G3,A1:E16,5,0)

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

=VLOOKUP(G3,A1:E16,5,0)

آرگومان چهارم: مقدار ۰ جستجوی دقیق و عدد ۱ جستجو تخمینی را انجام میدهد. باید به این نکته اشاره کنم که مقدار ۱ کاربردهای خاصی برای برخی مسائل دارد و اغلب اوقات ما آرگومان چهارم را ۰ قرار می دهیم زیرا به دنبال جواب دقیق هستیم.

=VLOOKUP(G3,A1:E16,5, )

در آینده حتما کاربردی خاص از جستجوی تخمینی را ارائه خواهم کرد.

همچنین میتونید آموزش Vlookup از چند شیت یا چند فایل رو مطالعه کنید.

حالا اگر بخواهیم مبلغ خرید را فراخوانی کنیم، فقط کافیست عدد ۵ را به ۴ تغییر دهیم. زیرا مبلغ خرید چهارمین ستون از محدوده جستجو یا همان Table_Array هست.

چند نکته

نکته اول: آیتمی که مورد جستجو قرار می گیرد، همیشه باید در اولین ستون از Table_Array موجود باشد. فرض کنید می خواهیم اطلاعات مربوط به شرکت ها را جستجو کنیم. مثلا می خواهیم مبلغ خرید شرکت E را فراخوانی کنیم. فرمول به شرح شکل۲ تغییر خواهد کرد:

تابع

شکل۲ – انتخاب محدوده جستجو در Vlookup

دقت داشته باشید که محدوده جستجو یا همان Table_Array به B1:E16 تغییر کرده چرا که نام شرکت در ستون B قرار دارد و ما میخواهیم نام شرکت را مورد جستجو قرار دهیم. همچنین با توجه به این تغییر، مبلغ خرید، سومین ستون از Table_Array خواهد بود.

 

نکته دوم: در حالت عادی تابع Vlookup موارد تکراری را جستجو نمی کند. یعنی اگر در ستون نام شرکت، بیش از یک شرکت E وجود داشته باشد، Vlookup همواره به مورد اول که برسد، همان را بر می گرداند و موارد بعدی را جستجو نمی کند. البته برای برطرف کردن این موضوع ترفندهایی می شود بکار بست که در مقاله جستجو موارد تکراری میتونید این مسئله رو حل کنید.

نکته خیلی مهم
مشکلی که در بسیاری اوقات افراد با آن مواجه میشوند، این است که اعداد در تابع Vlookup پیدا نمیشوند و خروجی تابع، خطای #N/A دیده میشود.
یکی از علل این مسئله جنس داده ها است. به این معنی که اعداد به صورت متن درآمده اند. در این مواقع بهتر است همه اعدادی که جنس عدد ندارند را در عدد یک ضرب کنیم تا به صورت عدد شناسایی شوند و در محاسبات این تابع در نظر گرفته شوند.
کلیدواژه : تابع Vlookupمتوسط
آواتار
145

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

دیدگاه کاربران
  • شهیار ۱۱ اردیبهشت ۱۴۰۳ / ۱۰:۰۷ ب٫ظ

    سلام وقت بخیر
    یه عدد تو ی سلول دارم میخوام با یه ستون مقایسه بشه!
    ستون مضربی از ۱۵هست.
    اول اینکه این عدد من بین چه اعدادی قرار داره(شاید هم مضربی از ۱۵باشه)
    دوم اینکه اگه بین اعداد هست یا مضربی از ۱۵
    یه بار باعدد قبلش(کمترین) جمع بشه و یه بار باعدد بعدش (بیشترین)

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

      درود اگه همه مضرب ۱۵ هستن، نیازی به جستجو ندارید
      عدد رو یکبار به مضرب ۱۵ به بالا و یکبار به پایین گرد کنید
      این دو عدد رو با خودش جمع کنید
      توابع گرد کردن مضربی هم
      ceiling و floor است
      https://excelpedia.net/number-rounding/

  • اشرف تقدیری ۱۰ اردیبهشت ۱۴۰۳ / ۹:۳۷ ق٫ظ

    سلام اگر بخواهیم یک مقدار را در یک رشته متنی جستجو کند چیکار باید بکنیم. مثلا کد ۱۰۴ را در رشته دفتر ۴۰ برگی ۱۰۴ سیمی

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

      درود بر شما
      تابع find/search

  • مهدی ۲۱ تیر ۱۴۰۱ / ۱۱:۳۹ ق٫ظ

    سلام کد زیر رو چطور میشه دو شرطی کرد؟
    TextBox3.Text = Application.WorksheetFunction.VLookup(Val(TextBox1.Text) & (TextBox2.Text), Worksheets(“Sheet2”).Range(“B:M”), 3, False)

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

      درود
      ساختار چند شرطی if در کدنویسی VBA بصورت زیر هست:
      if
      logic1 and logic2 and logic3….. then
      value true
      else
      value false
      end if

  • پروانه ۳ اسفند ۱۴۰۰ / ۱۰:۳۹ ق٫ظ

    سلام و وقت بخیر
    ببخشید با استفاده از فرمول vlookup مقدار یک سلولی که با superscript به صورت سانتی متر مکعب درج شده است برگرداندم.اما در مقداری که برگردانده می شود عدد ۳ دیگر بصورت توان نیست و در کنار cm قرار داد.بریا اینکار راه حلی وجود دارد ؟

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

      درود بر شما
      نه متاسفانه در فرمول نویسی راهی نیست براش فعلا

      تابع text فقط فرمت های تب number رو هندل میکنه

  • مریم ۴ آذر ۱۳۹۹ / ۱۲:۴۶ ب٫ظ

    با سلام و احترام

    توضیحات بسیار شفاف و در عین حال مختصر بود . امیدوارم همیشه سلامت باشید .

    سپاس فراوان

  • Mahtab ۲۸ آبان ۱۳۹۹ / ۱۰:۲۰ ق٫ظ

    سلام.درصورت استفاده از تابع VLOOKUP اگر مقدار مورد جستجو،کوچکتر ار کوچکترین مقدار اولین ستون جدول باشه،چه خطایی رخ میده؟
    اینو میشه جواب بدید و اگر حالت دیگه‌ای داره مثلا بزرگتر یا…باشه چه خطایی میشه،توضیح بدید
    ممنون میشم

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

      سلام، در صورتیکه مقدار گزینه آخر به صورت False تعیین شده باشه خروجی تابع #N/A خواهد بود اما اگر True باشد نزدیک ترین مقدار رو به عدد مورد جستجو پیدا خواهد کرد.

  • حامد ۲۱ آبان ۱۳۹۹ / ۹:۵۵ ق٫ظ

    سلام خسته نباشید
    فرمول VBA میخوام که در textboxt مورد نظرم یک سلول دلخواهم نمایش بده و در صورت نیاز خودم عددش عوض کنم ولی بصورت اتومات برام نمایش بده
    مثال textboxt1 سلول n1 هر مقداری یا حرف دارد نمایش بده

    • سامان چراغی ۲۳ آبان ۱۳۹۹ / ۱۱:۳۵ ق٫ظ

      سلام
      کافیه در رویداد Initialize یوزرفرم، خصوصیت Text کنترل TextBox رو مساوی Range موردنظر قرار بدید.

  • کریمی ۳۰ مهر ۱۳۹۹ / ۱:۱۹ ب٫ظ

    سلام من در یک شیت با ۸۵۰ کد شناسه ۰، میخوام از فایل دیگه ای که یک کد پرونده مشترک دارن و شامل ۱۰ هزار دیتا هست(info10=نام شیت)، کد شناسه های صفر رو کامل کنم
    توی شیت اصلی ده هزارتایی، کد پرونده من از ستون d شروع شده و شناسه در ستون g که شماره ستون g=7
    توی شیت دوم من فقط ۸۵۰کد پرونده دارم که توی ستون a هستن. بنابراین من برای بازخوانی دادهای هر سلول در ستون دوم شیت دوم به این صورت عمل کردم:
    (VLOOKUP(A2,info10!$D$2:$H$10000,7,0=
    ما همه این ۸۵۰ کد پرونده رو داخل لیست ده هزارتاییمون داریم و درواقع بانک اصلی ماست پس باید کل کدها پیدا بشه .ولی خطای n/a# داد. من فرمت داده هام رو چک کردم همه جنرال بودن. و چند کد رو هم چک کردم که از موجود بودنشون مطمئن بشم، فرمول رو اشتباه زدم که این خطا رو میده؟

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

      درود
      اگه برای بعضی کدها ج میده و بعضی نه
      فرمول درسته
      مشکل همون فرمت هست
      صرف جنرال بودن مهم نیست
      باید سلول فعال بشه دوباره اینتر بشه
      مقاله تبدیل متن به عدد رو مطالعه کنید

  • مهدی اخلاقی ۴ تیر ۱۳۹۹ / ۴:۴۶ ق٫ظ

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

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

      درود
      همین تابع vlookup پاسخ سوالتون هست. مطالعه بفرمایید از صفر توضیح داده شده

ارسال دیدگاه

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

توسط
تومان