افتراضي طريقة فصل الكلمة العربية عن الإنجليزية في خلية واحدة
عند وجود الكلمة العربية و الإنجليزية في خلية واحدة و نريد فصلها في خليتين منفصلتين تمام, و ذلك بهدف تصميم قاموس, هذا ما طلب مني, حيث كانت البيانات كالتالي :
A
3 Accountant المحاسب
4 Accountants المحاسبون
5 Audit Report تقرير المراجعة
6 Auditing المراجعة - تدقيق الحسابات
المطلوب أن يتم فصل الكلمة العربية في الخلية B و الكلمة الإنجليزية في الخلية C بحيث تكون النتيجة بالشكل التالي :
B C
3 المحاسب Accountant
4 المحاسبون Accountants
5 تقرير المراجعة Audit Report
6 المراجعة - تدقيق الحسابات Auditing
و لعمل ذلك كان يجب التفكير بطريقة تساعد على الإكسيل على التعرف على موقع بداية اول حرف عربي و من ثم يقوم بفصل الجزء العربي و كانت الدالة المناسبة هي الدالة
Code
حيث ان عمل هذه الدالة يقوم على إعادة رقم الحرف كما هو في نظام
Ascii
و الأحرف العربية تبدأ من رقم 192
و ربطها بالدالة
MID
بحيث نعرف نقطة البداية في فصل الكلمات , فكانت الدالة التالية :
__________________
و كما نرى لقد قمت بإستخدام الدالتين
ROW and INDIRECT
بهدف عمل تسلسل رقم حسب عدد احرف الكلمة داخل الخلية
و من ثم استخدمت الدالة
MID
مرة أخرى ذلك لكي يتشكل عندي مجموعة منفصل من الأحرف و لكي يسهل عمل الدالة
CODE
في معرف رقم كل حرف و التي ستلزمنا بشكل كبير عن عملية الفحص مع الدالة
IF
بحث اذا كان رقم الحرف اكبر او يساوي 192 فستقوم بتعويض الرقم 1 بدل منها و بذلك نحصل على صفيف من الرقم 0 و 1 و هنا يأتي دور الدالة
MATCH
التي ستبحث عن الرقم 1 في الصفيف لتعيد لنا موقعه ولكن لاحظ أننا إستخدمنا معيار البحث 0 و الذي يعني الوقوف عن ايجاد اول قيمة مطابقة لموضع البحث, و بعد ان يتم تحديد الموقع تكون بداية عمل الدالة
MID
بحيث سيتم عملية الفصل من الموقع الذي تم تحديده و حتى 255 حرف
و بهذا الخطوة نحصل على الكلمة العربية الموجودة داخل الخلية
و لا ننسى أن هذه معادلة صفيف يجب إدخالها بالضغط على
Ctrl+Shift+Enter
و الخطوة الثانية و التي تهدف للحصول على الكلمة الإنجليزية في الخلية
C3
استخدمنا المعادلة البسيطة التالية :
__________________
و هي ببساطة لبداية عملية الفصل من الشمال و لمعرفة عدد العناصر التي سنقتطعها نقوم بطرح عدد احرف الخلية الاصلية من عدد احرف الخلية التي تحتوي كلمة عربية
=============
أتمنى ان تستفيدو من شرح هذه الدالة
دمتم في حفظ الله
يحيى حسين
Excel MVP
A
3 Accountant المحاسب
4 Accountants المحاسبون
5 Audit Report تقرير المراجعة
6 Auditing المراجعة - تدقيق الحسابات
المطلوب أن يتم فصل الكلمة العربية في الخلية B و الكلمة الإنجليزية في الخلية C بحيث تكون النتيجة بالشكل التالي :
B C
3 المحاسب Accountant
4 المحاسبون Accountants
5 تقرير المراجعة Audit Report
6 المراجعة - تدقيق الحسابات Auditing
و لعمل ذلك كان يجب التفكير بطريقة تساعد على الإكسيل على التعرف على موقع بداية اول حرف عربي و من ثم يقوم بفصل الجزء العربي و كانت الدالة المناسبة هي الدالة
Code
حيث ان عمل هذه الدالة يقوم على إعادة رقم الحرف كما هو في نظام
Ascii
و الأحرف العربية تبدأ من رقم 192
و ربطها بالدالة
MID
بحيث نعرف نقطة البداية في فصل الكلمات , فكانت الدالة التالية :
كود PHP:
=MID(A3,MATCH(1,IF(CODE(MID(A3,ROW(INDIRECT("1:"&LEN(A3))),1))>=192,1),0),255)
و كما نرى لقد قمت بإستخدام الدالتين
ROW and INDIRECT
بهدف عمل تسلسل رقم حسب عدد احرف الكلمة داخل الخلية
و من ثم استخدمت الدالة
MID
مرة أخرى ذلك لكي يتشكل عندي مجموعة منفصل من الأحرف و لكي يسهل عمل الدالة
CODE
في معرف رقم كل حرف و التي ستلزمنا بشكل كبير عن عملية الفحص مع الدالة
IF
بحث اذا كان رقم الحرف اكبر او يساوي 192 فستقوم بتعويض الرقم 1 بدل منها و بذلك نحصل على صفيف من الرقم 0 و 1 و هنا يأتي دور الدالة
MATCH
التي ستبحث عن الرقم 1 في الصفيف لتعيد لنا موقعه ولكن لاحظ أننا إستخدمنا معيار البحث 0 و الذي يعني الوقوف عن ايجاد اول قيمة مطابقة لموضع البحث, و بعد ان يتم تحديد الموقع تكون بداية عمل الدالة
MID
بحيث سيتم عملية الفصل من الموقع الذي تم تحديده و حتى 255 حرف
و بهذا الخطوة نحصل على الكلمة العربية الموجودة داخل الخلية
و لا ننسى أن هذه معادلة صفيف يجب إدخالها بالضغط على
Ctrl+Shift+Enter
و الخطوة الثانية و التي تهدف للحصول على الكلمة الإنجليزية في الخلية
C3
استخدمنا المعادلة البسيطة التالية :
كود PHP:
=TRIM(LEFT(A3,LEN(A3)-LEN(B3)))
و هي ببساطة لبداية عملية الفصل من الشمال و لمعرفة عدد العناصر التي سنقتطعها نقوم بطرح عدد احرف الخلية الاصلية من عدد احرف الخلية التي تحتوي كلمة عربية
=============
أتمنى ان تستفيدو من شرح هذه الدالة
دمتم في حفظ الله
يحيى حسين
Excel MVP
0 التعليقات:
شكرا على التعليق