ایجاد سوال
dark_mode
0 دوستدار 0 امتیاز منفی
16 visibility
موضوع: آفیس توسط:

رابین پرسید آیا راهی برای انجام VLOOKUP وجود دارد که به حروف کوچک و بزرگ حساس باشد؟ جدول/محدوده جستجوی او ورودی هایی دارد که مشابه (AbC و aBC) هستند و تنها تفاوت آنها در مورد حروف است. او نمی تواند مقادیر را تغییر دهد (همه آنها را با حروف بزرگ یا کوچک بسازید) زیرا مقادیر منحصر به فرد حیاتی هستند.

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

=CODE(LEFT(B1,1))&"."&CODE(MID(B1,2,1))&"."&CODE(RIGHT(B1,1))

این فرمول به سه کاراکتر اول هر آنچه در سلول B1 است نگاه می کند و آن کاراکترها را به کدهای کاراکتر اعشاری که با نقطه از هم جدا شده اند تبدیل می کند. بنابراین، اگر A1 حاوی "ABC" باشد، B1 حاوی "65.66.67" خواهد بود. با فرض اینکه مقداری که می خواهید پیدا کنید در سلول C1 است، می توانید از فرمول زیر به عنوان فرمول VLOOKUP استفاده کنید:

=VLOOKUP(CODE(LEFT(C1,1))&"."&CODE(MID(C1,2,1))&"."&
CODE(MID(C1,3,1)), A:B,2,)

روش دیگر استفاده از تابع EXACT برای تعیین مکان چیزی است که به دنبال آن هستید. این رویکرد اصلاً از VLOOKUP استفاده نمی کند. در عوض، با تکیه بر تابع INDEX. فرمول فرض می کند که سلول هایی که می خواهید مقایسه کنید در ستون A هستند و آنچه می خواهید برگردانید سلول مربوطه در ستون B است.

=IF(MIN(IF(EXACT(C1,$A$1:$A$100),ROW($A$1:$A$100)))=0,NA(),
INDEX($B$1:$B$100,MIN(IF(EXACT(C1,$A$1:$A$100),ROW($A$1:$A$100)))))

این فرمول باید به عنوان فرمول آرایه ( Shift+Ctrl+Enter ) وارد شود. بخش اول فرمول (نمونه اول EXACT) C1 (آنچه شما به دنبال آن هستید) را با هر مقدار در محدوده A1:A100 مقایسه می کند. از آنجایی که این یک فرمول آرایه است، در این مورد، بسته به اینکه تطابق دقیقی وجود دارد یا خیر، در نهایت با 100 مقدار True/False مواجه می شوید. اگر یک تطابق وجود داشته باشد، اولین تابع ROW ردیف مطابقت را برمی گرداند و تابع INDEX برای گرفتن مقدار از ستون B در آن سطر استفاده می شود.

در برخی موارد ممکن است بخواهید تابع تعریف شده توسط کاربر خود را ایجاد کنید که جستجو را برای شما انجام دهد. نمونه زیر نمونه ای از این ماکروها است:

Function CaseVLook(compare_value, table_array As Range, _
  Optional col_index As Integer = 1)
    Dim c As Range
    Dim rngColumn1 As Range

    Application.Volatile

    Set rngColumn1 = table_array.Columns(1)
    CaseVLook = "Not Found"

    Loop first column
    For Each c In rngColumn1.Cells
        If c.Value = compare_value Then
            CaseVLook = c.Offset(0, col_index - 1).Value
            Exit For
        End If
    Next c
End Function

برای استفاده از ماکرو، کافی است تابعی را با مقداری که می خواهید پیدا کنید (مثلاً سلول C1)، محدوده ای که اولین ستون آن باید جستجو شود (مانند A:B) و در صورت تمایل، افست ستون در آن محدوده را فراخوانی کنید. اینجا:

=CaseVLook(C1,A:B,2)
اگر خواستی، با این لینک از ما حمایت کن

پاسخ شما

looks_5نام شما برای نمایش - اختیاری
حریم شخصی : آدرس ایمیل شما محفوظ میماند و برای استفاده های تجاری و تبلیغاتی به کار نمی رود
عدد چهار رقمی در تصویر را وارد کنید

برای جلوگیری از این تایید در آینده, لطفا وارد شده یا ثبت نام کنید.
اگر حساب گوگل دارید به راحتی وارید شوید

0 پاسخ وجود دارد

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

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

23.2k سوال

8.5k پاسخ

608 دیدگاه

9.7k کاربر

84 نفر آنلاین
0 عضو و 84 مهمان در سایت حاضرند
بازدید امروز: 8478
بازدید دیروز: 23827
بازدید کل: 15442994
...