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

جی باید سلولی را که در آن یک مقدار متن خاص وجود دارد، تعیین کند. او می داند که می تواند از قابلیت های Excels Find and Replace برای تعیین دستی آدرس سلول های حاوی مقدار متن استفاده کند، اما او به دنبال فرمولی برای تعیین آدرس سلول ها است. او فکر می کند که آیا راهی برای جستجوی قطعه متن در یک محدوده وجود دارد و اکسل آدرس سلولی را که متن در آن یافت می شود را بازگرداند.

دو چیز وجود دارد که می توانید امتحان کنید. ابتدا، اگر به دنبال یک تطابق دقیق برای محتویات سلول هستید، می توانید از یک فرمول استفاده کنید. فرمول اصلی این است:

=ADDRESS(MATCH(C2,A:A,0),1)

در این مثال، سلول C2 حاوی مقدار مورد نظر شما است و ستون A محدوده سلول های مورد جستجو است. فرمول بدون توجه به حروف بزرگ C2 یا مقادیر ستون A، نتیجه را برمی‌گرداند. بنابراین، اگر C2 حاوی "apple" باشد، فرمول به طور مثبت با سلول‌هایی که حاوی "apple"، "Apple" یا "APPLE" هستند مطابقت خواهد داشت. در واقع، هر ترکیبی از حروف بزرگ مطابقت دارد.

این فرمول آدرسی را برای سلولی که حاوی آنچه شما در میان متن دیگر جستجو می کنید، بر نمی گرداند. بنابراین اگر به دنبال "apple" (سلول C2) هستید، آدرس سلولی که حاوی عبارت "apple crisp" است را بر نمی گرداند. می توانید این رفتار را با افزودن کاراکترهای وحشی به سلول جستجو، کمی تغییر دهید. به عنوان مثال، اگر شما برای "*apple*" جستجو کنید، فرمول آدرس سلولی را که حاوی "apple" است، برمی‌گرداند، حتی اگر قبل یا بعد از آن نویسه‌های دیگر باشد.

لازم به ذکر است که این فرمول فقط آدرس اولین سلول در محدوده ای را برمی گرداند که معیارها را برآورده می کند. اگر واقعاً آدرس تمام سلول‌ها را می‌خواهید که معیارها را برآورده کنند، باید به یک ماکرو تکیه کنید. مثال زیر یک مثال خوب است:

Function FindMe(x As Range, y As String) As String
    Dim r As Range
    Dim sResults As String
    Dim sSearch As String

    Application.Volatile
    sSearch = LCase(y)
    For Each r In x
        If InStr(1, LCase(CStr(r.Value)), sSearch) > 0 Then
            sResults = sResults & r.Address & ", "
        End If
    Next r
    If Len(sResults) > 2 Then
        FindMe = Left(sResults, Len(sResults) - 2)
    Else
        FindMe = ""
    End If
End Function

شما از این تابع به سادگی با ارائه محدوده ای که می خواهید جستجو کنید به همراه آنچه می خواهید جستجو کنید استفاده می کنید:

=FindMe(A:A, "apple")

اگر از یک محدوده بزرگ استفاده می‌کنید (مانند این مثال - همه ستون A)، اگر این تابع زمان قابل توجهی را برای برگرداندن یک نتیجه صرف کند، تعجب نکنید. این منطقی است، زیرا باید در هر سلول در محدوده جستجو کند، صرف نظر از اینکه چیزی در سلول وجود دارد یا خیر.

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

اگر خواستی، با این لینک از ما حمایت کن

پاسخ شما

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

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

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

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

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

31.4k سوال

16.7k پاسخ

623 دیدگاه

14.3k کاربر

1013 نفر آنلاین
0 عضو و 1013 مهمان در سایت حاضرند
بازدید امروز: 17786
بازدید دیروز: 65494
بازدید کل: 38433099
...