تابع MID و تابع CHOOSE برای تفکیک نام ماه در اکسل

قرار است چکار کنیم؟

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

استخراج شماره ماه از داخل تاریخ شمسی با تابع MID:

فرم ثبت اطلاعات در اکسل
شکل شماره 1 – فرم ثبت اطلاعات در اکسل

در شکل فوق قصد داریم برای تفکیک عدد ماه و نام ماه با وارد کردن تاریخ،نام ماه بصورت اتوماتیک از داخل تاریخ شمسی استخراج و در ستون ماه قرار بگیرد.توجه داشته باشید که ما فعلا فرض را بر این میگیریم که فرمت تاریخ به شکل 0000/00/00 می باشد.

اولین کاری که باید انجام بدیم این است که شماره ماه را از داخل تاریخ استخراج کنیم.برای اینکار می توانیم از تابع MID استفاده کنیم.این تابع این امکان را به می دهد تا تعیین کنیم از داخل یک مقدار و از nامین کاراکتر nتعداد کاراکتر را جدا کرده و برای ما بیاورد.
پس برای اینکه شماره ماه را از داخل تاریخ مثلا 1397/02/18 استخراج کنیم باید به تابع MID بگوییم که از کاراکتر 6 ام تاریخ شروع کن و به تعداد 2 کاراکتر را انتخاب و برای ما استخراج کن که نتیجه مقدار 02 خواهد بود.

(MID(B2,6,2=
تفکیک شماره تاریخ با تابع MID
شکل شماره 2 – تفکیک شماره تاریخ با تابع MID

تبدیل شماره ماه به نام ماه با تابع CHOOSE:

خب تا اینجا ما توانستیم شماره ماه را استخراج کنیم.حالا باید این شماره ماه را به نام ماه ارتباط دهیم.ما می توانیم نام ماه را در یک جایی از شیت وارد کنیم و با استفاده از Vlookup یا Match , Index نام ماه را فراخوانی کنیم.اما همانطور که پیشتر گفتم نمی خواهیم از یک منبع خارج از فرمول استفاده کنیم.تابعی که اینجا میتونه به ما کمک کنه تابع Choose هست.زیرا این تابع قابلیت ایجاد یک لیست درون تابعی را دارد.

پس ما باید لیست ماه ها را داخل تابع Choose ایجاد کنیم و با تابع MID به شماره ماه آن ارجاع بدیم.فرمول نهایی به شکل زیر ایجاد می شود:

(“اسفند”,”بهمن”,”دی”,”آذر”,”آبان”,”مهر”,”شهریور”,”مرداد”,”تیر”,”خرداد”,”اردیبهشت”,”فروردین”,(CHOOSE(MID(B2,6,2=
استخراج نام ماه از داخل تاریخ با ترکیب تابع MID و تابع CHOOSE
شکل شماره 3 – استخراج نام ماه از داخل تاریخ با ترکیب تابع MID و تابع CHOOSE
نتیجه نهایی تفکیک نام ماه از تاریخ شمسی با تابع MID و تابع CHOOSE
شکل شماره 4 – نتیجه نهایی تفکیک نام ماه از تاریخ شمسی با تابع MID و تابع CHOOSE

نتیجه نهایی:

اکنون با وارد کردن تاریخ، تابع MID عمل تفکیک عدد ماه را انجام می دهد و تابع CHOOSE شماره ماه رو به نام ماه تبدیل می کند


چالش:

ممکن است تاریخ در حالت های مختلف ظاهر شود.مثل:

  • 1397/02/18
  • 97/02/18
  • 1397/2/18
  • 97/2/18

حال برای تفکیک عدد ماه از داخل تاریخ شمسی در اکسل در این حالت چه باید کرد…؟

اینجا باید فرمول خودمون رو داینامیک تر کنیم تا با کم و زیاد شدن تعداد ارقام تاریخ فرمول جواب اشتباه به ما ندهد.اینجا دیگه باید خلاقیت به خرج بدین و تکنیکی رو استفاده کنین تا بدونین ماهی که در تاریخ ثبت شده دو رقمی است یا یک رقمی.

شما این رو بعنوان تمرین خودتون انجام بدین چون تا خودتون با فرمول درگیر نشید نمیتونید خلاقیت به خرج بدین و به فرمول اشرافیت داشته باشین.اگر مشکلی در حل این مساله داشتین میتونین بصورت کامنت سوالتون رو بپرسین.حتما راهنماییتون میکنیم.

کلید:

شما ابتدا باید جایگاه هرکدام از جدا کننده های “/” را با تابعی مثل تابع FIND در تاریخ پیدا کنید و با کم کردن آنها از هم ببینید کد ماه بین چندمین کاراکترها قرار دارد.شما فقط با توابع MID , FIND , Choose یا LEN میتونید مساله رو حل کنید

توجه :

اینجا ملاک بر این است که تاریخ با یک جدا کننده مثل “/” از هم جدا شده اند.اگر از یک جداکننده مثل “.” یا “-” استفاده کردین در جست و جوهای خودتان این جداکننده ها را درنظر بگیرید.


منبع:

exceljet.net

اشتراک گذاری:
مطالب زیر را حتما بخوانید

4 دیدگاه

به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.

  • در فایل اکسل 1000 تا سلول داریم و داخل یک سلول یک عدد 10 رقمی داریم که میخوایم پنجمین عددش رو تغییر بدیم و تو 1000 تا ردیف تکرار بشه مناسب ترین روش چی هست ؟

    • سلام… وقت بخیر

      فرض کنید عددتون در سلول A1 قرار داره. در سلول B1 فرمول زیر رو بنویسید:

      CONCATENATE(LEFT(A1,5),1,RIGHT(A1,4))=

  • سلام و وقت شما به خیر
    ممنون از شما سوالی از خدمتتان داشتم
    اگر تاریخ به صورت دستی وارد نشود و عمل تبدیل از میلادی به شمسی صورت گیرد(از format cell)
    این دستورات جواب نمی دن آیا راه دیگه ای هم برای جداسازی بخشهای مختلف تاریخ هست یا نه.
    ممنون از زحمات شما.

    • سلام. وقت بخیر

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

پاسخی بگذارید