بهتر است که کار آموزش تابع VLOOKUP را از این نقطه آغاز کنیم که چرا این تابع این همه مهم است؟ و چرا باید هر کاربر اکسل آنرا در حد تسلط یاد بگیرد؟
اگر کسی تابع VLOOKUP، تابع SUMIFS و PIVOT را بلد نیست، اکسل را نمیداند.
پاسخ در توجیه اهمیت VLOOKUP ساده است.
تابع VLOOKUP برای ادغام دادهها در اکسل بکار میرود.
همیشه در اکسل دادههای ما در یک شیت متمرکز نیست. دادهها در شیت ها و فایل های مختلف پراکندهاند و همواره ما به گزارش و تحلیلی نیاز داریم که لازمه آن ادغام این اطلاعات پراکنده در یک شیت میباشد.
بگذارید مثال ساده ای بزنم. شما کارشناس برنامه ریزی تولید شرکتی هستید و دو فایل اکسل به دست شما میرسد. یکی از واحد بازرگانی و دیگری از انبار.
در فایل واحد بازرگانی اسامی و تعداد کالاهایی که مشتریان سفارش داده اند ، مشخص شده و در فایلی که از انبار دریافت کردهاید تعداد موجودی هر کالا در انبار مشخص است.
حال شما باید ابتدا این دادهها را با تابع VLOOKUP ادغام کنید تا بتوانید مشخص کنید که از کالا چند عدد باید تولید شود. یعنی باید تعداد سفارش هر کالا را با تعداد موجودی انبار مقایسه کنید و سپس تصمیم بگیرید که برنامه تولید آن کالا چگونه باید باشد.
مثال مشهور دیگر محاسبه مالیات حقوق در اکسل است. یعنی در یک شیت اطلاعات حقوقی افراد را دارید و در شیت دیگر جدول مالیاتی را و میخواهید که مالیات هر کسی را بر اساس آن جدول محاسبه کنید.
درک رفتار تابع VLOOKUP
کارنامه ساده زیر را در نظر بگیرید و سپس به این سوالات پاسخ دهید؟
الف) در جلوی اسم بهار در سومین ستون جدول چه مقداری نوشته شده است؟
ب) در جلوی کد دانش آموزی 2000 در دومین ستون جدول چه مقداری نوشته شده است؟
صرفنظر از اینکه پاسخ شما به این سوالات چیست، باید بگویم که شما در اینجا دقیقا کار تابع VLOOKUP را انجام دادهاید. یعنی یک چیزی را در این جدول پیدا کرده اید و سپس گفتید که جلوی آن چیز، چه مقداری وارد شده است.
بنابراین تابع VLOOKUP یک مقداری (که به آن معلوم میگوییم) را در یک جدول پیدا می کند و می گوید که جلوی آن مقدار چه مقداری تایپ شده است. دقیقا همان کاری که شما برای پاسخ به سوالات الف و ب انجام دادید.
خیلی ساده بود. من اگر تا یک هفته برای شما هزاران VLOOKUP بنویسم، به شما اطمینان می دهم که هیچ تعریف جدیدی در رفتار این تابع نخواهید یافت.
VLOOKUP یک چیزی را پیدا می کند و می گوید که جلوی آن چیست. فقط همین.
تفسیر واژه «جدول» در VLOOKUP
در سوالات الف و ب ما با ابهامی مواجه هستیم. سومین ستون جدول کجاست؟
به شما بگویم که تقریبا اشکال عمده دانشجویان در کلاس ها نکته ای است که شما هم با آن در همین ابتدا روبرو شده اید. پس خیلی نگران نباشید . در واقع حتما باید منظور از جدول و شمارگذاری ستون آن را برای شما مشخص کنم.
ستون معلوم ها، اولین ستون جدول است.
بگذارید به سوال های پرسیده شده با این تعریف ارائه شده پاسخ دهیم.
الف) در جلوی اسم بهار در سومین ستون جدول چه مقداری نوشته شده است؟
برای ما در این سوال نام دانشجو مشخص شده، بنابراین ستون معلوم های ما، ستون «نام دانش آموز» است و بنابراین اولین ستون جدول در اینجا «نام دانش آموز» خواهد بود و دومین ستون جدول در «فارسی» و سومین ستون جدول «قرآن» می باشد. پس پاسخ این سوال عدد 14.5 خواهد بود.
ب) در جلوی کد دانش آموزی 2000 در دومین ستون جدول چه مقداری نوشته شده است؟
برای ما در این سوال کد دانش آموز مشخص شده، بنابراین ستون معلوم های ما، ستون «کد دانش آموز» است و بنابراین اولین ستون جدول در اینجا «کد دانش آموز» خواهد بود و دومین ستون جدول «نام دانش آموز» و سومین ستون جدول «فارسی» می باشد. پس پاسخ این سوال عدد «علی» خواهد بود.
نکته: بسیاری از کاربران به اشتباه تصور می کنند که اولین ستون باید ستون A در اکسل باشد.
آموزش فرمول VLOOKUP
تابع VLOOKUP از شما 4 ورودی میخواهد و سپس به شما پاسخ را خواهد داد. بگذارید با حل قدم به قدم پرسش الف شروع کنیم.
در جلوی اسم بهار در سومین ستون جدول چه مقداری نوشته شده است؟
ورودی 1)
در ابتدا VLOOKUP از شما مقدار معلوم را میخواهد، پس خواهیم نوشت:
=VLOOKUP("BAHAR"
یادآوری: هر گاه در فرمولی یک متن نوشتیم باید آن متن در داخل علامت (دبل کوت) یعنی " " قرار گیرد.
ورودی 2)
سپس VLOOKUP از شما میخواهد که جدولی را برای جستجو مشخص کنید. (در واقع کاملا حق هم دارد، از کجا بدانید که در کدام شیت و یا ستونها باید جستجو را انجام دهد) . دقت داشته باشید که حتما باید این جدول دو شرط زیر را داشته باشد:
الف) اولین ستون جدول، ستونی باشد که مقادیر معلوم در آن تایپ شده است.
با توجه به تصویر چون نام دانش آموزان در ستون C وارد شده است، باید جدول ما از ستون C شروع شود.
ب) جدول شما شامل ستون مجهول ها هم باشد.
چون سومین ستون جدول (یعنی نمره قرآن) را باید پیدا میکردیم، حتما باید جدول ما حداقل تا ستون E باشد. بنابراین ادامه تابع ما میشود
=VLOOKUP("BAHAR" , C:E
یادآوری: علامت «:» در اکسل به معنای «تا» است. بنابراین C:E را باید بخوانیم ستون C تا E.
نکته: اگر جدول را بیشتر انتخاب کردیم مثلا نوشتیم C:Z، هیچ اشکالی ندارد.
ورودی 3)
خوب حالا که معلوم و جدول را مشخص کردیم، نوبت میرسد که به VLOOKUP بگوییم که مجهول ما کجاست. کافی است که جای ستون مجهول را به آن بگوییم. یعنی بگوییم در این جدول (یعنی C:E) سومین ستون حاوی مقداری است که ما آنرا لازم داریم. بنابراین باید بنویسیم:
=VLOOKUP("BAHAR" , C:E , 3
توجه 1: حتما باید سومین ورودی یک عدد باشد. در واقع شما نمی توانید نام ستون مجهول را بدهید.
یادآوری: مجدد تاکید میشود که شمارش ستون ها باید نسبت به «جدول» باشد.
ورودی 4)
این ورودی را فعلا طوطی وارد عدد 0 بگذارید. دلیلش را فعلا نپرسید. در این مقاله به صورت مفصل توضیح دادهام.
بنابراین شکل نهایی تابع VLOOKUP شما این خواهد شد:
=VLOOKUP("BAHAR" , C:E , 3 , 0)
و در پاسخ عدد 14.5 را خواهید داشت.
حل مساله ب)
سوال) در جلوی کد دانش آموزی 2000 در دومین ستون جدول چه مقداری نوشته شده است؟ فرمولش را بنویسید؟
فرمول شما به شکل زیر خواهد بود:
=VLOOKUP(2000 , B:F , 2 , 0)
حالا بگذارید من چند تا سوال بپرسم و مثلا شما پاسخ بدهید:
1) چرا 2000 را داخل علامت " " قرار ندادید؟
پاسخ شما : چون یک عدد است و فقط متن ها را داخل علامت " " می گذاریم.
2) چرا از ستون B، جدول را شروع کردید؟
پاسخ شما: چون معلوم ما در این مساله کد دانش آموزی است و این کدها در داخل ستون B قرار دارند و حتما باید ستون معلوم ها اولین ستون جدول ما باشد.
3) چرا جدول را B:C ننوشتید؟
پاسخ شما: اشکالی ندارید که ستون های بیشتری را در جدول انتخاب کنیم.
4) عدد 2 در فرمول بالا چیست؟
پاسخ شما: دومین ستون منطقه B:F است و مجهول های ما در این ستون قرار دارند.
5) عدد 0 در فرمول بالا چیست؟
پاسخ شما: استاد گفته 0 بگذارید و من گوش کردم. (برای دانستن معنای 0 مقاله «محاسبه مالیات حقوق در اکسل با تابع VLOOKUP» را مشاهده نمایید)
6) اگر VLOOKUP نتوانست چیزی را که مطمئن هستیم وجود دارد را بیاید، دلیلش چیست؟
پاسخ: احتمالهای زیر را بررسی کنید:
الف) احتمالا یک یا چند Space در داخل سلول معلوم وجود دارد با تابع trim این فاصله های اضافه را حذف کنید.
ب) باید بدانید که عدد 1 با متن "1" برابر نیست. ممکن است شما در تابع عدد 1 را نوشته باشید اما در جدول ، این اعداد با Format Cells TEXT ، وجود داشته باشند.
ج) حرف "ی" و "ک" را بررسی کنید.
نکات نهایی تابع VLOOKUP
نکته 1: حروف بزرگ و کوچک انگلیسی متفاوت نیستند. یعنی BAHAR = baHaR است.
نکته 2: عدد و متن متفاوتند. یعنی 2 = "2" نیست. به مقاله «گزینه text در Format Cells اکسل - دردسرها و راهکارها» و مقاله «فرمت و ظاهر اعداد در اکسل با Format Cells» برای تسلط بر این موضوع مطالعه کنید.
نکته 3: همواره فرض ما این است که یک مقدار معلوم وجود دارد. اگر مقادیر معلوم ها تکراری بودند، تابع vlookup اولین مقدار را مییابد.
نکته 4: تابع vlookup از wildcard ها پشتیبانی می کند یعنی میتوانید به جای "bahar" بنویسید "*aha*" و یعنی سلولی که در آن aha وجود دارد.
نکته 5: توجه داشته باشید که دو حرف "ی" و "ک" در عربی و فارسی متفاوت هستند و در مقاله «اثر تفاوت حروف «ي» و «ك» عربی در اکسل روش تبدیل به «ی» و «ک» فارسی» این موضوع به تفضیل بررسی شده است.
نکته 6: تابع vlookup فقط می تواند رو به جلو جستجو کند. به همین دلیل است که همواره ستون معلوم ها را در ابتدای یک لیست می نویسیم. (برای یافتن مقادیر پشت سر مقدار معلوم باید از ترکیب دو تابع index و match استفاده کنیم که در یک مقاله دیگر باید به آن پرداخت).
نکته 7: اگر اطلاعات شما در شیت دیگری بود مثلا شیتی به نام DATA، فرمول اینگونه خواهد شد:
=VLOOKUP(2000 , DATA!B:F , 2 , 0)
برای ارجاع به یک فایل دیگر هم، می توانید با موس محدوده دادههای آن فایل را انتخاب کنید و فرمول شما چیزی شبیه زیر می شود. (دادهها در فایل به نامه MyFile در شیتی به نام Data هستند):
=VLOOKUP(2000 , [MyFile]DATA!B:F , 2 , 0)
نکته 8: اگر VLOOKUP مقدار یا نیابد به شما خطای N/A# میدهد. معمولا ما همواره در اکسل خطاها را مدیریت میکنیم و به جای خطا، یک چیز دیگری مثلا عدد 0 را میگذاریم. برای اینکار از تابع IFERROR مانند نمونه زیر استفاده میکنیم:
=IFERROR( VLOOKUP(2000 , DATA!B:F , 2 , 0) , 0)
نکته 9: همواره VLOOKUP اولین مقدار را مییابد. برای یافتن مقادیر تکراری میتوانید از تکنیکی که در کانال تلگرام فرساران به آدرس https://t.me/farsaran/36 آموزش داده شده است، استفاده کنید.
نکته 10: بدیهی است که "فرشید میدانی" با "افشین میدانی" یکی نیست، اما شبیه هم هستند. برای یافتن مقادیر مشابه میتوانید از افزونه Fuzzy Lookup که مایکروسافت آن را ارائه داده است استفاده کنید.
نویسنده: فرشید میدانی | فرساران
شما هم تجربه یا دیدگاه خود را بنویسید:
چقدر توضیحات خوبی دادید.واقعا سپاسگزارم.فقط بهترین معلم ها اینجوری یک موضوع رو شرح و بسط میدن
سلام
ستونی هم میشه جستجو کرد؟ مثلا بگه مقدار پایینش چقدره؟
با سلام / بله تابع HLOOKUP دقیقا اینکار را میکند.
با سلام و عرض ادب و احترام خدمت شما جناب فرشید میدانی بزرگوار
الحق و الانصاف ندیدم کسی با متن بتونه به این شیوایی حق مطلب ادا کنه . ممنون که انقدر دقیق و نکات کامل و دلسوزانه اموزش دادید . درود بر شما و شرفتون . ارزوی توفیق ☘️.
با سلام
یه مشکل در استفاده از VLOOKUP دارم اگه راه حلی داره ممنون میشم کمکم کنین.
امکان داره در پارامتر دوم VLOOKUP نام شیت رو از محتویات یک سلول بگیره .
مثال : یک شیت با نام 4322 و در شیت دیگه عدد 4322 داخل سلول B2 درج شده
با چه روشی میتونم محتویات سلول B2 رو به عنوان نام شیت در VLOOKUP استفاده کنم ؟
سلام/ بله اینکار شدنی است و با تابع INDIRECT انجام میشود. مثلا فرض کنید که نام شیت در سلول A1 درج شده است:
اما این نشانه جدی است از اینکه فایل شما اشتباه طراحی شده است و باید آن فایل مجدد طراحی شود و یا اینکه ابتدا با پاورکوئری دادهها در یک جا تجمیع شوند.
با این آموزش ، مشکل بزرگی برام حل شد . واقعا سپاسگزارم
سلام و ارادت . بنده یک سوال دارم و اونم این هست که در تابع vlookup میتونیم از دو شرط استفاده کنیم .مثلا دیتا بیسی که داریم تشکیل شده از چند ستون که ستون اول تاریخ ، ستون دوم نام فرد و ستون سوم وضعیت حضور ( حضور و غیاب ) در سازمان . میخوام بدون در تابع مذکور میشه تعریف کرد که اگر تاریخ مثلا 1402.02.02 بود و اسم طرف حسن بود برو و ستون سوم رو بهمون بگو
این کار ساده است کافی است که همه این مقادیر را به هم بچسبانید و سپس به دنبال چسبیده شده این مقادیر بگردید. برای چسباندن متنها در اکسل از عملگر & استفاده میشود.
البته در PowerQuery این کار میسر است یعنی میتوانیم بدون چسباندن، چندین فصل مشترک برای Join را انتخاب کنیم.
بابت آموزش گویا و ارزشمند شما سپاسگزارم
سپاس، عالی بود
باسلام و عرض احترام . نحوه آموزش خیلی آسان و جامع بود . خیلی متشکرم
فوق العاده... عالي بود
ممنونم
فوق العاده بود. ممنون از زحمات شما.
بابت آموزش ارائه شده ممنون
جهت دريافت آموزشهاي بيشتر در اين خصوص روش چيست
با سپاس از شما بابت آموزش مفیدی که ارائه کردید. فقط داخل متن در تابع از ویرگول استفاده شده که باید از نقطه ویرگول استفاده شود. دوستانی که جواب نگرفته اند شاید مشکل شان در همین موضوع باشد.
سلام و عرض خسته نباشید و با تشکر معلم عزیز لطفا علامت تعجب (فاکتوریلی) که در فرمول نوشتید برای کلیدش کدومه ضمنا اگر مقدور باشه نحوه اینکه دو تا لیست را هم به هم ربط دهم بفرمایید با تشکر ممنون
سلام متاسفانه فایل دانلود شده فاقد هیچ اطلاعاتی نیست امیدوارم که فایل مزبورسرکاری نباشد باتشکر
سلام ، خیلی خوب و عالی توضیح دادید . خدا بهتون سلامتی بده
سلام استاد
هم عالی توضیح دادین هم این قسمت سوال و جواب که بجای ما پاسخ دادین خلاقانه بود، دمت گرم
مقاله ای در مورد index , match و تابع جدید و پیشرفته Xlookup دارین که لینکش رو بیزحمت بزارین؟
یه سوال دیگه اینکه آموزش کامل اکسل یا اکسس که خودتون تدریس کرده باشین دارین؟ ویدیوئی یا مقاله؟
اگر كل وي لوكاپ اين باشه كه عالي توضيح دادين
حتما مقاله «محاسبه حقوق» را که توضیح 0 آخر VLOOKUP را مطالعه کنید و سپس باید INDEX , MATCH را برای حل سناریوهایی خاص هم بدانید.
سلام خسته نباشید. من یک فایل با حدود ۵۰۰ نیرو دارم و میخوام در قسمت آدرس منزل کاری کنم که سرچ بکنه و نزدیکترین شعبه های اطراف محل زندگیشون رو به هر کسی پیشنهاد بده تا بتونیم برای تقسیم بندی افراد بهترین شعبه رو در نظر بگیریم. ممنون میشم اگر کمکم کنید خدا اجرتون بده.
سلام / این کار کلا با نقشه های گوگل و ... باید انجام بشه / تقریبا شبیه کاری که اسنپ و ... می کنن . اما فعلا در حوزه اکسل می تونید منطقه شهرداری اون فرد رو بزنید و از روی منطقه شهرداری ، شعب رو پیشنهاد کنید. مثلا کسی که منطقه ۲ تهران زندگی می کنه . منطقه ۱ و ۱۰ و ۹ نزدیکشه.
سلام
من یک لیست از نمرات بچه ها را در قالب یک شیت دارم.مثلا در تاریخ های مختلف نمرات مختلفی کسب کرده اند.
که در هر ردیف از این شیت نمرات مختلف یک دانش آموز وجود دارد.
حالا می خواهم هر دانش آموز بتواند فقط به ردیف نمرات خودش دسترسی داشته باشد و ببیند.
و سطرهای دیگر که مربوط به نمرات بقیه بچه ها هست رانبیند
من ادرس جی میل بچه ها و کد ملی انها را گرفتم.حالا میخواهم بدانم
آیا چنین امکانی وجود دارد؟
این کار با mail merge قابل انجام است و ۲ ویدئوی کامل آموزش میل مرج در همین سایت وجود دارد:
کاملا کاربردی
سلام و خدا قوت
بسیار عالی بود
من قصد دارم کلمه عبور برنامه پادا هنرجویان هنرستان را با vlookup برایشان ارسال کنم به طوری که کد ملی خودش را میزنه کلمه عبورش را نمایش بده ولی بقیه اطلاعات دیتا بیس اکسل را نمایش نده ممنون میشم راهنمایی بفرمایید
این کار کاملا اشتباه است و اگر کسی فایل رو داشته باشه بالاخره می تونه با سعی و خطا و ... همه داده ها را بکشه بیرون در ضمن اینکه متاسفانه قفل های شیت های اکسل هم قابل باز کردن (شکستنه) .
این کارها در حوزه اکسل نیست و باید به سراغ راهکارهای و نرم افزارهای سطح بالاتری بروید.
سلام و خسته نباشید
نحوه اموزش خیلی عالی و روان و قابل فهم بود
سپاسگزارم
ممنون از پست جامعتون تمام سوالاتم رو جواب داد
با سلام و خسته نباشید و ممنون از زحماتتون.من سه جدول شیت دارم،اولی هزینه روزانه مثلا هزینه کرایه-خرید-غذا و غیره.دومی یک جدول مربوط به افرادی که از آنهاخرید می شود و مبلغ فاکتور هر یک از آنها در آن جدول وارد می شود. جدول سوم معین هزینه هاست که هر هزینه روزانه در این جدول در سرفصل خود وارد و جمع می شود...حال من می خواهم در جدول هزینه روزانه در دو ستونی که دارم برای معین و فروشنده،با وارد کردن شماره کد خاص مثلا ردیف و ستون شیت فروشندگان،مبلغ ستون هزینه به شیت فروشنده منتقل و جمع شود.برای معین نیز همین گونه.لطفا بفرمایید از چه فرمولی باید استفاده کنم
با سلام واقعا عالی و جامع توضیح داده شده است بی نهایت سپاسگزارم اولین بار بود که آموزش به این جامعی می دیدم
عالیییییییی عالیییییییییییی عالیییییییییییییی
اگه بخواهیم در جدول جمع فوق نمره سه ترم را داشته باشیم داشته باشیم و جمع و میانگین بخواهیم از چه راهی میشه رفت؟
خییلی خییلی ممنونم از توضیحات دقیق و روانتون. خیلی مفید کامل بود
از اینکه اینقد دقیق و با جزئیات توضیح دادین قصد تون چیه؟؟؟
امیدوارم همه امورتون با گشایش و برکت همراه باشه.
ممنون از کمک خالصانه تون
سوال درستی پرسیدید.
من سعی کردم که بهترین چیزی که در توانم هست را در اینجا ارائه دهیم و قصدم این است که کیفیت محتوای اکسل را بهبود ببخشم.
(بعد از این مقاله دیگر هیچ کسی در ایران نمیتواند چیزی کمتر و با کیفیت نازل تری از این که هست را ارائه دهد و حتما باید یک گام پیشتر رود.)
چقدر عالی واقعا کاش همه اینقدر در تدریس توانمند بودند
خیلی عالی ممنون
با سلام عالی بود مرسی.
سلام وقت بخیر
اگر بخواهیم مقادیر(غیر تکراری) نظیر یک سلول(تکراری) رو در سلولی که فرمول می نویسیم کنار هم داشته باشیم، با توجه به این که بصورت معمول vlookup فقط مقدار یک سلول رو برمیگردونه، آیا میتوانیم از تابع vlookup استفاده کنیم؟ اگر تابع vlookup نمیتونه این کار رو کنه در کل چه راه حلی رو پیشنهاد میدید؟
ممنون از سایت خوبتون.
سلام خوبین ؟
اگر سوال ما این باشد که یک جدول داریم که نوع سکه )رب سکه ، تمام ،نیم( را داریم و در ستون جلویی اش قیمت هایشان را داریم، میخواهیم وقتی در سلولی از اکسل ، نوع سکه را وارد کردیم ،در سلول پایین قیمت سکه وارد شود چه باید کنیم؟
اینهمه توضیح دادم. بازهم می پرسید باید چه کار کنم.
دقیقا سوال من هم همینه
اینرو هیچ کجا توضیح ندادین
با سلام و سپاس
در فرمول vlookup یه مقدار رو در جدول دیگه جستجو کردیم و مقدار مرتبط با اون رو از جدول فراخوان کردیم ولی چنانچه بخواهیم بجای مقدار سلول رو بذاریم که خودش مقدار داخل سلول رو تشخیص بده چکار باید بکنیم مثلا بجای اینکه "bahar" رو در فرمول وارد کنیم c5 رو وارد کنیم .
بدیهی است که در هر فرمول و تابع اکسل می توانید به سلولها ارجاع بدهید. لطفا ویدئوهای دوره آموزش کاربردی اکسل را در همین سایت ببینید.
بسیار عااااااالللللللیی
عالی بود سپاسگزارم