كيفية فرز التواريخ تلقائيًا عند الإدخال أو التعديل في 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، سيتم فرز التواريخ تلقائيًا بترتيب تصاعدي.
أفضل أدوات زيادة الإنتاجية لمجموعة Office
عزز مهاراتك في Excel مع Kutools لـ Excel، وتمتع بكفاءة غير مسبوقة. يقدم Kutools لـ Excel أكثر من300 ميزة متقدمة لتعزيز الإنتاجية وتوفير وقت الحفظ. انقر هنا للحصول على الميزة التي تحتاجها أكثر...
Office Tab يجلب تجربة التبويبات إلى Office، ويجعل عملك أسهل بكثير
- فعّل تحرير وقراءة المستندات عبر التبويبات في Word وExcel وPowerPoint
- افتح وأنشئ مستندات متعددة في تبويبات جديدة ضمن نفس النافذة، بدلاً من فتحها في نوافذ جديدة.
- يمنحك زيادة إنتاجية تصل إلى50% ويوفر عليك مئات النقرات يومياً!