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

سام تعداد زیادی آدرس در یک کاربرگ دارد. در آن آدرس‌ها، او باید مطمئن شود که تمام جهت‌های قطب‌نما (NE، SE، NW و SW) همه بزرگ هستند. بسیار مفید خواهد بود اگر سام بفهمد که چگونه می‌تواند هر یک از این جهت‌های کوچک (یا حروف مختلط) را که فقط در انتهای یک سلول با حروف بزرگ آنها ظاهر می‌شوند، تغییر دهد. او نمی تواند فقط به دنبال فضایی به دنبال "ne" باشد، زیرا این امر باعث تغییر نیوتن به نیوتن می شود، بنابراین او متعجب است که چگونه می تواند مطمئن شود که جایگزینی تنها زمانی رخ می دهد که حروف در انتهای یک سلول ظاهر شوند.

هیچ راهی برای انجام این کار با استفاده از ابزارهای Find and Replace در اکسل وجود ندارد. این بدان معناست که برای انجام کار باید از یک فرمول یا یک ماکرو استفاده کنید. از فرمول ها می توان برای اطمینان از بزرگ بودن دو کاراکتر آخر یک سلول استفاده کرد:

=LEFT(A1,LEN(A1)-2) & UPPER(RIGHT(A1,2))

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

=IF(RIGHT(A1,3)=" ne", LEFT(A1,LEN(A1)-2) & "NE",
IF(RIGHT(A1,3)=" se", LEFT(A1,LEN(A1)-2) & "SE",
IF(RIGHT(A1,3)=" nw", LEFT(A1,LEN(A1)-2) & "NW",
IF(RIGHT(A1,3)=" sw", LEFT(A1,LEN(A1)-2) & "SW", A1))))

این فرمول سه کاراکتر آخر را بررسی می‌کند تا ببیند آیا فضایی به دنبال آن‌ها، ne، se، nw یا sw وجود دارد. اگر اینطور باشد، آن دو کاراکتر آخر با حروف بزرگ ساخته می شوند. اگر به روشی متفاوت به آن نگاه کنید، فرمول را می توان کوتاه کرد:

=IF(OR(RIGHT(A1,3)=" ne", RIGHT(A1,3)=" se", RIGHT(A1,3)=" nw",
RIGHT(A1,3)=" sw"), LEFT(A1,LEN(A1)-2) & UPPER(RIGHT(A1,2)), A1)

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

=IF(OR(RIGHT(A1,3)={" ne"," se"," sw"," nw"}),
LEFT(A1,LEN(A1)-2) & UPPER(RIGHT(A1,2)), A1)

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

Sub CapDirections()
    For Each RCell In Selection
        CText = UCase(Right(RCell.Value, 3))
        If CText = " NE" Or CText = " SE" _
          Or CText = " SW" Or CText = " NW" Then
            RCell.Value = Left(RCell.Value, _
              Len(RCell.Value) - 3) + CText
        End If
    Next
End Sub

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

باید توجه داشته باشید که این راه حل ها بر اساس وجود چهار جهت قطب نمای ممکن در آدرس های شما هستند. اگر آدرس‌های شما جهت‌های قطب‌نمای وسیع‌تری دارند (مانند N یا SSE)، قطعاً می‌خواهید از یک راه‌حل مبتنی بر کلان استفاده کنید زیرا بررسی سریع برای یک فرمول بسیار پیچیده می‌شود.

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

پاسخ شما

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

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

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

سوالات مشابه

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما
0 دوستدار 0 امتیاز منفی
0 پاسخ 54 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 20 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 40 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 63 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 25 visibility

24.3k سوال

9.6k پاسخ

614 دیدگاه

11.2k کاربر

135 نفر آنلاین
0 عضو و 135 مهمان در سایت حاضرند
بازدید امروز: 1306
بازدید دیروز: 25180
بازدید کل: 20338664
...