فهرست مطالب
این آموزش توضیح میدهد که چگونه Excel VLOOKUP را حساس به حروف کوچک و بزرگ کنیم، چند فرمول دیگر را نشان میدهد که حروف متن را متمایز میکند، و به نقاط قوت و محدودیتهای هر تابع اشاره میکند.
من حدس میزنم هر کدام کاربر اکسل می داند که چه عملکردی جستجوی عمودی را در اکسل انجام می دهد. درست است، این VLOOKUP است. با این حال، تعداد بسیار کمی از مردم می دانند که VLOOKUP اکسل به حروف بزرگ و کوچک حساس نیست، به این معنی که حروف کوچک و بزرگ را به عنوان کاراکترهای مشابه در نظر می گیرد.
در اینجا یک مثال سریع وجود دارد که ناتوانی VLOOKUP را در تشخیص حروف متن نشان می دهد. فرض کنید در سلول A2 "بیل" و در A4 "بیل" دارید. فرمول زیر "قبض" را می گیرد زیرا در آرایه جستجو ابتدا می آید و یک مقدار منطبق را از B2 برمی گرداند.
=VLOOKUP("Bill", A2:B4, 2, FALSE)
در ادامه این مطلب در مقاله، من راهی به شما نشان خواهم داد که VLOOKUP را به حروف کوچک و بزرگ حساس کنید. ما همچنین چند توابع دیگر را بررسی خواهیم کرد که می توانند مطابقت حساس به حروف کوچک و بزرگ را در اکسل انجام دهند.
فرمول VLOOKUP حساس به حروف کوچک
همانطور که در بالا ذکر شد، یک فرمول معمولی VLOOKUP مورد نامه را نمی شناسد. با این حال، راهی برای حساس کردن Excel VLOOKUP به حروف بزرگ و کوچک وجود دارد، همانطور که در مثال زیر نشان داده شده است.
فرض کنید شناسه آیتم را در ستون A دارید و می خواهید قیمت مورد و نظر آن را مشخص کنید. از ستون های B و C. مشکل این است که شناسه ها شامل نویسه های کوچک و بزرگ هستند. برای مثال، مقادیر A4 (001Tvci3u) و A5 (001Tvci3U) فقط درآخرین کاراکتر، "u" و "U"، به ترتیب.
هنگام جستجوی "001Tvci3 U "، یک فرمول استاندارد VLOOKUP 90 دلار خروجی می دهد که با "001Tvci3 u مرتبط است. " زیرا قبل از "001Tvci3 U " در آرایه جستجو آمده است. اما این چیزی نیست که شما می خواهید، درست است؟
=VLOOKUP(F2, A2:C7, 2, FALSE)
برای انجام جستجوی حساس به حروف بزرگ و کوچک در اکسل، ما VLOOKUP، CHOOSE و EXACT را ترکیب می کنیم. توابع:
VLOOKUP(TRUE, CHOOSE({1,2}, EXACT( lookup_value, lookup_array), return_array), 2, 0)این فرمول عمومی در همه شرایط کاملاً کار می کند. حتی می توانید از راست به چپ را جستجو کنید، کاری که فرمول VLOOKUP معمولی قادر به انجام آن نیست. تشکر از پوریا برای پیشنهاد این راه حل ساده و زیبا!
در مورد ما، فرمول های واقعی به شرح زیر است.
برای بالا بردن قیمت در F3:
=VLOOKUP(TRUE, CHOOSE({1,2}, EXACT(F2, A2:A7), B2:B7), 2, FALSE)
برای واکشی نظر F4:
=VLOOKUP(TRUE, CHOOSE({1,2}, EXACT(F2, A2:A7), C2:C7), 2, FALSE)
توجه داشته باشید. در تمام نسخه های اکسل به غیر از اکسل 365، این فقط به عنوان یک فرمول آرایه کار می کند، بنابراین به خاطر داشته باشید که Ctrl + Shift + Enter را فشار دهید تا آن را به درستی تکمیل کنید. در اکسل 365 به دلیل پشتیبانی از آرایه های پویا، به عنوان یک فرمول معمولی نیز کار می کند.
این فرمول چگونه کار می کند:
بخش اصلی که کار را انجام می دهد فرمول CHOOSE با تودرتو EXACT است:
CHOOSE({1,2}, EXACT(F2, A2:A7), C2:C7)
اینجا، تابع EXACT مقدار F2 را با هر مقدار در A2:A7 مقایسه می کند و اگر دقیقاً یکسان باشد از جمله حروف کوچک، TRUE را برمی گرداند.FALSE در غیر این صورت:
{FALSE;FALSE;FALSE;TRUE;FALSE;FALSE}
برای آرگومان index_num CHOOSE، از ثابت آرایه {1,2} استفاده می کنیم. در نتیجه، تابع مقادیر منطقی آرایه بالا و مقادیر C2:C7 را در یک آرایه دو بعدی مانند این ترکیب می کند:
{FALSE,155;FALSE,186;FALSE,90;TRUE,54;FALSE,159;FALSE,28}
تابع VLOOKUP آن را از آنجا می گیرد. و مقدار جستجو (که درست است) را در ستون 1 آرایه 2 بعدی (که با مقادیر منطقی نشان داده شده است) جستجو می کند و یک مطابقت از ستون 2 برمی گرداند که قیمت مورد نظر ما است:
VLOOKUP(TRUE, {FALSE,155;FALSE,186;FALSE,90;TRUE,54;FALSE,159;FALSE,28}, 2, 0)
فرمول XLOOKUP حساس به حروف کوچک و کوچک
مشترکین Microsoft 365 می توانند حتی با فرمول ساده تر، جستجوی حساس به حروف کوچک و بزرگ را در اکسل انجام دهند. همانطور که می توانید حدس بزنید، من در مورد یک جانشین قدرتمندتر VLOOKUP صحبت می کنم - تابع XLOOKUP.
از آنجایی که XLOOKUP روی آرایه های جستجو و برگردان جداگانه عمل می کند، ما به ترفند آرایه دو بعدی قبلی نیاز نداریم. مثال. به سادگی، از EXACT برای آرگومان lookup_array استفاده کنید:
XLOOKUP(TRUE, EXACT( lookup_value , lookup_array ), return_array , " یافت نشد")آخرین آرگومان ("یافت نشد") اختیاری است. فقط مشخص می کند که اگر مطابقت پیدا نشد چه مقداری را برگرداند. اگر آن را حذف کنید، در صورتی که فرمول چیزی پیدا نکند، یک خطای استاندارد #N/A برگردانده میشود.
برای جدول نمونه ما، اینها فرمولهای XLOOKUP حساس به حروف بزرگ و کوچک هستند که باید استفاده کنیم.
برای دریافت قیمت در F3:
=XLOOKUP(TRUE, EXACT(F2, A2:A7), B2:B7, "Not found")
برای استخراجنظر F4:
=XLOOKUP(TRUE, EXACT(F2, A2:A7), C2:C7, "Not found")
این فرمول چگونه کار می کند:
مانند مثال قبلی، EXACT برمی گرداند آرایه ای از مقادیر TRUE و FALSE، که در آن TRUE مطابقت های حساس به حروف بزرگ را نشان می دهد. XLOOKUP آرایه بالا را برای مقدار TRUE جستجو می کند و مطابقت را از return_array برمی گرداند. لطفاً توجه داشته باشید، اگر دو یا چند مقدار دقیقاً یکسان در ستون جستجو وجود داشته باشد (از جمله حروف بزرگ)، فرمول اولین مطابق پیدا شده را برمی گرداند.
محدودیت XLOOKUP : فقط موجود است. در اکسل 365 و اکسل 2021.
SUMPRODUCT - جستجوی حساس به حروف بزرگ برای برگرداندن اعداد منطبق
همانطور که از عنوان متوجه شدید، SUMPRODUCT یکی دیگر از تابع های اکسل است که می تواند جستجوی حساس به حروف کوچک و بزرگ را انجام دهد. ، اما فقط می تواند مقادیر عددی را برگرداند. اگر این مورد شما نیست، به مثال INDEX MATCH بروید که راه حلی برای همه انواع داده ارائه می دهد.
همانطور که احتمالاً می دانید، SUMPRODUCT اکسل مؤلفه ها را در آرایه های مشخص شده ضرب می کند و مجموع محصولات را برمی گرداند. از آنجایی که ما یک جستجوی حساس به حروف بزرگ و کوچک می خواهیم، از تابع EXACT برای به دست آوردن اولین آرایه استفاده می کنیم:
=SUMPRODUCT((EXACT(A2:A7,F2) * (B2:B7)))
متأسفانه، تابع SUMPRODUCT نمی تواند مطابق متن را برگرداند زیرا مقادیر متن را نمی توان ضرب کرد. در این صورت یک #VALUE دریافت خواهید کرد! خطا مانند سلول F4 در تصویر زیر:
این فرمول چگونه کار می کند:
مانند مثال VLOOKUP، EXACT بررسی عملکردمقدار F2 را در برابر تمام مقادیر A2:A7 برمی گرداند و برای مطابقت های حساس به حروف، TRUE، FALSE در غیر این صورت:
SUMPRODUCT(({FALSE;FALSE;FALSE;TRUE;FALSE;FALSE}*{155;186;90;54;159;28}))
در اکثر فرمول ها، Excel TRUE را به 1 و FALSE را به 0 ارزیابی می کند. بنابراین، وقتی SUMPRODUCT عناصر دو آرایه را در موقعیتهای یکسان ضرب میکند، همه غیر منطبقها (FALSE) به صفر تبدیل میشوند:
SUMPRODUCT({0;0;0;54;0;0})
در نتیجه، فرمول عددی را از ستون B که با تطابق دقیق حساس به حروف بزرگ در ستون A مطابقت دارد.
محدودیت SUMPRODUCT : فقط می تواند مقادیر عددی را برگرداند.
MATCH INDEX - جستجوی حساس به حروف بزرگ برای همه انواع دادهها
در نهایت، ما به یک فرمول جستجوی حساس به حروف بدون محدودیت نزدیک شدهایم که در تمام نسخههای اکسل و در همه مجموعههای داده کار میکند.
این مثال نه تنها به این دلیل است که آخر است. بهترین برای آخرین بار ذخیره می شود، اما همچنین به این دلیل که دانشی که در مثال های قبلی به دست آورده اید ممکن است به شما در درک بهتر فرمول MATCH INDEX حساس به حروف کوچک و بزرگ کمک کند.
ترکیب توابع INDEX و MATCH اغلب استفاده می شود. در سابق cel به عنوان یک جایگزین انعطاف پذیرتر و همه کاره تر برای VLOOKUP. مقاله زیر کار خوبی انجام می دهد (امیدوارم :) توضیح می دهد که چگونه این دو تابع با هم کار می کنند - استفاده از INDEX MATCH به جای VLOOKUP.
در اینجا، من فقط نکات کلیدی را به شما یادآوری می کنم:
- تابع MATCH مقدار جستجو را در آرایه جستجوی مشخص شده جستجو می کند و موقعیت نسبی آن را برمی گرداند.
- نسبیموقعیت مقدار جستجو مستقیماً به آرگومان row_num تابع INDEX می رود و به آن دستور می دهد مقداری را از آن ردیف برگرداند.
برای اینکه فرمول بتواند حروف متن را تشخیص دهد، فقط کافی است باید یک تابع دیگر به ترکیب کلاسیک INDEX MATCH اضافه کنید. بدیهی است که شما دوباره به تابع EXACT نیاز دارید:
INDEX( return_array , MATCH(TRUE, EXACT( lookup_value , lookup_array ), 0))فرمول واقعی در F3 این است:
=INDEX(B2:B7, MATCH(TRUE, EXACT(A2:A7, F2), 0))
در F4، ما از این یکی استفاده می کنیم:
=INDEX(C2:C7, MATCH(TRUE, EXACT(A2:A7, F2), 0))
لطفاً به یاد داشته باشید که فقط به عنوان کار می کند یک فرمول آرایه در همه نسخههای غیر از اکسل 365، بنابراین حتما با فشار دادن کلیدهای Ctrl + Shift + Enter با هم وارد آن شوید. اگر به درستی انجام شود، فرمول مانند شکل زیر در بریس های مجعد محصور می شود:
این فرمول چگونه کار می کند:
مانند تمام مثالهای قبلی، EXACT برای هر مقدار در A2:A7 که دقیقاً با مقدار F2 مطابقت دارد، TRUE را برمیگرداند. از آنجایی که ما از TRUE برای lookup_value MATCH استفاده می کنیم، موقعیت نسبی مطابقت دقیق حساس به حروف بزرگ را برمی گرداند، که دقیقا همان چیزی است که INDEX برای برگرداندن یک مطابقت از B2:B7 به آن نیاز دارد.
فرمول جستجوی پیشرفته حساس به حروف کوچک
فرمول INDEX MATCH فوق العاده عالی به نظر می رسد، درست است؟ اما در واقع اینطور نیست. اجازه دهید دلیل آن را به شما نشان دهم.
فرض کنید یک سلول در ستون بازگشتی مربوط به مقدار جستجو خالی است. فرمول چه چیزی را برمی گرداند؟ هیچ چی.و اکنون، بیایید ببینیم در واقع چه چیزی را برمی گرداند:
=INDEX(C2:C7, MATCH(TRUE, EXACT(A2:A7, F2), 0))
اوه، فرمول صفر را برمی گرداند! شاید، وقتی صرفاً با مقادیر متن سروکار دارید، واقعاً مهم نباشد. با این حال، اگر کاربرگ شما حاوی اعداد است و برخی از آنها صفر واقعی هستند، این یک مشکل است.
در حقیقت، همه فرمول های جستجوی دیگر که قبلاً مورد بحث قرار گرفت، به همین ترتیب عمل می کنند. اما اکنون شما یک فرمول بی عیب و نقص می خواهید، اینطور نیست؟
برای اینکه فرمول INDEX MATCH حساس به حروف بزرگ و کوچک کاملاً بی نقص باشد، آن را در تابع IF قرار می دهید که بررسی می کند آیا یک سلول برگشتی خالی است یا نه این حالت:
=IF(INDIRECT("C"&(1+MATCH(TRUE,EXACT(A2:A7, F2), 0)))"", INDEX(C2:C7, MATCH(TRUE, EXACT(A2:A7, F2), 0)), "")
در فرمول بالا:
- "C" ستون برگشتی است.
- "1" عدد است. که یک موقعیت نسبی سلول برگردانده شده توسط تابع MATCH را به آدرس سلول واقعی تبدیل می کند.
به عنوان مثال، آرایه جستجو در تابع MATCH ما A2:A7 است، به این معنی که موقعیت نسبی سلول A2 "1" است، زیرا این اولین خانه در آرایه است. اما در واقعیت، آرایه جستجو از ردیف 2 شروع می شود. برای جبران تفاوت، ما 1 را اضافه می کنیم، بنابراین تابع INDIRECT مقداری را از سلول سمت راست برمی گرداند.
تصاویر زیر بهبود INDEX حساس به حروف بزرگ را نشان می دهد. فرمول MATCH در عمل.
اگر سلول برگشتی خالی باشد، فرمول هیچ خروجی نمی دهد (رشته خالی):
اگر سلول برگشتی حاوی صفر باشد ، فرمول 0 را برمی گرداند:
اگر ترجیح می دهیدهنگامی که یک سلول برگشتی خالی است، پیامی را نمایش دهید، یک رشته خالی ("") را در آخرین آرگومان IF با مقداری متن جایگزین کنید:
=IF(INDIRECT("C"&(1+MATCH(TRUE, EXACT(A2:A7, F2), 0)))"", INDEX(C2:C7, MATCH(TRUE, EXACT(A2:A7, F2), 0)), "There is nothing to return, sorry.")
VLOOKUP حساس به حروف بزرگ را به روشی آسان انجام دهید
کاربران مجموعه Ultimate ما برای اکسل ابزار خاصی دارند که جستجوی جداول بزرگ و پیچیده را آسان تر و بدون استرس می کند. بهترین چیز این است که Merge Two Tables یک گزینه حساس به حروف بزرگ دارد و مثال زیر آن را در عمل نشان می دهد.
فرض کنید می خواهید Qty را بکشید. از جدول Lookup به جدول Main بر اساس شناسه های منحصر به فرد مورد:
کاری که شما انجام می دهید اجرای Merge Tables است. ویزارد و این مراحل را انجام دهید:
- جدول اصلی را انتخاب کنید که داده های جدید را در آن جمع آوری کنید.
- جدول جستجو را انتخاب کنید که در آن داده های جدید را جستجو کنید.
- یک یا چند ستون کلیدی را انتخاب کنید (شناسه مورد در مورد ما). و مطمئن شوید که کادر تطابق حساس به حروف کوچک را علامت بزنید.
لحظه ای بعد، نتیجه دلخواه را خواهید گرفت :)
به این صورت است که با در نظر گرفتن حروف متن در اکسل جستجو کنید. از خواندن شما سپاسگزارم و امیدوارم هفته آینده شما را در وبلاگ خود ببینیم!
کتاب کار را برای دانلود تمرین کنید
مثالهای VLOOKUP حساس به حروف بزرگ (فایل xlsx)