كيف يمكن ترتيب الأرقام داخل خلية في Excel؟
عند العمل مع Excel، يُعدّ ترتيب الأرقام عبر نطاق من الخلايا أو داخل عمودٍ ما مهمةً شائعة وواضحة. ومع ذلك، قد تواجه حالات تتطلب ترتيب الأرقام الموجودة جميعها داخل خلية واحدة—مثلًا عند استلام بيانات مستوردة أو تقارير مجمَّعة أو ملفات تصدير تحتوي على أرقام متعددة مخزَّنة معًا دون فصلها في خلايا منفصلة. إن الترتيب اليدوي لهذه الأرقام في كل خلية قد يكون غير فعّال ومعرَّضًا للخطأ، خاصةً عند التعامل مع كميات كبيرة من البيانات أو خلايا تحوي العديد من الأرقام. لكن بفضل تقنيات معيَّنة، يمكنك إعادة ترتيب الأرقام داخل الخلايا الفردية بسرعة لتلبية متطلبات تنظيم البيانات أو تحليلها.
في هذه المقالة، ستكتشف عدة طرق عملية لترتيب الأرقام داخل الخلايا في Excel، بما في ذلك الحلول القائمة على الصيغ والدوال المعرّفة من قِبل المستخدم (UDF) وأكواد VBA. يتميز كل نهج بمزاياه الفريدة، مما يجعله مناسبًا لسيناريوهات مختلفة—اختر الحل الأنسب لاحتياجاتك!
ترتيب الأرقام داخل الخلايا باستخدام صيغة
ترتيب الأرقام داخل الخلايا باستخدام دالة معرّفة من قبل المستخدم
ترتيب الأرقام المفصولة بفواصل داخل الخلايا باستخدام كود VBA
ترتيب الأرقام داخل الخلايا باستخدام ميزة الملء السريع (Flash Fill) في Excel
ترتيب الأرقام داخل الخلايا باستخدام صيغة
للحالات البسيطة التي تكون فيها جميع الأرقام داخل الخلية أرقامًا مفردة وخالية من الفواصل، يمكنك استخدام صيغة صفيفية (Array Formula) لإعادة ترتيب الأرقام داخل الخلية تلقائيًّا. ويُعدّ هذا الحل مثاليًّا عند التعامل مع الرموز أو المعرّفات أو أي سيناريو يتطلب إعادة ترتيب الأرقام المفردة داخل الخلية.
يرجى اتباع الخطوات التفصيلية التالية:
1. أدرج عمودًا جديدًا بجانب بياناتك. على سبيل المثال، إذا كانت أرقامك في الخلية A1، فانقر على الخلية C1 وأدخل الصيغة التالية:
=TEXT(SUM(SMALL(--MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),ROW(INDIRECT("1:"&LEN(A1))))*10^(LEN(A1)-ROW(INDIRECT("1:"&LEN(A1))))),REPT("0",LEN(A1)))

2. وبما أن هذه صيغة صفيفية، فقم بتأكيدها بالضغط علىCtrl + Shift + Enter. ستظهر أقواس مجعّدة حول الصيغة في شريط الصيغة، مما يدل على أنها تم تقييمها كصفيف.
بعد ذلك، اسحب مقبض التعبئة لأسفل لنسخ الصيغة إلى الخلايا الأخرى التي تحتاج فيها إلى وظيفة الترتيب. سيتم ترتيب الأرقام في كل خلية تلقائيًّا بترتيب تصاعدي. انظر المثال أدناه:

للتسهيل، تأكد من الإشارة إلى الخلايا الصحيحة، وأن تحتوي بياناتك الأصلية على أرقام فقط؛ إذ قد يؤدي وجود نصوص مختلطة أو أحرف إضافية إلى حدوث مشكلات.
ملاحظات:
- إذا احتوت الخلية على أكثر من 15 رقمًا، فقد لا تعمل هذه الصيغة بدقة بسبب الحد الافتراضي لدقة الأرقام في Excel. وللسلاسل الأطول أو الترتيبات الرقمية الأكثر تعقيدًا، يُوصى باستخدام حلول VBA أو دالة معرّفة من قِبل المستخدم.
- لترتيب الأرقام بترتيب تنازلي، يمكنك استبدالSMALLبـLARGEفي الصيغة، واستخدام:
=TEXT(SUM(LARGE(--MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),ROW(INDIRECT("1:"&LEN(A1))))*10^(LEN(A1)-ROW(INDIRECT("1:"&LEN(A1))))),REPT("0",LEN(A1)))
تعمل هذه الصيغة بنفس الطريقة، ولكنها ترتّب الأرقام من الأكبر إلى الأصغر.
- في هذه الصيغ، تشيرA1 إلى الخلية التي تحتوي على الأرقام التي ترغب في ترتيبها. وإذا كانت بياناتك في خلية مختلفة، فما عليك سوى تحديث المرجع وفقًا لذلك.
- إذا ظهر خطأ #VALUE!، فتأكد من أن الخلية تحتوي على رقم واحد فقط، وخالية من المسافات أو أي أحرف أخرى.
- عند تطبيق هذه الطريقة على مجموعة بيانات كبيرة، تأكد من ضبط خيارات الحساب في نظامك على الوضع التلقائي، لضمان تحديث نتائج الصيغة تلقائيًا عند نسخ البيانات أو تعديلها.

افتح سحر إكسل مع KUTOOLS AI
- التنفيذ الذكي: نفّذ عمليات الخلايا، وحلّل البيانات، وأنشئ المخططات البيانية — كل ذلك بأوامر بسيطة.
- الصيغ المخصصة: أنشئ صيغًا مخصصة لتبسيط سير عملك.
- برمجة VBA: اكتب ونفّذ أكواد VBA بسلاسة تامة.
- تفسير الصيغ: افهم الصيغ المعقدة بسهولةٍ تامة.
- ترجمة النصوص: اكسر الحواجز اللغوية في جداولك الإلكترونية بسهولة.
ترتيب الأرقام داخل الخلايا باستخدام دالة معرّفة من قبل المستخدم
في بعض الحالات—مثل التعامل مع أرقام تزيد عن 15 رقمًا أو الحاجة إلى مرونة أكبر—تُعد الدالة المعرّفة من قبل المستخدم (UDF) بديلًا قويًّا. فهي توفر وسيلة فعّالة لأتمتة الترتيب داخل الخلايا، خاصةً عندما تتجاوز متطلباتك إمكانات صيغ Excel القياسية.
يُعدّ هذا الحل مثاليًا للمستخدمين الذين يتعاملون غالبًا مع أعمدة بيانات مستورَدة أو رموز مجمَّعة في خلايا فردية، حيث قد تكون خلاياهم طويلة وتحتاج الأرقام فيها إلى ترتيب متكرر.
إليك كيفية تنفيذه:
1. اضغط باستمرار علىALT + F11 لفتح نافذةMicrosoft Visual Basic for Applications (VBA).
2. في نافذة VBA، انقر علىإدراج > وحدة نمطية (Module)، ثم انسخ والصق الكود التالي في نافذة الوحدة النمطية الجديدة:
كود VBA: ترتيب الأرقام داخل الخلايا
Function SortNumsInCell(pNum As String, Optional pOrder As Boolean) As String
'UpdatebyExtendoffice
Dim xOutput As String
For i = 0 To 9
For j = 1 To UBound(VBA.Split(pNum, i))
xOutput = IIf(pOrder, i & xOutput, xOutput & i)
Next
Next
SortNumsInCell = xOutput
End Function
3. بعد لصق الكود، احفظ وأغلق محرر VBA. ثم عُد إلى ورقة العمل الخاصة بك، وفي خلية فارغة بجانب بياناتك (مثل B1 أو C1)، أدخل:
=sortnumsincell(A1)

4. اسحب مقبض التعبئة لتوسيع الدالة إلى الخلايا الأخرى حسب الحاجة. الآن، سيتم ترتيب جميع الأرقام داخل كل خلية مستهدَفة ترتيبًا تصاعديًّا كما هو موضح أدناه:

ملاحظة:إذا رغبت في ترتيب الأرقام بترتيب تنازلي، فأدخل الصيغة التالية بدلًا من ذلك:
=sortnumsincell(A1,1)
يشير المعامل الإضافي ()1) إلى أن الدالة يجب أن تُرتِّب النتائج ترتيبًا تنازليًّا.
يوفّر هذا الحل القائم على الدوال المعرّفة من قِبل المستخدم مرونةً ودقةً أكبر عند التعامل مع مجموعات البيانات الأكبر أو الأكثر تعقيدًا، ويساعد في تجنّب أخطاء الصيغ الشائعة الناتجة عن حدود عدد الأرقام.
إذا واجهت أخطاءً أثناء الترجمة (Compile Errors)، فتأكد من أن كود الوحدة النمطية قد لُصق بشكل صحيح، وأن اسم الدالة يتطابق تمامًا مع الصيغة المستخدمة في ورقة العمل.
ترتيب الأرقام المفصولة بفواصل داخل الخلايا باستخدام كود VBA
عندما تكون الأرقام داخل الخلية مفصولة بفواصل معيّنة—مثل الفواصل أو الفواصل المنقوطة أو حتى النقاط—قد لا تكون الحلول المبنية على الصيغ المدمجة كافية. في هذه الحالات، يُمكنك تطبيق كود VBA مخصّص لفرز الأرقام بكفاءة، بغض النظر عن عدد الخلايا التي تحتاج إلى معالجتها.
تشمل السيناريوهات القابلة للتطبيق القوائم المستوردة من قواعد البيانات، أو ردود الاستبيانات المجمَّعة، أو أي مجموعة بيانات يتم فيها تخزين القيم الرقمية في خلية واحدة ومفصَّلة بحرف ثابت.
اتبع الخطوات التالية لتشغيل كود VBA للترتيب:

1. اضغط علىALT + F11 لفتح نافذةMicrosoft Visual Basic for Applications.
2. انقر علىإدراج > وحدة نمطية (Module)، ثم الصق الكود أدناه في نافذة الوحدة النمطية:
كود VBA: ترتيب الأرقام المفصولة بفواصل داخل الخلايا
Sub SortNumsInRange()
'Update20140717Dim Rng As RangeDim WorkRng As RangeDim Arr As VariantOn Error Resume NextxTitleId = "KutoolsforExcel"
Set WorkRng = Application.SelectionSet WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Set objArrayList = CreateObject("System.Collections.ArrayList")
For Each Rng In WorkRng Arr = VBA.Split(Rng.Value, ",")
For i =0 To UBound(Arr)
xMin = i For j = i +1 To UBound(Arr)
If Arr(xMin) > Arr(j) Then xMin = j End If Next j If xMin <> i Then temp = Arr(i)
Arr(i) = Arr(xMin)
Arr(xMin) = temp End If Next i Rng.Value = VBA.Join(Arr, ",")
NextEnd Sub 3. لتنفيذ الكود، اضغط علىF5. سيظهر مربّع حوار يتيح لك تحديد النطاق الذي يحتوي على الخلايا التي تريد ترتيبها.

4. بعد النقر علىموافق (OK)للتأكيد، سيقوم الكود بترتيب الأرقام في جميع الخلايا المحددة ترتيبًا تصاعديًّا، وستُطبَّق التغييرات في مكانها دون التأثير على محتوى الخلايا الأخرى.
ملاحظة:إذا كانت أرقامك مفصولة بحرف آخر (مثل الفاصلة المنقوطة أو المسافة)، فما عليك سوى استبدال الفاصلة “،” فيSplit(Rng.Value, ",") وJoin(Arr, ",") بالفاصل الذي تختاره في كلا الموضعين داخل الكود.
هذا الكود يرتّب الأرقام بترتيب تصاعدي فقط. وللترتيب تنازليًا، قد تحتاج إلى تعديل منطق الترتيب في كود VBA. وعند استخدام VBA، احفظ دائمًا ملف عملك قبل تشغيل الكود، لأن التغييرات تُطبَّق فورًا ولا يمكن التراجع عنها عبر ميزة «التراجع» (Undo).
إذا احتوت الخلية على محتوى غير رقمي، فقد لا يُنتج الكود النتيجة المرجوة؛ لذا تأكد من فحص بياناتك بحثًا عن أي محتوى مختلط قبل التشغيل.
ترتيب الأرقام داخل الخلايا باستخدام ميزة الملء السريع (Flash Fill) في Excel
للمجموعات الصغيرة من البيانات أو عندما تتبع الأرقام داخل الخلية نمطًا يمكن التنبؤ به، توفّر ميزة الملء السريع (Flash Fill) في Excel حلاً سريعًا ويدويًّا. ويُعدّ هذا النهج فعّالًا بشكل خاص عندما تحتاج فقط إلى ترتيب الأرقام داخل بضع خلايا ذات هيكلٍ بسيط.
إليك كيفية استخدام الملء السريع (Flash Fill) لترتيب الأرقام داخل الخلايا:
1. في عمود جديد مجاور لبياناتك، اكتب يدويًا النسخة المرتبة من الأرقام الموجودة في الخلية الأولى (على سبيل المثال، إذا كانت الخلية A1 تحتوي على)8371، فاكتب1378 في الخلية B1).
2. حدد الخلية التالية في العمود نفسه، ثم ابدأ بكتابة النسخة المرتبة للإدخال التالي. بعد إدخال مثالين أو ثلاثة، اضغط علىCtrl + E (اختصار ملء الفلاش)، وسيتعرف Excel تلقائيًا على النمط ويسدّد باقي الخلايا وفقًا لمثال الترتيب الذي قدمته.
هذه الطريقة سريعة، لكنها تناسب القوائم القصيرة أو الحالات التي يكون فيها نمط البيانات منتظمًا جدًّا. ويتطلب استخدامها كتابة نتيجتين مرتبَتين على الأدنى ليتمكن Excel من اكتشاف التحويل المطلوب.
لا يعمل ملء الفلاش بشكل موثوق مع الأنماط المعقدة أو عندما تكون أرقامك مفصولة برموز خاصة. لذا، تأكد دائمًا من مراجعة النتائج المُنشأة تلقائيًّا للتحقق من دقتها.
ملاحظة: قد لا تكون هذه الطريقة فعّالة في جميع الحالات.
عند اختيار الطريقة المناسبة، ضع في اعتبارك بنية بياناتك (أرقام مفردة مقابل أرقام تحتوي فواصل)، وطول سلسلة البيانات، وعدد الخلايا التي تحتاج إلى معالجتها. فتُعد الطرق القائمة على الصيغ الخيار الأمثل للسلاسل القصيرة الخالية من الفواصل، بينما توفّر حلول VBA أو الدوال المعرّفة من المستخدم (UDF) مرونةً وقدرةً أكبر على التعامل مع الترتيبات المعقدة أو الطويلة.
تحقق مرتين من بياناتك الأصلية بحثًا عن مسافات خفية أو نصوص زائدة أو مشكلات تنسيق قبل تطبيق أي حل. وبعد ترتيب الأرقام، يُعدّ من الممارسات الجيدة التحقق من المخرجات عبر مقارنة بعض العيّنات مع المدخلات الأصلية.
إذا واجهت أي مشكلات، تأكد أولًا من أن إصدار Excel لديك يدعم صيغ الصفائف (يدعم Excel 2016 والإصدارات الأحدث ذلك بشكل أفضل)، وأن تكون وحدات الماكرو مفعّلة عند استخدام طرق VBA. وإذا لم يعمل الترتيب كما هو متوقع، جرّب تعديل الصيغة أو كود VBA ليتناسب بدقة مع هيكل خلاياك.
مقالات ذات صلة:
كيف يمكن ترتيب الأرقام التي تحتوي على شرطات في Excel؟
كيف تُرتِّب البيانات حسب أكثر القيم تكرارًا في Excel؟
كيفية ترتيب عنوان البريد الإلكتروني حسب النطاق (Domain) في Excel؟
كيف يمكن ترتيب الصفوف لعرض الخلايا الفارغة في الأعلى في Excel؟
أفضل أدوات إنتاجية Office
عزّز مهاراتك في Excel باستخدام Kutools لـ Excel، وعايش الكفاءة كما لم تفعل من قبل.تقدم Kutools لـ Excel أكثر من 300 ميزة متقدمة لتعزيز الإنتاجية ووقت الحفظ.انقر هنا للحصول على الميزة التي تحتاجها أكثر من غيرها...
يجلب Office Tab واجهة ذات علامات تبويب إلى Office، ويجعل عملك أسهل بكثير
- تمكّن من التحرير والقراءة باستخدام علامات التبويب في Word وExcel وPowerPoint، وكذلك في Publisher وAccess وVisio وProject.
- افتح وأنشئ مستندات متعددة في علامات تبويب جديدة داخل نفس النافذة، وليس في نوافذ منفصلة.
- يزيد إنتاجيتك بنسبة 50% ويوفّر لك مئات النقرات بالماوس كل يوم!
جميع إضافات Kutools في تثبيت واحد
Kutools for Office هي حزمةٌ تحتوي على إضافاتٍ مخصصة لتطبيقات Excel وWord وOutlook وPowerPoint، إلى جانب Office Tab Pro، مما يجعلها الخيار المثالي للفرق التي تعمل عبر تطبيقات Office.
- حزمة شاملة واحدة— إضافات Excel وWord وOutlook وPowerPoint + Office Tab Pro
- مثبّت واحد، ترخيص واحد— الإعداد خلال دقائق (جاهز لـ MSI)
- تعمل بشكل أفضل معًا— إنتاجية مُبسّطة عبر تطبيقات Office
- تجربة مجانية لمدة 30 يومًا بكامل الميزات— بدون تسجيل، ولا بطاقة ائتمان
- أفضل قيمة— وفّر مقارنةً بشراء كل إضافة على حدة