فهرست مطالب
در این مقاله به روشهای مختلف برای مرتبسازی تاریخها در اکسل میپردازیم. شما یاد خواهید گرفت که چگونه به سرعت تاریخ ها را به ترتیب زمانی مرتب کنید، به ترتیب ماه ها بدون توجه به سال ها، تاریخ های تولد را بر اساس ماه و روز مرتب کنید، و چگونه به صورت خودکار بر اساس تاریخ در هنگام وارد کردن مقادیر جدید مرتب کنید.
Excel داخلی گزینههای مرتبسازی ابزارهای قدرتمند و مؤثری هستند، اما همیشه در مورد مرتبسازی تاریخها به درستی کار نمیکنند. این آموزش چند ترفند مفید را به شما می آموزد تا اکسل را بر اساس تاریخ به روشی معنی دار بدون به هم ریختن داده های خود مرتب کنید.
چگونه تاریخ ها را به ترتیب زمانی مرتب کنیم
ترتیب تاریخ ها به ترتیب زمانی در اکسل بسیار آسان است. شما فقط از گزینه استاندارد مرتبسازی صعودی استفاده میکنید:
- تاریخیهایی را که میخواهید به ترتیب زمانی مرتب شوند انتخاب کنید.
- در برگه صفحه اصلی ، در گروه Formats ، روی Sort & فیلتر و مرتب سازی قدیمی ترین به جدیدترین را انتخاب کنید. همچنین، میتوانید از گزینه A-Z در برگه داده ، در مرتبسازی & گروه را فیلتر کنید.
نحوه مرتب سازی بر اساس تاریخ در اکسل
گزینه های مرتب سازی اکسل نیز می توانند برای تنظیم مجدد کل جدول، نه تنها یک ستون. برای مرتبسازی رکوردها بر اساس تاریخ و دست نخورده نگهداشتن ردیفها، نکته کلیدی این است که وقتی از شما خواسته شد، انتخاب را گسترش دهید.
در اینجا مراحل دقیق مرتبسازی دادهها در اکسل بر اساس تاریخ آمده است:
- در صفحه گسترده خود را، تاریخ ها را بدون ستون انتخاب کنیدسربرگ.
- در برگه صفحه اصلی ، روی Sort & را فیلتر کنید و مرتب سازی قدیمی ترین به جدیدترین را انتخاب کنید.
- کادر محاوره ای هشدار مرتب سازی ظاهر می شود. گزینه پیش فرض Expand the selection را انتخاب کرده و روی Sort کلیک کنید:
همین! رکوردها بر اساس تاریخ مرتب شده اند و همه ردیف ها با هم نگهداری می شوند:
نحوه مرتب سازی بر اساس ماه در اکسل
ممکن است مواردی وجود داشته باشد که بخواهید برای مرتب کردن تاریخ ها بر اساس ماه با نادیده گرفتن سال، به عنوان مثال هنگام گروه بندی تاریخ های سالگرد همکاران یا بستگان خود. در این مورد، ویژگی پیشفرض مرتبسازی اکسل کار نخواهد کرد زیرا همیشه سال را در نظر میگیرد، حتی اگر سلولهای شما طوری قالببندی شده باشند که فقط ماه یا ماه و روز را نمایش دهد.
راهحل این است که یک ستون کمکی اضافه کنید. ، عدد ماه را استخراج کرده و بر اساس آن ستون مرتب کنید. برای دریافت یک ماه از تاریخ، از تابع MONTH استفاده کنید.
در تصویر زیر، شماره ماه را از تاریخ در B2 با این فرمول استخراج می کنیم:
=MONTH(B2)
نکته. اگر نتیجه بهجای عدد بهعنوان تاریخ نمایش داده میشود، قالب General را روی سلولهای فرمول تنظیم کنید.
و اکنون، جدول خود را بر اساس ستون ماه مرتب کنید. برای این کار، اعداد ماه را انتخاب کنید (C2:C8)، روی Sort & فیلتر > کوچکترین به بزرگتر را مرتب کنید ، و سپس وقتی اکسل از شما درخواست کرد، انتخاب را گسترش دهید. اگر همه چیز به درستی انجام شود، موارد زیر را دریافت خواهید کردنتیجه:
لطفاً توجه داشته باشید که دادههای ما اکنون بر اساس ماه مرتب شدهاند و سالها و روزهای هر ماه را نادیده میگیریم. اگر میخواهید بر اساس ماه و روز مرتبسازی کنید ، سپس دستورالعملهای مثال بعدی را دنبال کنید.
اگر نام ماهها به صورت متن وارد شدهاند، مرتبسازی کنید توسط یک لیست سفارشی همانطور که در این مثال توضیح داده شده است.
نحوه مرتب سازی تولدها در اکسل بر اساس ماه و روز
هنگام تنظیم تاریخ برای یک تقویم تولد، راه حل بهینه مرتب سازی تاریخ ها بر اساس ماه و روز در نتیجه، به فرمولی نیاز دارید که ماه ها و روزها را از تاریخ تولد جدا کند.
در این مورد، تابع Excel TEXT، که می تواند تاریخ را به یک رشته متن در قالب مشخص شده تبدیل کند، مفید است. . برای هدف ما، کد قالب "mmdd" یا "mm.dd" کار خواهد کرد.
با تاریخ منبع در B2، فرمول به این شکل است:
=TEXT(B2, "mm.dd")
بعد، ستون ماه و روز را از بزرگترین به کوچکترین مرتبهسازی کنید، و دادهها را به ترتیب روزهای هر ماه مرتب خواهید کرد.
همین نتیجه را می توان با استفاده از فرمول DATE مانند این بدست آورد:
=DATE(2000, MONTH(B2),DAY(B2))
فرمول با استخراج ماه و روز از تاریخ واقعی در B2 و جایگزینی آن، فهرستی از تاریخ ها را ایجاد می کند. سال واقعی با یک جعلی، 2000 در این مثال، هر چند شما می توانید هر کدام را قرار دهید. ایده این است که برای همه تاریخها یک سال داشته باشیم و سپس فهرست تاریخها را به ترتیب زمانی مرتب کنیم.از آنجایی که سال یکسان است، تاریخ ها بر اساس ماه و روز مرتب می شوند، که دقیقاً همان چیزی است که شما به دنبال آن هستید.
نحوه مرتب سازی داده ها بر اساس سال در اکسل
وقتی نوبت به آن می رسد مرتبسازی بر اساس سال، سادهترین راه این است که تاریخها را به ترتیب زمانی با گزینه مرتبسازی صعودی اکسل ( قدیمیترین به جدیدترین ) مرتب کنید.
این کار تاریخها را مرتب میکند. بر اساس سال، سپس بر اساس ماه، و سپس بر اساس روز همانطور که در تصویر زیر نشان داده شده است.
اگر به دلایلی از چنین ترتیبی راضی نیستید، می توانید اضافه کنید یک ستون کمکی با فرمول YEAR که سال را از تاریخ استخراج می کند:
=YEAR(C2)
پس از مرتب سازی داده ها بر اساس ستون سال ، متوجه می شوید که تاریخ ها مرتب شده اند. فقط بر اساس سال، نادیده گرفتن ماهها و روزها .
نکته. اگر میخواهید تاریخها را بر اساس روز مرتب کنید بدون توجه به ماهها و سالها، روز را با استفاده از تابع DAY استخراج کنید و سپس بر اساس ستون روز مرتب کنید:
=DAY(B2)
نحوه مرتب سازی بر اساس روزهای هفته در اکسل
برای مرتب سازی داده ها بر اساس روزهای هفته، مانند مثال های قبلی به یک ستون کمکی نیز نیاز دارید. در این مورد، ما ستون کمکی را با فرمول WEEKDAY پر می کنیم که عددی مربوط به روز هفته را برمی گرداند و سپس بر اساس ستون کمکی مرتب می کنیم.
برای یک هفته که از یکشنبه شروع می شود (1) ) تا شنبه (7)، این فرمول استفاده است:
=WEEKDAY(A2)
اگر هفته شما از دوشنبه (1) تا یکشنبه شروع می شود(7)، فرمول درست اینجاست:
=WEEKDAY(A2, 2)
جایی که A2 سلول حاوی تاریخ است.
برای این مثال، از اولین فرمول استفاده کردیم و این را دریافت کردیم. نتیجه:
در صورتی که نام روزهای هفته به عنوان متن وارد شود، نه به عنوان تاریخ، از ویژگی مرتب سازی سفارشی همانطور که در مثال بعدی توضیح داده شد استفاده کنید.
نحوه مرتبسازی دادهها در اکسل بر اساس نام ماه (یا نام روزهای هفته)
در صورتی که فهرستی از نامهای ماه به صورت متن داشته باشید، نه بهعنوان تاریخهایی که برای نمایش قالببندی شدهاند. فقط ماهها، استفاده از مرتبسازی صعودی اکسل ممکن است یک مشکل باشد - به جای مرتبسازی بر اساس ترتیب ماه از ژانویه تا دسامبر، نام ماهها را بر اساس حروف الفبا مرتب میکند. در این مورد، یک مرتبسازی سفارشی کمک میکند:
- سوابقی را که میخواهید بر اساس نام ماه مرتب کنید، انتخاب کنید.
- در برگه داده ، در مرتب سازی & گروه را فیلتر کنید، روی مرتب سازی کلیک کنید.
- در کادر محاوره ای مرتب سازی ، موارد زیر را انجام دهید:
- زیر ستون ، نام ستونی را انتخاب کنید که حاوی نام ماه است.
- در قسمت مرتب سازی بر ، مقادیر سلول را انتخاب کنید.
- زیر سفارش ، فهرست سفارشی را انتخاب کنید.
- در کادر گفتگوی فهرست های سفارشی ، را انتخاب کنید یا نام کامل ماه ( ژانویه ، فوریه ، مارس ، …) یا نامهای کوتاه ( ژانویه ، فوریه , مارس …) بسته به نحوه فهرست شدن ماه ها در کاربرگ شما:
تمام شد! داده های شما بر اساس نام ماه به ترتیب زمانی مرتب شده اند، نه بر اساس حروف الفبا:
نکته. برای مرتبسازی بر اساس نام روزهای هفته ، یکی از نامهای کامل را انتخاب کنید ( یکشنبه ، دوشنبه ، سهشنبه ، …) یا نامهای کوتاه ( Sun ، Mon ، Tue …) در کادر گفتگوی Custom Lists .
نحوه مرتب سازی خودکار بر اساس تاریخ در اکسل
همانطور که مشاهده کردید، ویژگی Excel Sort با چالش های مختلفی مقابله می کند. تنها اشکال این است که پویا نیست. به این معنی که با هر تغییر و هر زمان که اطلاعات جدیدی اضافه می شود، باید داده های خود را دوباره مرتب کنید. شاید از خود بپرسید که آیا راهی برای مرتبسازی خودکار هر بار که تاریخ جدیدی اضافه میشود وجود دارد تا دادههای شما همیشه مرتب باشند.
بهترین راه برای انجام این کار استفاده از ماکرو است. در زیر، چند نمونه کد برای مرتبسازی خودکار دادههای زیر بر اساس تاریخ به ترتیب زمانی پیدا خواهید کرد.
ماکرو 1: مرتبسازی خودکار با هر تغییر کاربرگ
این ماکرو هر زمان که تغییری در هر جایی از کاربرگ رخ دهد اجرا میشود.
فرض میرود که دادههای شما در ستونهای A تا C هستند، و تاریخهایی که میخواهید بر اساس آنها مرتبسازی کنید در ستون C قرار دارند که از ابتدا در C2. همچنین فرض می شود که سطر 1 حاوی سرصفحه (Header:=xlYes) است. اگر رکوردهای شما در ستون های مختلف هستند، تنظیمات زیر را انجام دهید:
- مرجع A1 را به سلول سمت چپ بالای صفحه خود تغییر دهید.محدوده هدف (شامل سرصفحه ها).
- مرجع C2 را به بالاترین سلول حاوی تاریخ تغییر دهید.
Macro 2: مرتب سازی خودکار زمانی که تغییرات در محدوده خاصی انجام می شود
اگر با یک کاربرگ بزرگ کار می کنید که حاوی اطلاعات زیادی است، مرتب سازی مجدد با مطلقاً هر تغییری در برگه ممکن است مشکل ساز باشد. در این مورد، منطقی است که راه اندازی ماکرو را به تغییراتی که در یک محدوده خاص رخ می دهد محدود کنیم. کد VBA زیر فقط زمانی دادهها را مرتب میکند که تغییری در ستون C ایجاد شود که حاوی تاریخها باشد.
Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Not Intersect(Target, Range( "C:C" )) Is Nothing then Range( "A1"). مرتب سازی کلید 1:=محدوده ("C2")، _ Order1:=xlAscending، Header:=xlYes، _ OrderCustom:=1، MatchCase:= False، _ جهت:=xlTopToBottom End If End Subنکته. این ماکروها را می توان برای مرتب سازی خودکار بر اساس هر نوع داده ، نه فقط تاریخ، استفاده کرد. کدهای نمونه ما به ترتیب صعودی مرتب می شوند. اگر می خواهید مرتب سازی نزولی انجام دهید، Order1:=xlAscending را به Order1:=xlنزولی تغییر دهید.
چگونه ماکرو را به کاربرگ خود اضافه کنید
از آنجایی که هر دو ماکرو به طور خودکار در تغییر کاربرگ اجرا می شوند،کد باید در برگه ای که می خواهید داده ها را مرتب کنید درج شود (در این مثال Sheet1). به این صورت است:
- برای باز کردن ویرایشگر VBA، Alt + F11 را فشار دهید.
- در Project Explorer در سمت چپ، روی برگهای که میخواهید دوبار کلیک کنید. مرتبسازی خودکار.
- کد را در پنجره کد جایگذاری کنید.
مرتبسازی خودکار تاریخها با فرمول
فرض کنید شما یک لیستی از تاریخ ها و شما می خواهید آنها را به صورت خودکار به ترتیب زمانی در یک ستون جداگانه، در کنار لیست اصلی مرتب کنید. این را میتوان با فرمول آرایه زیر انجام داد:
=IFERROR(INDEX($A$2:$A$20, MATCH(ROWS($A$2:A2), COUNTIF($A$2:$A$20, "<="&$A$2:$A$20), 0)), "")
که در آن A2:A20 تاریخهای اصلی (مرتبنشده) هستند، از جمله چند سلول خالی برای ورودیهای جدید احتمالی.
<0 فرمول را در یک سلول خالی در کنار ستون با تاریخ های اصلی وارد کنید (C2 در این مثال) و کلیدهای Ctrl + Shift + Enter را به طور همزمان فشار دهید تا آن را کامل کنید. سپس، فرمول را به سلولهای باقیمانده بکشید (در مورد ما C2:C20).
نکته. برای مرتبسازی خودکار تاریخهای جدید اضافه شده، حتماً تعداد کافی سلول خالی را در محدوده ارجاع شده قرار دهید. به عنوان مثال، لیست تاریخ های ما در محدوده A2:A7 است، اما ما 20$2:$A$20$ را به فرمول ارائه می کنیم و آن را در سلول های C2 تا C20 پر می کنیم. تابع IFERROR از بروز خطا در سلول های اضافی جلوگیری می کند و در عوض یک رشته خالی ("") را برمی گرداند.
مرتبسازی اکسل بر اساس تاریخ کار نمیکند
اگر تاریخهای شما طبق تاریخ مرتب نشدهاندبه احتمال زیاد باید در قالبی وارد شوند که اکسل قادر به درک آن نباشد، بنابراین به عنوان رشته های متنی به جای تاریخ درک می شوند. آموزش زیر نحوه تشخیص به اصطلاح "تاریخ متن" و تبدیل آنها به تاریخ های عادی اکسل را توضیح می دهد: نحوه تبدیل متن به تاریخ در اکسل.
این نحوه مرتب سازی بر اساس تاریخ در اکسل است. از شما سپاسگزارم که خواندید و امیدوارم هفته آینده شما را در وبلاگ خود ببینیم!
دانلودهای موجود
نمونههای فرمول مرتبسازی بر اساس تاریخ (فایل xlsx.)
ماکرو مرتبسازی خودکار ( فایل xlsm)