دالة استخراج عدد من الحروف أو الأرقام من وسط الخلية (Excel & Google Sheets)

في هذا الدليل العملي سنتعلم كيف نُستَخدم دالة MID (أو بدائلها) لاستخراج عدد معين من الحروف أو الأرقام من منتصف نص داخل خلية. سنغطي Excel (كل الإصدارات) وGoogle Sheets، نتناول حالات المواقع الثابتة والمتغيرة، استخدام البحث FIND/SEARCH، استخراج أرقام باستخدام REGEX وTEXT functions، حلول بدون كود، وPower Query للمجموعات الكبيرة.

1 — الدالة الأساسية: MID (معنى ومكوّنات الصيغة)

الصيغة العامة في Excel وGoogle Sheets:

=MID(text, start_num, num_chars)
  • text: الخلية أو النص المصدر (مثلاً A2 أو "ABC123XYZ").
  • start_num: موضع أول حرف تريد استخراجه (1 تعني الحرف الأول).
  • num_chars: عدد الحروف/الأرقام التي تريد استخراجها.

مثال بسيط:

=MID("Invoice-2023-045",9,3)  --> "202"
(هنا بدأنا من الحرف التاسع وأخذنا 3 حروف.)

2 — أمثلة عملية وحالات استخدام

حالة A — موضع ثابت

إذا كان لديك نص دائمًا بنفس البنية مثل "ID-12345-XYZ" وأردت استخراج الأرقام من الموضع الثابت:

=MID(A2,4,5)  // إذا كانت A2 = "ID-12345-XYZ" النتيجة "12345"

حالة B — موقع متغير (اعتمادًا على فاصل مثل "-")

إذا كانت أجزاء النص مقسومة بفاصل وتريد استخراج الجزء الواقع بين فاصلين، يمكنك استخدام FIND أو SEARCH لإيجاد موضع الفاصل ثم حساب البدء:

=MID(A2, FIND("-",A2)+1, FIND("-",A2, FIND("-",A2)+1) - FIND("-",A2) -1 )

تفسير سريع: نبحث عن أول "-" ثم الثاني. الفرق بين موضعيهما ناقص 1 يعطي طول الجزء بينهما.

حالة C — استخراج عدد من وسط سلسلة حيث طول الجزء المراد معرفته من نهاية أو بداية

مثال: النص "ABC2023XYZ" وأردت آخر 6 أحرف بدءًا من منتصف: ابدأ بحساب الطول ثم استخدم MID أو RIGHT حسب الحاجة.

=MID(A2, 4, 6)   // يبدأ من الحرف 4 ويأخذ 6 أحرف

حالة D — استخراج أرقام فقط من منتصف خليّة (إذا النص يحتوي حروف وأرقام مختلطة)

في Excel (دون REGEX) تحتاج صيغ أطول أو Power Query. في Google Sheets استخدم REGEXEXTRACT:

Google Sheets:
=REGEXEXTRACT(A2, "\d+") // يلتقط أول سلسلة أرقام متتالية

3 — استخدام REGEX في Google Sheets لاستخراج أرقام/نصوص من وسط الخلية

أمثلة مفيدة:

  • استخراج أول مجموعة أرقام: =REGEXEXTRACT(A2,"\d+")
  • استخراج بين قوسين: =REGEXEXTRACT(A2,"\((.*?)\)")
  • استخراج نص بين كلمتين محددتين: =REGEXEXTRACT(A2,"start(.*)end")

ملاحظة: Google Sheets يستخدم تعابير نمطية مشابهة للـ RE2، فاحرص على الهروب Backslashes بشكل صحيح في الصيغ.

4 — حلول متقدمة في Excel

استخدام TEXTBEFORE / TEXTAFTER (Office 365)

في Excel الأحدث يمكنك تبسيط الأمور:

=TEXTBEFORE(TEXTAFTER(A2,"-"),"-")  // يعادل أخذ الجزء بين الفاصلتين

أسرع وأكثر وضوحًا من استخدام MID+FIND المركّب.

Flash Fill (التعبئة الذكية)

إذا كنت تتعامل مع قائمة وتستخرج نفس النمط يدويًا لبضع صفوف، ابدأ بكتابة النتيجة المرغوبة في العمود المجاور، ثم اختر Home → Fill → Flash Fill أو اضغط Ctrl+E. Excel سيحاول تعلّم النمط وتطبيقه على بقية الصفوف.

Power Query (لجداول كبيرة ومعقّدة)

في حالة البيانات الكبيرة أو الحاجة لتكرار عملية استخراج بانتظام، استخدم Power Query (Get & Transform) — استورد الجدول، استخدم خيارات Split Column by Delimiter أو Column From Examples لاستخراج الجزء المطلوب ثم حمل النتيجة إلى ورقة جديدة.

5 — جدول ملخّص: أي طريقة تختار بحسب الحالة

الحالةالطريقة الموصى بهاسهولةقوة/مرونة
موضع ثابت MID(start,num) سهل جيد
جزء بين فاصلين MID + FIND / TEXTBEFORE+TEXTAFTER متوسط جيد جداً
استخراج أرقام متتالية Google: REGEXEXTRACT / Excel: Power Query أو صيغة مع SUBSTITUTE+TEXTJOIN متوسط قوي (REGEX/PowerQuery أقوى)
جداول كبيرة ومتكررة Power Query / VBA أصعب عالي

6 — نصائح سريعة وتصحيح الأخطاء الشائعة

  • تأكد أن start_num في MID ليس أصغر من 1 ولا أكبر من طول النص (LEN(text)).
  • في Excel استخدم FIND للحساسية لحالة الأحرف أو SEARCH لتجاهل حساسية الأحرف.
  • عند استخدام REGEX في Google Sheets، اختبر التعبير على أمثلة لتتجنب استخراج غير المرغوب.
  • للتعامل مع خانات فارغة تأكد من حماية الصيغة: =IF(A2="","",MID(...)).
  • لا تنسَ استخدام TRIM لإزالة الفراغات غير المرغوبة قبل الحسابات.

الأسئلة الشائعة (FAQ)

ما الفرق بين MID وLEFT وRIGHT؟

LEFT وRIGHT يستخرجان من البداية أو النهاية على التوالي. MID يستخرج من منتصف النص بدءًا من موضع محدد.

كيف أتعامل مع نص لا يحتوي الفاصل المطلوب؟

ضع شرطًا يتحقق بوجود الفاصل: =IF(ISERROR(FIND("- ",A2)),"", ... ) أو استخدم IFERROR حول الصيغة لإظهار رسالة بديلة.

هل يمكن استخراج أرقام فقط في Excel بدون Power Query؟

نعم لكن الصيغة قد تكون معقدة. خيار أسهل: استخدم Power Query أو كتابة دالة VBA صغيرة. في Google Sheets REGEXEXTRACT يسهل المهمة.

مصادر ومراجع موثوقة




حجم الخط
+
16
-
تباعد السطور
+
2
-