2.3 · دوال النصّ والتاريخ/الوقت

المستوى 2 · متوسّط: الدوال والبحث والتصفية

2.3دوال النصّ والتاريخ/الوقت

الهدف: تنظيف النصّ وتركيبه، وإجراء حسابات تواريخ موثوقة.
الوقت المقدّر: 13 دقيقة · قراءة ذاتية · إذا كان لديك 5 دقائق فقط: اقرأ «الأساسي في 30 ثانية» + المخطط.

الأساسي في 30 ثانية

  • استخراج ثم تركيب: LEFT/RIGHT/MID تقطع، و& وCONCAT تلصق — وTRIM تنظّف بينهما.
  • التاريخ رقم: النهاية − البداية = أيام، وTODAY() = اليوم الحالي — اعرض النتيجة كـ Number.
  • نظّف قبل التقاطع: المسافات وحالة الأحرف تُفشل XLOOKUP — TRIM + UPPER أولاً.

حالة مصغّرة متسلسلة — وسيم والمورّدون المكرّرون

يرى وسيم (2.2) عمليات XLOOKUP تُفشل مورّدين موجودين فعلاً: «SARL Atlas» بمسافتين، و«sarL atlas» بحروف صغيرة، وتواريخ استحقاق في نصّ ترفض أن تُحسَب. ينظّف: TRIM تزيل المسافات الطفيلية، وPROPER توحّد الحالة، فتنتبه تقاطعاته أخيراً. ثم يحسب التأخيرات: الاستحقاق ناقص اليوم بالأيام، وأقدمية المتأخّرات بـ DATEDIF. في 2.4 ستقود هذه التأخيرات المحسوبة ألوان التنبيه؛ وفي 2.5 سيحيا الكلّ داخل جدول منظَّم.

تكملة الخيط الناظم 2.2: تصبح بيانات وسيم نظيفة وقابلة للحساب — وتستمرّ في 2.4 و2.5.

1. استخراج النصّ وتركيبه

LEFT وRIGHT وMID تستخرج أجزاءً؛ وLEN تعدّ الأحرف؛ وTRIM تزيل المسافات الزائدة؛ وUPPER/LOWER/PROPER تغيّر حالة الأحرف. وللتركيب، معامل & أو CONCAT: =A2&" "&B2 يلصق الاسم واللقب. يبني وسيم رمز مورّد نظيفاً: الحرف الأول + اسم منظَّف + الولاية، وكلّه بحروف كبيرة.

2. التواريخ أرقام

التاريخ رقم يوم: لذا يمكننا الحساب به. =B2-A2 يعطي عدد أيام؛ و=TODAY() تُعيد تاريخ اليوم؛ وYEAR/MONTH/DAY تستخرج المكوّنات. وDATEDIF تحسب الفروق بالسنوات/الأشهر/الأيام: =DATEDIF(A2 ؛ TODAY() ؛ "y") لأقدمية بالسنوات. يحسب وسيم أيام التأخير = الاستحقاق − اليوم، ويعرض النتيجة بصيغة Number (وإلا عرض Excel تاريخاً زائفاً).

3. نظّف قبل التحليل

البيانات المستوردة غالباً «قذرة»: مسافات غير مرئية، حالة أحرف غير متّسقة، تواريخ في نصّ. المنعكس: TRIM للمسافات، وPROPER للحالة، وVALUE/DATEVALUE لإعادة تحويل الأرقام والتواريخ المخزَّنة كنصّ. ينظّف وسيم أسماء المورّدين قبل عمليات XLOOKUP (2.2): عمودان موحَّدان من الجانبين، وإلا بقي المفتاح «المتطابق» غير موجود. نظّف أولاً، وحلّل بعد ذلك.

خطأ شائع في الفهم: «طرح التواريخ عندي خاطئ، وExcel لا يعرف الحساب». بلى: التاريخ رقم، والطرح صحيح — لكن تنسيق الخلية الناتجة يكذب (موروث كـ Date). قاعدة وسيم: نتيجة حساب تواريخ → تنسيق Number؛ وتاريخ في نصّ → DATEVALUE أولاً؛ ومفتاح يفشل → TRIM من الجانبين قبل اتّهام الصيغة.
من الخام إلى القابل للحساب نظّف النصّ، وركّب بنظافة، واحسب التواريخ تنظيف (نصّ) TRIM، الحالة،VALUE/DATEVALUEتركيب (& / CONCAT) استخراجثم إعادة لصق نظيفحساب (تواريخ) النهاية −البداية = أيام، DATEDIF
نظّف النصّ، وركّب بنظافة، واحسب التواريخ
نص المخطط (SEO / قارئات الشاشة / الترجمة): 1) ينظّف وسيم: TRIM على أسماء المورّدين، وPROPER للحالة، وDATEVALUE للاستحقاقات الباقية في نصّ. 2) يركّب: LEFT للحرف الأول، و& لإعادة لصق رمز نظيف بحروف كبيرة. 3) يحسب: الاستحقاق − TODAY() بأيام التأخير (تنسيق Number)، وDATEDIF للأقدمية بالسنوات. الدرس: البيانات النظيفة تتقاطع دون خطأ، وتواريخ-أرقام تُحسَب.

🔎 مثال ملموس — 🔎 مثال ملموس — تأخّر دفع وسيم

الاستحقاق في B2؛ يحسب وسيم التأخّر ويبني رمزاً نظيفاً (الحرف الأول في A2، الاسم في C2):

=B2-TODAY()   → اعرضها بصيغة Number (الأيام المتبقّية)
=UPPER(LEFT(A2;1)) & "." & UPPER(TRIM(C2))
=DATEDIF(A2; TODAY(); "y")   → الأقدمية بالسنوات

القراءة: طرح التواريخ يعطي أياماً؛ وLEFT + TRIM + & يصنعان معرّفاً بلا مسافات خفية.

الدرس: نتيجة تواريخ معروضة كـ Date هي تنسيق يجب تصحيحه، لا حساب يجب رميه.

مفردات القسم

TRIM
تزيل مسافات البداية والنهاية والمسافات الداخلية المكرّرة: سلاح ضدّ مفاتيح «المتطابقة» التي تفشل.

مثال بسيط: ينظّف وسيم «SARL Atlas» قبل XLOOKUP.

ما ليس كذلك: تنسيق يلوّن الخلايا.

رد فعل: نظّف من الجانبين قبل التقاطع.

& / CONCAT
تركّبان عدة نصوص في سلسلة واحدة: =A2&" "&B2.

مثال بسيط: يلصق وسيم الحرف الأول والنقطة والاسم في رمز واحد.

ما ليس كذلك: الجمع + المخصّص للأرقام.

رد فعل: ركّب بـ &، لا بـ +.

TODAY
تُعيد تاريخ النظام، معاد حسابها عند كل فتح: مرجع التأخيرات والاستحقاقات.

مثال بسيط: يقارن وسيم كل استحقاق بـ TODAY().

ما ليس كذلك: تاريخ ثابت مكتوب يدوياً.

رد فعل: مرجع حيّ للمهل.

DATEDIF
الفرق بين تاريخين بالسنوات ("y") أو الأشهر ("m") أو الأيام ("d"): الأعمار والأقدميات.

مثال بسيط: يحسب وسيم أقدمية متأخّرة بـ =DATEDIF(A2;TODAY();"y").

ما ليس كذلك: طرح بسيط معروض كتاريخ.

رد فعل: الفروق التقويمية = DATEDIF.

في التطبيق — تطبيق عملي — نظّف ثم احسب

  1. نظّف عمود أسماء بـ TRIM + PROPER.
  2. ركّب رمزاً نظيفاً بـ LEFT و& (الحرف الأول + الاسم).
  3. احسب الأيام المتبقّية: =الاستحقاق-TODAY()، بتنسيق Number.
  4. احسب أقدمية بالسنوات بـ DATEDIF.
تحوّل نصّاً خاماً إلى بيانات نظيفة وتحسب بالتواريخ.

نصّ جاهز للقول — اشرح التنظيف (30 ث)

«كان مورّدونا يتكرّرون بسبب مسافات غير مرئية وحالات أحرف مختلفة: أنظّف كل شيء بـ TRIM وPROPER قبل التقاطع، فتنتبه عمليات البحث. والاستحقاقات أرقام حقيقية، فيُحسَب التأخّر وحده بالأيام. بيانات نظيفة أولاً، وتحليلات موثوقة بعد ذلك.»

قُلها وأنت تعرض تكرارات وسيم تندمج بعد التنظيف.

نموذج جاهز للنسخ — تنظيف + تواريخ

=TRIM(A2)
=PROPER(TRIM(A2))
=B2-TODAY()
=DATEDIF(A2; TODAY(); "y")

مفاتيح مكرّرة

«SARL Atlas» مقابل «sarL atlas»: يطبّق وسيم TRIM + UPPER من الجانبين فتنفدم التكرارات.

تاريخ في نصّ

استحقاق مستورد يرفض أن يُحسَب: يعيد وسيم تحويله بـ DATEVALUE، ثم يطرح عادةً.

تاريخ زائف كنتيجة

تأخّر يعرض «janv.-1900»: يعيد وسيم الخلية إلى تنسيق Number — كان الحساب صحيحاً.

رمز نظيف

تمييز كل مورّد برمز قصير: يدمج وسيم LEFT وTRIM وUPPER و& في صيغة واحدة.

✓ ممارسات جيدة

  • نظّف (TRIM، الحالة) قبل أيّ تقاطع.
  • ركّب بـ & (سريع) أو CONCAT.
  • تذكّر أن تاريخاً = رقم: النتيجة بتنسيق Number.

✗ أخطاء شائعة

  • الاعتقاد أن تاريخاً في نصّ يُحسَب (يلزم DATEVALUE).
  • نسيان المسافات غير المرئية التي تُفشل XLOOKUP.
  • الاستخراج بموضع ثابت (LEFT/RIGHT) على نصوص متغيّرة الأطوال.

النقاط الأساسية

  • LEFT/RIGHT/MID تستخرج؛ LEN تعدّ؛ TRIM تنظّف.
  • & وCONCAT تركّبان النصّ.
  • التاريخ رقم: النهاية − البداية = أيام؛ DATEDIF = الفروق.
  • نظّف قبل التحليل (مسافات، حالة، نصّ إلى رقم/تاريخ).

تحدّي 48 ساعة — طبّقه غداً

على عمود حقيقي (مورّدون، عملاء): TRIM + الحالة مطبّقان، ورمز مركَّب بـ &، ثم تأخّر بالأيام محسوب ومعروض كـ Number.

قائمة الخروج من القسم
  • أستطيع تنظيف نصّ (TRIM، الحالة) قبل أيّ تقاطع.
  • أعرف تركيب معرّفات نظيفة (LEFT، &، CONCAT).
  • أحسب بالتواريخ (طرح، TODAY، DATEDIF) بتنسيق Number.
تقييم ذاتي 1-5: هل تتقاطع مفاتيحي دون #N/A طفيلية؟هل تظهر نتائج تواريخي كأرقام؟

أسئلة شائعة

لماذا يُعطي طرح تواريخي تاريخاً بدل رقم؟

ورثت الخلية الناتجة تنسيق Date. والقيمة (عدد الأيام) صحيحة: اجعل الخلية بتنسيق Number لعرضها كعدد صحيح.

تفشل عمليات XLOOKUP على مفاتيح «متطابقة»؟

غالباً مسافات غير مرئية أو حالة أحرف مختلفة. طبّق TRIM (وربما UPPER) من الجانبين لتوحيدها قبل التقاطع.

تحقّق من فهمك

أيّ معامل يركّب محتوى خليتين نصّيتين؟

موارد إضافية (اختياري، للتعمّق أكثر)

اختبار المستوى 2أسئلة جديدة وأصعب للتحقق من مكتسباتك