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

Reggie سلولی دارد که شامل سه یا چند کلمه است. (تعداد کلمات می تواند متفاوت باشد.) او به فرمولی نیاز دارد که به او اجازه دهد اولین کلمه سلول یا آخرین کلمه سلول را استخراج کند. برای مثال، اگر سلول حاوی عبارت "Reggie was here in 2022" باشد، به فرمولی برای استخراج "Reggie" و یکی برای استخراج "2022" نیاز دارد.

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

=LEFT(A1,FIND(" ",A1)-1)

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

=TRIM(RIGHT(SUBSTITUTE(TRIM(A1)," ",REPT(" ",255)),255))

این فرمول فاصله ها را به رشته های 255 خالی تبدیل می کند. سپس 255 کاراکتر آخر را پیدا می کند و کاراکترها را به سمت چپ برش می دهد و آخرین کلمه را باقی می گذارد.

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

Function FirstWord(c As String)
    Dim arr

    arr = Split(Trim(c), " ")
    FirstWord = arr(LBound(arr))
End Function

این تابع از تابع Split برای جدا کردن هر چیزی که در سلول مشخص شده است، با استفاده از پارامتر دوم (" ") به عنوان جداکننده استفاده می کند. سپس هر عنصر در آرایه (arr) شامل بخشی از رشته اصلی است. در این مورد چیزی که برگردانده می شود اولین عنصر (که توسط LBound مشخص شده است) آرایه است - اولین کلمه.

از آنجایی که کلمات از عبارت در یک آرایه قرار می گیرند، می توانید فقط از یک تغییر جزئی در تابع برای برگرداندن آخرین کلمه استفاده کنید:

Function LastWord(c As String)
    Dim arr

    arr = Split(Trim(c), " ")
    LastWord = arr(UBound(arr))
End Function

توجه داشته باشید که اساساً تنها تغییر واقعی در تابع استفاده از UBound به جای LBound است. تابع UBound آخرین عنصر آرایه را مشخص می کند. شما می توانید از هر دو این توابع در یک کاربرگ به این صورت استفاده کنید:

=FirstWord(A1)
=LastWord(A1)

اگر ترجیح می‌دهید، می‌توانید از تابع Split دور بزنید و در عوض، از برخی دیگر از توابع مرتبط با رشته استفاده کنید:

Function GetFirst(c As String)
    GetFirst = Left(c, InStr(c, " ") - 1)
End Function
Function GetLast(c As String)
    GetFirst = Mid(c, InstrRev(c, " ") + 1)
End Function
اگر خواستی، با این لینک از ما حمایت کن

پاسخ شما

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

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

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

سوالات مشابه

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما
0 دوستدار 0 امتیاز منفی
0 پاسخ 27 visibility
ارسال شده در 27 تیر 1402 موضوع: آفیس توسط: Admin
0 دوستدار 0 امتیاز منفی
0 پاسخ 65 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 24 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 43 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 30 visibility

24.3k سوال

9.6k پاسخ

614 دیدگاه

11.2k کاربر

341 نفر آنلاین
0 عضو و 341 مهمان در سایت حاضرند
بازدید امروز: 9065
بازدید دیروز: 25180
بازدید کل: 20346416
...