3,755

در اکسل چطور می‌تونم از تاریخی به شکل 1/1/1393 عدد مربوط به ماه (۱) رو خارج کرده و در سلول دیگه نمایش بدم؟

توسط prodo (8.2k امتیاز)

1 پاسخ

+1 امتیاز
بهترین پاسخ

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

بعد از نصب بسته به صورت زیر عمل کنید

=MID(
  TEXT(A1, ""),
  SEARCH("/",TEXT(A1, ""))+1,
  SEARCH(
    "/",
    TEXT(A1, ""),
    SEARCH("/",EXT(A1, ""))+1
  )-SEARCH("/",EXT(A1, ""))-1
)

توضیحات کد:‌ برای به دست آوردن شماره‌ی ماه باید از کاراکتر بعد از اسلش اول تا کاراکتر قبل از اسلش دوم رو جدا کنیم.
برای این کار فرض کنیم S تبدیل تاریخ مورد نظر به متن باشه یعنی TEXT(A1, ""). بنابراین روی این متن کار می‌کنیم.
مکان اولین اسلش به صورت زیر به دست میاد

X = SEARCH("/", S)

مکان دومین کاراکتر اسلش از بعد از این مکان باید محاسبه بشه

Y = SEARCH("/", S, SEARCH("/",S)+1)

بنابراین ما الان دو تا عدد داریم. X : مکان اسلش اول و Y : مکان اسلش دوم. بنابراین باید از S کاراکتر X+1 رو به اندازه‌ی Y-X-1 جدا کنیم. که می‌شه همون فرمولی که نوشتم

توسط programmer (13.0k امتیاز)
انتخاب شده توسط prodo
0

کدی که نوشتین چطور کار می‌کنه؟

توسط prodo (8.2k امتیاز)
+1

توضیح کد رو در پاسخ قرار دادم

توسط programmer (13.0k امتیاز)
0

ممنون. می‌شه یک مثال بزنین که چطور این گام‌ها انجام می‌شه؟

توسط prodo (8.2k امتیاز)
+1

فرض کنیم A1=1392/5/2 و فرض کنیم S=TEXT(A1, "") که می‌شه همون "1392/5/2"
بنابراین X=5 (مکان اولین اسلش) و Y=7 (مکان دومین اسلش)
در نهایت

MID(S, X, Y-X-1) = MID(S, 5, 7-5-1) = MID(S, 5, 1) --> 5
توسط programmer (13.0k امتیاز)
...