تنفيذ شرط محدد إذا تضمنت الخلية على كلمة محددة

مجهول
2024-08-12T12:52:58+00:00

اعمل على ملف اكسل لحساب الكميات، و واجهتني مشكلتان مرتبطتان ببعضهما البعض:

المشكلة الأولى:

في العمود C يتم كتابة الوحدة (م او م² او م³) تلقائيا بواسطة الصيغة الموضحة في الصورة ادناه.

المشكلة: في الخلية C8 الخاص بوحدة إجمالي القيم السابقة لم يتم كتابة اي شي و أريد أن تظهر نفس قيمة الخلية C7.

{في الخلية C14 قمت بكتابة الوحدة يدويا}.

ما هو التعديل الذي يجب أن أقوم به في هذه الصيغة حتى تظهر نفس قيمة الخلية C7 عندما يحتوي (او يتضمن) العمود B كلمة (إجمالي) بدون الإخلال بالشروط السابقة ؟

─────────────────────────────────

المشكلة الثانية:

العمود H خاص بظهور الناتج وفقا للصيغة التالية:

if(product(D3:G3)=0," ",product(D3:G3))

المشكلة: في الخلية H8 يظهر مجموع القيم السابقة وفقا للصيغة الموضحة في الصورة ادناه و التي قمت بكتابتها بعد حذف الصيغة (if,product).

اريد كتابة صيغة تجمع بين الصيغتين (if,product) و (sum) لتقوم بحساب مجموع القيم السابقة عندما يتضمن العمود B كلمة (إجمالي) و بخلاف ذلك يقوم بعملية الضرب المعتادة.

حتى إذا كان لابد من استخدام VBA لحل هذه الامشكلة فلا بأس بذلك

Microsoft 365 وOffice | Excel | غير ذلك | Windows

سؤال مؤمّن. تم ترحيل هذا السؤال من مجتمع دعم Microsoft. يمكنك التصويت على إذا ما كان مفيدًا أم لا، ولكن لا يمكنك إضافة تعليقات أو ردود أو متابعة السؤال.

0 تعليقات ليست هناك تعليقات
الإجابة مقبولة بواسطة كاتب السؤال
مجهول
2024-08-13T05:56:05+00:00

تمت ترجمة هذه الاستجابة تلقائيا. ونتيجة لذلك، قد تكون هناك أخطاء نحوية أو صيغ غريبة.

مرحبا,أحمد فتح الرحمن

شكرا لك على استخدام منتجات Microsoft ونشرها في المجتمع.

يمكنك استخدام الدالة SEARCH لكل من سؤاليك الأول والثاني ، مثل سؤالك الأول بالصيغة التالية:

=IF(ISNUMBER(SEARCH("Total", B8)), C7, IF(AND(D8<>"",COUNT(E8:G8)=0),"عدد",IF(COUNT(E8:G8)=3,"م³",IF(COUNT(E8:G8)=2,"م²",IF(COUNT(E8:G8)=1,"م","")))))

إذا كانت الخلية B8 تحتوي على ملخص، فستعرض الخلية C8 محتويات C7.

المشكلة الثانية هي نفسها.

آمل أن تساعدك المعلومات الواردة أعلاه. لا تتردد في إرسال رسالة إذا كنت بحاجة إلى مزيد من المساعدة.

أطيب الأمنيات

ايدن سي - MSFT |أخصائي دعم مجتمع مايكروسوفت

هل كانت هذه الإجابة مفيدة؟

شخص واحد وجد هذه الإجابة مفيدة.
0 تعليقات ليست هناك تعليقات

6 من الإجابات الإضافية

فرز حسب: الأكثر فائدة
  1. مجهول
    2024-08-14T12:55:08+00:00

    تمت ترجمة هذه الاستجابة تلقائيا. ونتيجة لذلك، قد تكون هناك أخطاء نحوية أو صيغ غريبة.

    مرحبا,  أحمد فتح الرحمن

    يمكنك استخدام الدالة MATCH( ، على سبيل المثال:

    MATCH(TRUE,ISBLANK(H1:H14),0)
    

    يشير هذا إلى موقع الخلية الفارغة الأولى لأعلى من الخلية الحالية

    ثم استخدم الدالة OFFSET ، على سبيل المثال:

    (OFFSET(H14,-MATCH(TRUE,ISBLANK(H1:H14),0),0,MATCH(TRUE,ISBLANK(H1:H14),0))
    

    وظيفة OFFSET لتحديد نطاق الخلايا الفارغة للخلية الحالية ثم تلخيصها

    الوظيفتان المذكورتان أعلاه يمكنك استخدامهما كمرجع ، وليس بالضرورة أن تنطبقا تماما على موقفك.

    أطيب الأمنيات

    ايدن سي - MSFT |أخصائي دعم مجتمع مايكروسوفت

    هل كانت هذه الإجابة مفيدة؟

    0 تعليقات ليست هناك تعليقات
  2. مجهول
    2024-08-14T06:23:50+00:00

    أما بخصوص المشكلة الثانية وجدت لها نصف حل (حل به مشكلة اخرى)

    حاولت كتابة الصيغة التالية في الخلية H14:

    صورة

    شرح الصيغة:

    يتأكد الإكسل من وجود شرطين و هما ان الخلايا في النطاق D14:G14 خالية من اي قيم و أن الخلية B14 تحتوي على كلمة إجمالي، إذا تحقق الشرطان يتم جمع قيم الخلايا H10:H13، إذا لم يتحقق الشرطان معا يتم إجراء عملية الضرب.

    لكن المشكلة هي في نطاق الجمع SUM(H10:H13) المكتوب في الصيغة في الصورة اعلاه و المشكلة هي أن هذا النطاق لا يجب يكون ثابت لأنه احيانا احتاج لجمع نطاق يتكون من 5 خلايا او 7 حلايا او 3 خلايا او اكثر او اقل (النطاق غير ثابت كما في الصورة التالية)

    صورة
    هذه الصيغة تعمل جيدا عند وجود صف واحد فقط مثل الخلية H23 ناتجها صحيح لأن الشرط الأول (count = 0) لم يتحقق فيتم إجراء عملية الضرب.

    تلميح لحل المشكلة:

    يمكن ملاحظة أن النطاق المراد جمعه يوجد في اعلاه خلية فارغة.

    هل يمكن التحكم في هذا النطاق بحيث يمتد لأعلى إلى أن يصل لهذه الخلية الفارغة؟

    هل كانت هذه الإجابة مفيدة؟

    0 تعليقات ليست هناك تعليقات
  3. مجهول
    2024-08-14T05:30:27+00:00

    تمت ترجمة هذه الاستجابة تلقائيا. ونتيجة لذلك، قد تكون هناك أخطاء نحوية أو صيغ غريبة.

    مرحبا, أحمد فتح الرحمن

    سعيد لمساعدتك في حل مشكلتك.

    فيما يتعلق بكيفية كتابة ² و ³ ، إذا كنت من مستخدمي Windows ، فيمكنك الضغط باستمرار على Alt + 0178 لكتابة ² ثم Alt + 0179 لكتابة ³.

    لمساعدة العملاء الآخرين الذين قد يواجهون نفس المشكلة ، يرجى تحديد "نعم" أسفل المنشور الذي يقدم لك حلا. سيؤدي هذا إلى تسليط الضوء على المعلومات للعملاء الآخرين. شاكرين لكم حسن تعاونكم.

    أطيب الأمنيات

    ايدن سي - MSFT |أخصائي دعم مجتمع مايكروسوفت

    هل كانت هذه الإجابة مفيدة؟

    0 تعليقات ليست هناك تعليقات
  4. مجهول
    2024-08-14T03:39:47+00:00

    اولا اريد ان استشيرك حول كيف اكتب ² و ³ في شريط الصيغة مباشرة بدون استخدام دالة char التي استخدمتها.

    و ثانيا شكرا لك على المساعدة تم حل المشكلة الأولى بهذه الصيغ،لكن اضفت إليها بعض التعديل كالتالي:

    الصيغة تتحقق اولا من وجود كلمة إجمالي ثم تأخذ الخلية نفس ناتج الخلية اعلاها و هذا يعطي نتيجة خاطئة إذا وجد صف واحد فقط يحتوى كلمة اجمالي و فيه تم إجراء عملية الضرب و اعلاه لا يوجد شيء مثل الخلية C23 الصورة التالية:

    لحل هذه المشكلة جعلت الاكسل اولا يتحقق من عدد الخلايا و يعطي الناتج كما كان في السابق و إذا كانت كانت كلها false يتحقق من شرط دالة if التي اضفتها اخر شيء التي تقوم بالبحث عن كلمة إجمالي في العمود B23. كما موضح في الصورة التالية:

    و بعدها قمت بتعميم هذه الصيغة على كامل العمود C

    هل كانت هذه الإجابة مفيدة؟

    0 تعليقات ليست هناك تعليقات