VLOOKUP پیشرفته در اکسل: چندگانه، دوتایی، تودرتو

  • این را به اشتراک بگذارید
Michael Brown

این مثال‌ها به شما آموزش می‌دهند که چگونه چندین معیار را Vlookup کنید، یک نمونه خاص یا همه موارد مشابه را برگردانید، Vlookup پویا را در چندین برگه و موارد دیگر انجام دهید.

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

قبل از حرکت بیشتر، اجازه دهید به طور خلاصه این نحو را به شما یادآوری کنم:

VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup] )

اکنون که همه در یک صفحه هستند، بیایید نگاهی دقیق تر به نمونه های فرمول پیشرفته VLOOKUP بیندازیم:

    چگونه چندین معیار Vlookup کنیم

    اکسل عملکرد VLOOKUP برای جستجوی یک مقدار خاص در یک پایگاه داده واقعا مفید است. با این حال، فاقد یک ویژگی مهم است - نحو آن فقط یک مقدار جستجو را امکان پذیر می کند. اما اگر بخواهید با چند شرط به دنبال آن باشید چه؟ چند راه حل مختلف برای انتخاب شما وجود دارد.

    فرمول 1. VLOOKUP با دو معیار

    فرض کنید فهرستی از سفارشات دارید و می خواهید مقدار را بر اساس 2 معیار پیدا کنید، نام مشتری و محصول . یک عامل پیچیده این است که هر مشتری چندین محصول را سفارش داده است، همانطور که در جدول زیر نشان داده شده است:

    یک فرمول معمول VLOOKUP در این شرایط کار نمی کند زیرا اولین محصول یافت شده را برمی گرداند. مطابقت بر اساس الفمناطق:

    مانند مثال قبلی، با تعریف چند نام شروع می کنیم:

    • محدوده A2:B5 در برگه CA نامگذاری شده است CA_Sales .
    • محدوده A2:B5 در برگه FL نامگذاری شده است FL_Sales .
    • محدوده A2:B5 در برگه KS نامگذاری شده است KS_Sales .

    همانطور که می بینید، همه محدوده های نام برده دارای یک بخش مشترک ( فروش ) و قطعات منحصر به فرد ( CA ، FL هستند. ، KS ). لطفاً مطمئن شوید که محدوده‌های خود را به روشی مشابه نام‌گذاری کنید، زیرا برای فرمولی که می‌خواهیم بسازیم ضروری است.

    فرمول 1. VLOOKUP غیر مستقیم برای کشیدن پویا داده‌ها از برگه‌های مختلف

    اگر وظیفه شماست برای بازیابی داده ها از چندین برگه، فرمول VLOOKUP INDIRECT بهترین راه حل است - فشرده و قابل درک است.

    برای این مثال، جدول خلاصه را به این ترتیب سازماندهی می کنیم:

    • محصولات مورد علاقه را در A2 و A3 وارد کنید. این مقادیر جستجوی ما هستند.
    • قطعات منحصر به فرد محدوده های نامگذاری شده را در B1، C1 و D1 وارد کنید.

    و اکنون، سلول حاوی بخش منحصر به فرد (B1) را به هم متصل می کنیم. با قسمت مشترک ("_Sales")، و رشته حاصل را به INDIRECT تغذیه کنید:

    INDIRECT(B$1&"_Sales")

    عملکرد INDIRECT رشته را به نامی تبدیل می کند که اکسل بتواند آن را بفهمد، و شما آن را در آن قرار می دهید. آرگومان table_array VLOOKUP:

    =VLOOKUP($A2, INDIRECT(B$1&"_Sales"), 2, FALSE)

    فرمول بالا به B2 می رود و سپس آن را پایین و به سمت راست کپی می کنید.

    لطفاً توجه داشته باشید که در مقدار جستجو ($A2)ما مختصات ستون را با مرجع مطلق سلول قفل کرده ایم تا وقتی فرمول در سمت راست کپی می شود، ستون ثابت بماند. در مرجع B$1، ما ردیف را قفل کردیم زیرا می‌خواهیم مختصات ستون تغییر کند و بسته به ستونی که فرمول در آن کپی شده است، یک قسمت نام مناسب را به INDIRECT ارائه کند:

    اگر جدول اصلی شما به طور متفاوتی سازماندهی شده است، مقادیر جستجو در یک ردیف و قسمت های منحصر به فرد نام محدوده در یک ستون، باید مختصات ردیف را در مقدار جستجو (B$1) و مختصات ستون را در قسمت های نام قفل کنید. ($A2):

    =VLOOKUP(B$1, INDIRECT($A2&"_Sales"), 2, FALSE)

    فرمول 2. VLOOKUP و IF های تودرتو برای جستجوی چندین صفحه

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

    =VLOOKUP($A2, IF(B$1="CA", CA_Sales, IF(B$1="FL", FL_Sales, IF(B$1="KS", KS_Sales,""))), 2, FALSE)

    Where $A2 مقدار جستجو (نام مورد) و B$1 مقدار کلید (وضعیت) است:

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

    برای فرمول بیشتر exa لطفاً به نحوه VLOOKUP در چندین صفحه در اکسل مراجعه کنید.

    این نحوه استفاده از VLOOKUP در اکسل است. از خواندن شما سپاسگزارم و امیدوارم هفته آینده شما را در وبلاگ خود ببینم!

    کتاب کار را برای دانلود تمرین کنید

    نمونه های فرمول VLOOKUP پیشرفته (xlsx.فایل)

    مقدار جستجوی تکی که شما مشخص می‌کنید.

    برای غلبه بر این موضوع، می‌توانید یک ستون کمکی اضافه کنید و مقادیر دو ستون جستجو ( مشتری و محصول ) را در آنجا به هم متصل کنید. مهم است که ستون کمکی باید سمت چپ ترین ستون در آرایه جدول باشد زیرا جایی است که Excel VLOOKUP همیشه مقدار جستجو را جستجو می کند.

    بنابراین، یک ستون در سمت چپ خود اضافه کنید. جدول و فرمول زیر را در آن ستون کپی کنید. این ستون کمکی را با مقادیر ستون‌های B و C پر می‌کند (کاراکتر فاصله برای خوانایی بهتر در بین آنها قرار می‌گیرد):

    =B2&" "&C2

    و سپس، از فرمول استاندارد VLOOKUP و مکان استفاده کنید. هر دو معیار در آرگومان lookup_value ، با فاصله از هم جدا شده اند:

    =VLOOKUP("Jeremy Sweets", A2:D11, 4, FALSE)

    یا، معیارها را در سلول های جداگانه (در مورد ما G1 و G2) وارد کرده و آنها را به هم متصل کنید. سلول ها:

    =VLOOKUP(G1&" "&G2, A2:D11, 4, FALSE)

    از آنجایی که می خواهیم مقداری را از ستون D که چهارمین آرایه جدول است برگردانیم، برای col_index_num از عدد 4 استفاده می کنیم. آرگومان range_lookup روی FALSE تنظیم شده است تا مطابقت دقیق Vlookup. تصویر زیر نتیجه را نشان می دهد:

    در صورتی که جدول جستجوی شما در برگی دیگر است، نام برگه را در فرمول VLOOKUP خود وارد کنید. به عنوان مثال:

    =VLOOKUP(G1&" "&G2, Orders!A2:D11, 4, FALSE)

    به طور متناوب، یک محدوده با نام برای جدول جستجو ایجاد کنید (مثلاً Orders ) تا فرمول خواناتر شود:

    =VLOOKUP(G1&" "&G2, Orders, 4, FALSE)

    برای اطلاعات بیشتر، لطفاً نحوه انجام را ببینیدVlookup از یک برگه دیگر در Excel.

    توجه داشته باشید. برای اینکه فرمول به درستی کار کند، مقادیر موجود در ستون کمکی باید دقیقاً مانند آرگومان lookup_value به هم متصل شوند. برای مثال، ما از یک کاراکتر فاصله برای جدا کردن معیارها در ستون کمکی (B2&" "&C2) و فرمول VLOOKUP (G1&" "&G2) استفاده کردیم.

    فرمول 2. VLOOKUP اکسل با شرایط متعدد

    در تئوری، شما می توانید از روش فوق برای Vlookup بیش از دو معیار استفاده کنید. با این حال، چند اخطار وجود دارد. اولاً، یک مقدار جستجو به 255 کاراکتر محدود می‌شود، و ثانیاً، طراحی کاربرگ ممکن است اجازه اضافه کردن یک ستون کمکی را ندهد.

    خوشبختانه، مایکروسافت اکسل اغلب بیش از یک راه برای انجام یک کار ارائه می‌دهد. برای Vlookup چندین معیار، می توانید از یک ترکیب INDEX MATCH یا تابع XLOOKUP که اخیراً در Office 365 معرفی شده است استفاده کنید.

    به عنوان مثال، برای جستجو بر اساس 3 مقدار مختلف ( Date , نام مشتری و محصول )، از یکی از فرمول های زیر استفاده کنید:

    =INDEX(D2:D11, MATCH(1, (G1=A2:A11) * (G2=B2:B11) * (G3=C2:C11), 0))

    =XLOOKUP(1, (G1=A2:A11) * (G2=B2:B11) * (G3=C2:C11), D2:D11)

    Where:

    • G1 معیار 1 است (تاریخ)
    • G2 معیار 2 است (نام مشتری)
    • G3 معیار 3 است (محصول)
    • A2:A11 جستجو است محدوده 1 (تاریخ)
    • B2:B11 محدوده جستجوی 2 (نام مشتریان) است
    • C2:C11 محدوده جستجوی 3 (محصولات)
    • D2:D11 بازگشت است محدوده (مقدار)

    توجه. در همه نسخه ها به جز اکسل 365، INDEXMATCH باید به عنوان فرمول آرایه CSE با فشار دادن Ctrl + Shift + Enter وارد شود. در اکسل 365 که از آرایه های پویا پشتیبانی می کند، به عنوان یک فرمول معمولی نیز کار می کند.

    برای توضیح دقیق فرمول ها، لطفاً ببینید:

    • XLOOKUP با چند معیار
    • فرمول INDEX MATCH با معیارهای متعدد

    چگونه از VLOOKUP برای به دست آوردن تطابق دوم، سوم یا نهم استفاده کنید

    همانطور که می دانید، Excel VLOOKUP می تواند تنها یک مقدار تطابق را واکشی کند، به طور دقیق تر، اولین تطابق یافت شده را برمی گرداند. اما اگر چندین منطبق در آرایه جستجوی شما وجود داشته باشد و بخواهید نمونه دوم یا سوم را دریافت کنید، چه؟ کار بسیار پیچیده به نظر می رسد، اما راه حل وجود دارد!

    Formula 1. Vlookup Nth instance

    فرض کنید نام مشتریان را در یک ستون دارید، محصولاتی را که خریداری کرده اند در ستون دیگر، و شما به دنبال آن هستید. برای پیدا کردن دومین یا سومین محصول خریداری شده توسط یک مشتری خاص.

    ساده ترین راه این است که مانند مثال اول یک ستون کمکی در سمت چپ جدول اضافه کنید. اما این بار، آن را با نام‌های مشتری و شماره‌های رخداد مانند " John Doe1 "، " John Doe2 "، و غیره پر می‌کنیم.

    برای دریافت وقوع، از تابع COUNTIF با یک مرجع ترکیبی استفاده کنید (مرجع اول مطلق و دومی نسبی است مانند $B$2:B2). از آنجایی که مرجع نسبی بر اساس موقعیت سلولی که فرمول در آن کپی می شود تغییر می کند، در ردیف 3 به $B$2:B3 تبدیل می شود، در ردیف 4 -$B$2:B4 و غیره.

    به همراه نام مشتری (B2)، فرمول به این شکل است:

    =B2&COUNTIF($B$2:B2, B2)

    فرمول بالا به A2 می رود. ، و سپس آن را در تعداد سلول های مورد نیاز کپی می کنید.

    پس از آن، نام هدف و شماره رخداد را در سلول های جداگانه (F1 و F2) وارد کنید و از فرمول زیر برای Vlookup یک رخداد خاص استفاده کنید:

    =VLOOKUP(F1&F2, A2:C11, 3, FALSE)

    بدون ستون کمکی انجام دهید. در عوض، آرایه جدول را به صورت پویا با استفاده از تابع INDIRECT همراه با MATCH ایجاد کنید:

    =VLOOKUP(E1, INDIRECT("A"&(MATCH(E1, A2:A11, 0)+2)&":B11"), 2, FALSE)

    Where:

    • E1 مقدار جستجو است
    • A2:A11 محدوده جستجو است
    • B11 آخرین سلول (پایین سمت راست) جدول جستجو است

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

    =VLOOKUP(E1, INDIRECT("A"&(MATCH(E1, A2:A11, 0)+1+ROW(A1))&":B11"), 2, FALSE)

    این فرمول چگونه کار می کند

    در اینجا قسمت کلیدی فرمول است که یک محدوده vlookup پویا ایجاد می کند:

    INDIRECT("A"&(MATCH(E1, A2:A11, 0)+2)&":B11")

    عملکرد MATCH که برای مطابقت دقیق پیکربندی شده است (0 در آخرین آرگومان) نام هدف (E1) را با لیست نام ها (A2:A11) مقایسه می کند و موقعیت اولین مورد پیدا شده را برمی گرداند. مسابقه که 3 استدر مورد ما. این عدد قرار است به عنوان مختصات سطر شروع برای محدوده vlookup استفاده شود، بنابراین ما 2 را به آن اضافه می کنیم (1+ برای حذف اولین نمونه و 1+ برای حذف ردیف 1 با هدر ستون). همچنین، می‌توانید از 1+ROW(A1) برای محاسبه خودکار تنظیمات لازم بر اساس موقعیت ردیف سرصفحه (در مورد ما A1) استفاده کنید.

    در نتیجه، رشته متن زیر را دریافت می‌کنیم که INDIRECT به یک مرجع محدوده تبدیل می‌کند:

    INDIRECT("A"&5&":B11") -> A5:B11

    این محدوده به آرگومان table_array VLOOKUP می‌رود و آن را مجبور می‌کند تا شروع به جستجو در ردیف 5 کند، و اولین نمونه را کنار بگذارد. مقدار جستجو:

    VLOOKUP(E1, A5:B11, 2, FALSE)

    نحوه Vlookup و برگرداندن چندین مقدار در اکسل

    عملکرد Excel VLOOKUP برای برگرداندن تنها یک تطابق طراحی شده است. آیا راهی برای Vlookup چند نمونه وجود دارد؟ بله، وجود دارد، اگرچه آسان نیست. این نیاز به استفاده ترکیبی از چندین تابع مانند INDEX، SMALL و ROW یک فرمول آرایه است.

    به عنوان مثال، موارد زیر می‌توانند تمام رخدادهای مقدار جستجوی F2 را در محدوده جستجو B2:B16 پیدا کنند و چندین مورد را برگردانند. مطابق با ستون C:

    {=IFERROR(INDEX($C$2:$C$11, SMALL(IF($F$1=$B$2:$B$11, ROW($C$2:$C$11)-1,""), ROW()-1)),"")}

    2 راه برای وارد کردن فرمول در کاربرگ شما وجود دارد:

    1. فرمول را در سلول اول تایپ کنید، Ctrl + را فشار دهید Shift + Enter و سپس آن را به چند سلول دیگر بکشید.
    2. چند سلول مجاور را در یک ستون انتخاب کنید (F1:F11 در تصویر زیر)، فرمول را تایپ کنید و Ctrl + را فشار دهید.Shift + Enter برای تکمیل آن.

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

    برای توضیح دقیق منطق فرمول و مثال‌های بیشتر، لطفاً به نحوه VLOOKUP کردن چندین مقدار در اکسل مراجعه کنید.

    نحوه Vlookup در ردیف‌ها و ستون‌ها (جستجوی دوطرفه)

    جستجوی دوطرفه (با نام مستعار جستجوی ماتریسی یا جستجوی دو بعدی ) کلمه‌ای جذاب برای جستجوی یک مقدار در تقاطع یک ردیف و ستون خاص چند راه مختلف برای انجام جستجوی دو بعدی در اکسل وجود دارد، اما از آنجایی که تمرکز این آموزش بر روی تابع VLOOKUP است، طبیعتاً از آن استفاده خواهیم کرد.

    برای این مثال، موارد زیر را در نظر می گیریم. جدول با فروش ماهانه و یک فرمول VLOOKUP برای بازیابی رقم فروش برای یک کالای خاص در یک ماه معین.

    با نام اقلام در A2:A9، نام ماه در B1:F1، مورد هدف در I1 و ماه مورد نظر در I2، فرمول به شرح زیر است:

    =VLOOKUP(I1, A2:F9, MATCH(I2, A1:F1, 0), FALSE)

    این فرمول چگونه کار می کند

    هسته فرمول تابع استاندارد VLOOKUP است که مطابقت دقیق با مقدار جستجو در I1 را جستجو می کند. اما از آنجایی که نمی‌دانیم فروش یک ماه خاص دقیقاً در کدام ستون است، نمی‌توانیم شماره ستون را مستقیماً به آرگومان col_index_num وارد کنیم. برای یافتن آن ستون، از MATCH زیر استفاده می کنیمتابع:

    MATCH(I2, A1:F1, 0)

    به انگلیسی ترجمه شده، فرمول می گوید: مقدار I2 را در A1:F1 جستجو کنید و موقعیت نسبی آن را در آرایه برگردانید. با ارائه 0 به آرگومان سوم، به MATCH دستور می دهید که مقداری را دقیقاً برابر با مقدار جستجو پیدا کند (مثل استفاده از FALSE برای آرگومان range_lookup VLOOKUP).

    از آنجا که Mar در ستون 4 در آرایه جستجو قرار دارد، تابع MATCH عدد 4 را برمی گرداند، که مستقیماً به آرگومان col_index_num VLOOKUP می رود:

    VLOOKUP(I1, A2:F9, 4, FALSE)

    لطفاً توجه داشته باشید که اگرچه نام ماه ها در ستون B شروع می شود، اما ما از A1:I1 برای آرایه جستجو استفاده می کنیم. این کار به این منظور انجام می شود که عدد برگردانده شده توسط MATCH با موقعیت ستون در table_array از VLOOKUP مطابقت داشته باشد.

    برای یادگیری روش های بیشتر برای انجام جستجوی ماتریس در اکسل، لطفاً به INDEX MATCH MATCH مراجعه کنید. و فرمول های دیگر برای جستجوی دو بعدی.

    نحوه انجام چندین Vlookup در اکسل (Vlookup تو در تو)

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

    در تصویر زیر وضعیت را نشان می دهد:

    هدف این است که قیمت ها را بر اساس جدول اصلی کپی کنید شناسه مورد . مشکل این است که جدول حاوی قیمت ها Item ID را ندارد، به این معنی که ما باید دو Vlookup را در یک فرمول انجام دهیم.

    برای راحتی، اجازه دهید چند تا ابتدا محدوده های نامگذاری شده:

    • جدول جستجوی 1 نامگذاری شده است محصولات (D3:E10)
    • جدول جستجوی 2 نامگذاری شده است قیمتها ( G3:H10 )

    جدول ها می توانند در یک کاربرگ یا متفاوت باشند.

    و اکنون، به اصطلاح دوبل Vlookup را انجام خواهیم داد. ، با نام مستعار Vlookup تو در تو .

    ابتدا، یک فرمول VLOOKUP ایجاد کنید تا نام محصول را در جدول جستجوی 1 (با نام محصولات ) بر اساس مورد پیدا کنید. id (A3):

    =VLOOKUP(A3, Products, 2, FALSE)

    بعد، فرمول بالا را در آرگومان lookup_value تابع VLOOKUP دیگر قرار دهید تا قیمت‌ها را از جدول جستجوی 2 (با نام ) استخراج کنید. قیمت‌ها ) بر اساس نام محصول برگردانده شده توسط VLOOKUP تودرتو:

    =VLOOKUP(VLOOKUP(A3, Products, 2, FALSE), Prices, 2, FALSE)

    تصویر صفحه زیر فرمول Vlookup تودرتو را در عمل نشان می‌دهد:

    چگونه چندین برگه را به صورت پویا جمع آوری کنیم

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

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

    مایکل براون یک علاقه‌مند به فناوری است که علاقه زیادی به ساده‌سازی فرآیندهای پیچیده با استفاده از ابزارهای نرم‌افزاری دارد. او با بیش از یک دهه تجربه در صنعت فناوری، مهارت های خود را در Microsoft Excel و Outlook و همچنین Google Sheets و Docs تقویت کرده است. وبلاگ مایکل اختصاص داده شده است تا دانش و تخصص خود را با دیگران به اشتراک بگذارد و نکات و آموزش هایی را برای بهبود بهره وری و کارایی ارائه دهد. چه یک حرفه ای با تجربه باشید و چه مبتدی، وبلاگ مایکل، بینش های ارزشمند و توصیه های عملی را برای استفاده حداکثری از این ابزارهای نرم افزاری ضروری ارائه می دهد.