## 📝 دوال النصوص

دوال لقراءة النصوص والبحث فيها وتنظيفها وتحويلها.

| الدالة          | الوصف                                                                                 | الصياغة                                               | المعاملات                                                                                                                          | مثال                                                               |
| --------------- | ------------------------------------------------------------------------------------- | ----------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------ |
| `LEFT`          | يستخرج عددًا محددًا من الأحرف بدءًا من يسار النص.                                     | `LEFT(Text, Number)`                                  | **Text** — النص المصدر.<br>**Number** — عدد الأحرف المطلوب استخراجها من اليسار.                                                    | `LEFT('abcde', 2) = 'ab'`                                          |
| `RIGHT`         | يستخرج عددًا محددًا من الأحرف بدءًا من يمين النص.                                     | `RIGHT(Text, Number)`                                 | **Text** — النص المصدر.<br>**Number** — عدد الأحرف المطلوب استخراجها من اليمين.                                                    | `RIGHT('abcde', 2) = 'de'`                                         |
| `LEN`           | يُرجع عدد الأحرف في نص معين.                                                          | `LEN(Text)`                                           | **Text** — النص المراد قياسه.                                                                                                      | `LEN('abc') = 3`                                                   |
| `LOWER`         | يحوّل النص إلى أحرف صغيرة (lowercase).                                                | `LOWER(Text)`                                         | **Text** — النص المراد تحويله.                                                                                                     | `LOWER('ArrAnge') = 'arrange'`                                     |
| `UPPER`         | يحوّل النص إلى أحرف كبيرة (UPPERCASE).                                                | `UPPER(Text)`                                         | **Text** — النص المراد تحويله.                                                                                                     | `UPPER('aPpLe') = 'APPLE'`                                         |
| `TRIM`          | يزيل المسافات الفارغة من بداية النص ونهايته.                                          | `TRIM(Text)`                                          | **Text** — النص المراد تنظيفه.                                                                                                     | `TRIM(' abc ') = 'abc'`                                            |
| `REVERSE`       | يعكس ترتيب أحرف النص.                                                                 | `REVERSE(Text)`                                       | **Text** — النص المراد عكسه.                                                                                                       | `REVERSE('abc') = 'cba'`                                           |
| `SEARCH`        | يُرجع موضع أول حرف يظهر عنده نص البحث داخل النص المصدر؛ ويُرجع `0` إذا لم يُعثر عليه. | `SEARCH(Text, Search Text)`                           | **Text** — النص المراد البحث فيه.<br>**Search Text** — النص المراد البحث عنه.                                                      | `SEARCH('a b c test', 'test') = 7`<br>`SEARCH('none', 'test') = 0` |
| `REPLACE`       | يبحث عن جزء من نص داخل سلسلة نصية ويستبدل كل تكرار له بنص آخر.                        | `REPLACE(Source Text, Search Text, Replacement Text)` | **Source Text** — النص الأصلي.<br>**Search Text** — النص المراد إيجاده.<br>**Replacement Text** — النص البديل.                     | `REPLACE('test a b c test', 'test', '1') = '1 a b c 1'`            |
| `REGEX_REPLACE` | يستبدل كل تطابق لنمط تعبير نمطي (regex) داخل النص بنص بديل.                           | `REGEX_REPLACE(Text, Pattern, Replacement)`           | **Text** — النص الأصلي.<br>**Pattern** — التعبير النمطي المراد مطابقته.<br>**Replacement** — النص المراد إدراجه بدلًا من كل تطابق. | `REGEX_REPLACE('abc', 'a', '1') = '1bc'`                           |
| `T`             | يُرجع القيمة إذا كانت نصًا؛ ويُرجع قيمة فارغة إذا لم تكن كذلك.                        | `T(Value)`                                            | **Value** — القيمة المراد فحصها.                                                                                                   | `T(10) = `(فارغ)<br>`T('Hello') = 'Hello'`                         |
| `TOTEXT`        | يحوّل قيمة (رقم، تاريخ، قيمة منطقية، إلخ) إلى نص.                                     | `TOTEXT(Value)`                                       | **Value** — القيمة المراد تحويلها.                                                                                                 | `TOTEXT(10) = '10'`                                                |

---

## 


