كيفية فرز التواريخ تلقائيًا عند الإدخال أو التعديل في Excel؟
في Excel، يمكن أن تساعدك وظيفة الفرز على ترتيب التواريخ بترتيب تصاعدي أو تنازلي حسب الحاجة. لكنها ليست ديناميكية؛ إذا قمت بفرز التواريخ ثم أضفت تاريخًا جديدًا إليها، ستحتاج إلى إعادة الفرز مرة أخرى. هل هناك أي طرق جيدة وسريعة لفرز التواريخ تلقائيًا عند إدخال بيانات جديدة في كل مرة في ورقة العمل؟
فرز التاريخ تلقائيًا عند إدخال أو تعديل التاريخ باستخدام صيغة
فرز التاريخ تلقائيًا عند إدخال أو تعديل التاريخ باستخدام كود VBA
فرز التاريخ تلقائيًا عند إدخال أو تعديل التاريخ باستخدام صيغة
على سبيل المثال، إذا كانت التواريخ الأصلية في العمود A، فإن الصيغة التالية يمكن أن تساعدك في فرز التواريخ أو أي سلاسل نصية أخرى تلقائيًا في عمود مساعد جديد بناءً على العمود الذي تريد فرزه. يرجى اتباع الخطوات التالية:
1. أدخل هذه الصيغة:
=INDEX($A$2:$A$15,MATCH(ROWS($A$2:A2),COUNTIF($A$2:$A$15,"<="&$A$2:$A$15),0)) في خلية فارغة بجانب عمود التاريخ الخاص بك، C2 على سبيل المثال، ثم اضغط معًا على مفاتيح Ctrl + Shift + Enter للحصول على تسلسل رقمي. بعد ذلك، اسحب مقبض التعبئة إلى الخلايا المطلوبة. انظر لقطة الشاشة:
ملاحظة: في الصيغة أعلاه: A2:A15 هو نطاق التاريخ الأصلي الذي تريد فرزه تلقائيًا.
2. ثم قم بتنسيق الأرقام كتنسيق تاريخ عن طريق النقر على "تاريخ قصير" من قائمة General المنسدلة تحت علامة التبويب Home، انظر لقطة الشاشة:
3. تم تحويل الأرقام التسلسلية الآن إلى تنسيق التاريخ، كما تم فرز التواريخ الأصلية أيضًا. انظر لقطة الشاشة:
4. من الآن فصاعدًا، عندما تقوم بإدخال أو تعديل تاريخ في العمود A، سيتم فرز التواريخ في العمود C تلقائيًا بترتيب تصاعدي. انظر لقطة الشاشة:
فرز التاريخ تلقائيًا عند إدخال أو تعديل التاريخ باستخدام كود VBA
يمكن أن يساعدك الكود التالي لـ VBA في فرز التواريخ تلقائيًا في العمود الأصلي عند إدخال أو تعديل تاريخ حسب الحاجة.
1. انتقل إلى ورقة العمل التي تريد فرز التواريخ فيها تلقائيًا عند إدخال أو تعديل تاريخ.
2. انقر بزر الماوس الأيمن على علامة ورقة العمل، وحدد View Code من قائمة السياق، في نافذة Microsoft Visual Basic for Applications المنبثقة، يرجى نسخ ولصق الكود التالي في نافذة Module الفارغة، انظر لقطة الشاشة:
كود VBA: الفرز التلقائي عند إدخال أو تعديل التاريخ:
Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice
On Error Resume Next
If Application.Intersect(Target, Application.Columns(1)) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
Range("A1").Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub
ملاحظة: في الكود أعلاه، سيتم فرز التواريخ المدخلة تلقائيًا في العمود A. يمكنك تغيير A1 و A2 إلى الخلايا الخاصة بك حسب الحاجة.
3. من الآن فصاعدًا، عندما تقوم بإدخال تاريخ في العمود A، سيتم فرز التواريخ تلقائيًا بترتيب تصاعدي.
أفضل أدوات الإنتاجية لمكتب العمل
عزز مهاراتك في Excel مع Kutools لـ Excel، واختبر الكفاءة كما لم يحدث من قبل. Kutools لـ Excel يقدم أكثر من300 ميزة متقدمة لزيادة الإنتاجية وتوفير وقت الحفظ. انقر هنا للحصول على الميزة التي تحتاجها أكثر...
Office Tab يقدم واجهة التبويب لـ Office، ويجعل عملك أسهل بكثير
- تمكين تحرير وقراءة المستندات عبر التبويبات في Word وExcel وPowerPoint.
- افتح وأنشئ عدة مستندات في تبويبات جديدة ضمن نفس النافذة، بدلاً من فتحها في نوافذ منفصلة.
- يزيد إنتاجيتك بنسبة50%، ويقلل مئات النقرات بالماوس يومياً!