اعلن هنا
أكاديمية الصقر للتدريب
أعلن هنا
أعلن هنا
صفحتنا على الفيس بوك
أعلن هنا



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





استخراج القيم الفريدة في عمودين وجمع الإجمالي باستخدام كائن القاموس

السلام عليكم ورحمة الله وبركاته إخواني وأحبابي في الله ... أعود إليكم بعد طول غياب ، بموضوع دسم ومتقدم بعض الشيء ، وهو ..



23-02-2018 04:09 مساء
YasserKhalil
menu_open عضوية موثقة
مراقب عام
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 3
المشاركات : 3403
الجنس : ذكر
تاريخ الميلاد : 1-10-1978
الدعوات : 11
يتابعهم : 0
يتابعونه : 272
قوة السمعة : 9429
الاعجاب : 3200
 offline 
السلام عليكم ورحمة الله وبركاته

إخواني وأحبابي في الله ...

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

** ندخل في الموضوع وإن شاء الله أحاول أبسط الموضوع على قدر استطاعتي ، والنقطة اللي مش هتكون واضحة ممكن تسألوا عليها في التعليقات (دا لو حد عبرني أصلاً وقرا الموضوع)  rolleyes

** المعطيات : أهم شيء في أي مشكلة إنك تتعرف على أم عطيات (متفهمنيش غلط .. دي أم عطيات ست محترمة وكيوت جداً) >> المعطيات ومعرفة المشكلة بتفاصيلها بتمثل في نظري 90 % من حل المشكلة ، لأنك بمعرفة التفاصيل هتقدر تحدد هدفك وتقدر تحط خطة لحل المشكلة
وزي ما اتعودنا الصورة أفضل من ألف كلمة .. عشان كدا أنا لونت البيانات الخام بألوان عشان تقدر تفهم المطلوب بشكل واضح 
MjkzNzc3MQ4848001

زي ما إحنا شايفين الألوان في 3 أعمدة وهي دي الأعمدة اللي عليها العين (يعني دي الأعمدة اللي من خلالها هنخرج النتائج .. ونطلع القماش منها) .. الأعمدة دي هي العمود C (العمود الثالث) - والعمود H (العمود الثامن) - والعمود M (العمود الثالث عشر)

المطلوب نستخرج القيم الغير مكررة من عمودين (اللي هما C و H ) >> والقيم اللي تطلع هتكون موجودة في كذا صف ومطلوب نجمع القيم الخاصة بيهم في العمود M
 لو كلامي مش واضح ممكن تبص في الرسوم الموجودة على يمين البيانات وإنت هتفهم التفاصيل أكتر ... أسيبك كام دقيقة تبص في الرسومات بس متسرحش كتير يا بهير  cool

** بعد ما اتعرفنا على أم عطيات ، نتعرف على المخرجات (النتايج المطلوبة هيكون شكلها عامل إزاي) >> اختصاراً للوقت آدي النتايج في صورة

NDc1MTkxMQ1313002
** بعد ما اتعرفنا على المعطيات والمخرجات نبدأ في وضع استراتيجة للحل .. أول شيء ممكن تفكر فيه لما تسمع كلمة قيم غير مكررة (قيم فريدة) ييجي في دماغك الكائن (القاموس) أو اللي اسمه بالإنجليزي Dictionary
[بالمناسبة فريدة دي تبقا مرات عم خالة الست أم عطيات اللي اتكلمنا عليها من بدري ، بس أنا مش بحب أتكلم على حد ودا واضح جداً زي ما إنتو شايفين]

القيم الفريدة المطلوب استخراجها يا مستر إسلام موجودة في عمودين مش عمود واحد (مفيش مشكلة على الإطلاق .. يبقا التفكير يقولك إنك تخزن القيم الموجودة في العمودين في متغير واحد) .. ولو كانت القيم المطلوب استخراجها بدون تكرار في 3 أعمدة أو أكتر هتكون نفس الفكرة موجودة ...
يعني تخزن القيم المطلوبة في الأعمدة دي في متغير واحد بس عشان تقدر تتعامل معاه
بالمثال يتضح المثال : لما نبص على القيمة 500 في العمود التالت ، ونبص على القيمة A في العمود التامن هنلاقي القيم دي اتكررت كام مرة ؟ (بص وارجع تاني) >> الإجابة : اتكررت 3 مرات ، إحنا بقا مع وجود الكائن المسمى القاموس ده هنخزن القيمة دي مرة واحدة وبس .. 
طيب والخطوة التالية إننا نجمع العمود رقم 13 في كل مرة نعدي على نفس القيم المتكررة دي ، فيكون الناتج في المثال ده هو 10 + 15 + 2 يعني الإجمالي يساوي 27
-- دا كان مثال واحد بس عشان نفهم استراتيجية العمل 

** آخر حاجة هتعملها يا بطل إنك تبدأ في صياغة الأكواد ، وأسيبكم تسرحوا مع الكود بالشرح المفصل الممل (وأنا عارف إن مفيش حد هيقرا الشرح .. بس أديني بعمل اللي عليا والله المستعان)
الكود يوضع في موديول عادي ، والنتائج هتكون في ورقة العمل الثانية بدايةً من الخلية C2 ...

Sub Unique_In_Two_Columns_SUM_Total_By_Dictionary_Tutorial()
    'متغير لورقة العمل التي تحتوي على البيانات الخام
    Dim ws          As Worksheet
    
    'متغير لورقة العمل التي ستوضع فيها النتائج
    Dim sh          As Worksheet
    
    'كائن القاموس يستخدم لاستخراج القيم الفريدة
    Dim dic         As Object
    
    'متغير يحمل مصفوفة البيانات
    Dim a           As Variant
    
    'متغير نصي للقيم المطلوب اختبار ما إذا كانت مكررة أو لا
    Dim s           As String
    
    'متغير يستخدم في الحلقة التكرارية لصفوف مصفوفة البيانات
    Dim i           As Long

    '--------------------------------------------------------------------------------
    
    '[Sheet1] ليساوي ورقة العمل المسماة [ws] تعيين قيمة للمتغير
    Set ws = ThisWorkbook.Sheets("Sheet1")
    
    '[Sheet2] ليساوي ورقة العمل المسماة [sh] تعيين قيمة للمتغير
    Set sh = ThisWorkbook.Sheets("Sheet2")






    'وإنشاء كائن القاموس والذي يفيد في استخراج القيم الفريدة [dic] تعيين قيمة للمتغير
    Set dic = CreateObject("scripting.dictionary")
    
    'ليتم تخزين البيانات في النطاق المذكور داخل مصفوفة [a] تعيين قيمة للمتغير
    '[M] وينتهي عند آخر خلية في العمود [A2] والنطاق يبدأ من الخلية
    'والرقم 3 يمثل رقم آخر صف في العمود الثالث أو يمكن الاعتماد على أي عمود
    a = ws.Range("A2:M" & ws.Cells(Rows.Count, 3).End(xlUp).Row).Value
    
    '--------------------------------------------------------------------------------
    
    'حلقة تكرارية من أول صف داخل مصفوفة البيانات لآخر صف داخلها
    For i = LBound(a, 1) To UBound(a, 1)
    
        '[Tab] تخزين القيمة في العمود الثالث والعمود الثامن داخل المصفوفة وبينها
        'أو أي فاصل بينهما وذلك للتمييز فقط ، وهذين العمودين مطلوب استخراج القيم
        '[500    A] الفريدة أو الغير مكررة لهما - على سبيل المثال
        s = a(i, 3) & vbTab & a(i, 8)
        
        'موجودة داخل عناصر القاموس أو غير موجودة [s] معرفة ما إذا كانت قيمة المتغير
        'وذلك للتعامل مع القيم الفريدة أو الغير مكررة فقط
        'إذا كان العنصر غير موجود في القاموس من قبل يتم إنشاء سطر له داخل القاموس
        'وفي هذا السطر سيتم تخزين النتائج داخل مصفوفة أحادية مكونة من 3 أجزاء
        'والثلاثة أجزاء هي عدد الأعمدة المطلوبة للشكل النهائي للنتيجة المرجوة
        'الجزء الأول سيكون مخصص للعمود الثالث ، والجزء الثاني مخصص للعمود الثامن
        'أما الجزء الثالث سيكون حاصل جمع القيم الموجودة في العمود الثالث عشر
        'وبما أن هذا الجزء في أول مرة يكون فارغ وضعت القيمة صفر
        If Not dic.Exists(s) Then dic(s) = Array(, , 0)
        
        'في هذا السطر يتم تعبئة المصفوفة الأحادية التي شرحنا أجزائها
        'حيث في الجزء الأول يتم وضع قيمة العمود الثالث داخل المصفوفة
        'وفي الجزء الثاني يتم وضع قيمة العمود الثامن داخل المصفوفة
        'وفي الجزء الثالث يتم جمع قيمة العمود الثالث عشر مضافاً للقيمة
        'الموجودة مسبقاً في القاموس ، وعلى سبيل المثال في أول مرة يكون
        'الجزء الثالث في المصفوفة الأحادية يساوي صفر ثم يضاف إليه
        'القيمة الموجودة في العمود الثالث عشر ، وعندما يتكرر نفس
        'العنصر مرة أخرى يتم إضافة القيمة الموجودة في العمود الثالث عشر
        'مضافاً إليها القيمة السابقة التي تم تخزينها من قبل
        'يمثل الجزء الثالث داخل المصفوفة الأحادية [dic(s)(2)] والرقم 2 في هذا الجزء
        'حيث أن المصفوفة الأحادية تبدأ رقم الفهرس بصفر لذا رقم الفهرس 2 يعبر عن
        'الجزء رقم 3 داخل المصفوفة الأحادية
        dic(s) = Array(a(i, 3), a(i, 8), dic(s)(2) + a(i, 13))
        
    'الانتقال للصف التالي داخل مصفوفة البيانات
    Next i

    'في ورقة النتائج توضع عناوين للنتائج للأعمدة الثلاثة
    sh.Range("C1").Resize(1, 3).Value = Array("Dia", "Section Depth Type", "L Install Pipe")
    
    'بامتداد عدد عناصر القاموس وهي [C2] وأخيراً في ورقة النتائج في الخلية
    'تمثل عدد العناصر الغير مكررة وهذا الجزء سيمثل عدد الصفوف للنتائج
    'وبامتداد ثلاثة أعمدة أي ستكون النتائج في ثلاثة أعمدة
    'مرتين لضبط النتائج بحيث تظهر بشكل منضبط [Transpose] تم استخدام الدالة
    'ثم توضع العناصر الموجودة داخل القاموس في ورقة العمل
    sh.Range("C2").Resize(dic.Count, 3).Value = Application.Transpose(Application.Transpose(dic.items))
End Sub


وأخيراً تحميل الملف المرفق
لمشاهدة الروابط يلزمك التسجيل في أكاديمية الصقر للتدريب
كان معكم أخوكم / ياسر خليل أبو البراء ، من منتدى أكاديمية الصقر للتدريب ، من على قهوة أم عطيات (الحقيني بواحد شاي في الخمسينة أحااااااااااااجة 121 wink_3

وفقني الله وإياكم لكل خير
والسلام عليكم ورحمة الله وبركاته
 
 


أثارت هذه المشاركة إعجاب: Eslam Abdullah، محمد أبو عبدو، abdulwahed catran، Yasser Elaraby، بليغ البتول، nyfmpha، زيزو العجوز، محمد الدسوقى، الصقر، مالك ماريه، احمد2004،





23-02-2018 04:40 مساء
مشاهدة مشاركة منفردة [1]
Eslam Abdullah
menu_open
مشرف قسم الاكسيل
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 03-10-2017
رقم العضوية : 852
المشاركات : 660
الجنس : ذكر
تاريخ الميلاد : 1-9-1995
الدعوات : 2
يتابعهم : 3
يتابعونه : 43
قوة السمعة : 4119
الاعجاب : 1118
 offline 
look/images/icons/i1.gif استخراج القيم الفريدة في عمودين وجمع الإجمالي باستخدام كائن القاموس
الله ينور أستاذنا , ايه الحلاوه دى 3

أثارت هذه المشاركة إعجاب: YasserKhalil،




23-02-2018 04:50 مساء
مشاهدة مشاركة منفردة [2]
YasserKhalil
menu_open عضوية موثقة
مراقب عام
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 3
المشاركات : 3403
الجنس : ذكر
تاريخ الميلاد : 1-10-1978
الدعوات : 11
يتابعهم : 0
يتابعونه : 272
قوة السمعة : 9429
الاعجاب : 3200
 offline 
look/images/icons/i1.gif استخراج القيم الفريدة في عمودين وجمع الإجمالي باستخدام كائن القاموس
تسلم أخي الغالي إسلام ومشكور على مرورك العطر والمشرف بالموضوع
اتجدعن واعمل فيديو على الموضوع عشان نكمل بعض .. دا إذا مكانشي عندك مانع cool

أثارت هذه المشاركة إعجاب: Eslam Abdullah،




23-02-2018 04:59 مساء
مشاهدة مشاركة منفردة [3]
Eslam Abdullah
menu_open
مشرف قسم الاكسيل
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 03-10-2017
رقم العضوية : 852
المشاركات : 660
الجنس : ذكر
تاريخ الميلاد : 1-9-1995
الدعوات : 2
يتابعهم : 3
يتابعونه : 43
قوة السمعة : 4119
الاعجاب : 1118
 offline 
look/images/icons/i1.gif استخراج القيم الفريدة في عمودين وجمع الإجمالي باستخدام كائن القاموس
دا يبقى يوم سعدى لما اعمل فيديو من اعمالك biggrin2
بس فيه حاجات فى الكود لسه معرفهاش
دا انت مستخدم مصفوفات كمان

أثارت هذه المشاركة إعجاب: YasserKhalil،




23-02-2018 05:05 مساء
مشاهدة مشاركة منفردة [4]
YasserKhalil
menu_open عضوية موثقة
مراقب عام
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 3
المشاركات : 3403
الجنس : ذكر
تاريخ الميلاد : 1-10-1978
الدعوات : 11
يتابعهم : 0
يتابعونه : 272
قوة السمعة : 9429
الاعجاب : 3200
 offline 
look/images/icons/i1.gif استخراج القيم الفريدة في عمودين وجمع الإجمالي باستخدام كائن القاموس
حاول وافشل يكفيك شرف المحاولة ...
وارجع لدروس المصفوفات يمكن تاخد فكرة كاملة

أثارت هذه المشاركة إعجاب: Eslam Abdullah،




23-02-2018 05:10 مساء
مشاهدة مشاركة منفردة [5]
Eslam Abdullah
menu_open
مشرف قسم الاكسيل
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 03-10-2017
رقم العضوية : 852
المشاركات : 660
الجنس : ذكر
تاريخ الميلاد : 1-9-1995
الدعوات : 2
يتابعهم : 3
يتابعونه : 43
قوة السمعة : 4119
الاعجاب : 1118
 offline 
look/images/icons/i1.gif استخراج القيم الفريدة في عمودين وجمع الإجمالي باستخدام كائن القاموس
هتعلم اللى معرفوش واحاول افهم اللى فيه ان شاء الله

أثارت هذه المشاركة إعجاب: YasserKhalil،




23-02-2018 05:18 مساء
مشاهدة مشاركة منفردة [6]
محمد أبو عبدو
menu_open
عضو نشيط
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 27-08-2017
رقم العضوية : 247
المشاركات : 97
الجنس : ذكر
تاريخ الميلاد : 13-4-1966
يتابعهم : 6
يتابعونه : 2
قوة السمعة : 293
الاعجاب : 140
 offline 
look/images/icons/i1.gif استخراج القيم الفريدة في عمودين وجمع الإجمالي باستخدام كائن القاموس
عودة ميمونة أستاذي الفاضل ، 
جزاك الله عنا خير الجزاء وبارك الله فيك وجعل
هذا العمل الطيب في ميزان حسناتك.

أثارت هذه المشاركة إعجاب: YasserKhalil، Eslam Abdullah،




23-02-2018 05:22 مساء
مشاهدة مشاركة منفردة [7]
YasserKhalil
menu_open عضوية موثقة
مراقب عام
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 3
المشاركات : 3403
الجنس : ذكر
تاريخ الميلاد : 1-10-1978
الدعوات : 11
يتابعهم : 0
يتابعونه : 272
قوة السمعة : 9429
الاعجاب : 3200
 offline 
look/images/icons/i1.gif استخراج القيم الفريدة في عمودين وجمع الإجمالي باستخدام كائن القاموس
بارك الله فيك أخي الحبيب محمد عبدو ومشكور على مرورك العطر
وننتظر منك تفاعل بالمنتدى .. ألا يكفي المشاهدة من بعيد وفقط؟!

أثارت هذه المشاركة إعجاب: Eslam Abdullah،




23-02-2018 05:33 مساء
مشاهدة مشاركة منفردة [8]
Kamel meraghni
menu_open
عضو نشيط
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 26-08-2017
رقم العضوية : 182
المشاركات : 98
الجنس : ذكر
تاريخ الميلاد : 23-10-1984
يتابعهم : 7
يتابعونه : 5
قوة السمعة : 534
الاعجاب : 117
 offline 
look/images/icons/i1.gif استخراج القيم الفريدة في عمودين وجمع الإجمالي باستخدام كائن القاموس
إذا لم نعبرك أنت والأساتذة الكبار الذي هم من طينتك من نعبر .
أسأل الله العلي القدير أن يجعلك ممن يقال لهم  :"أدخلوها بسلام آمنين"

أثارت هذه المشاركة إعجاب: Eslam Abdullah، YasserKhalil،


توقيع :Kamel meraghni

الحمد لله وكفى والصلاة والسلام على الحبيب المصطفى



142



23-02-2018 06:43 مساء
مشاهدة مشاركة منفردة [9]
Yasser Elaraby
menu_open عضوية موثقة
المشرف العام
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 1
المشاركات : 758
الجنس : ذكر
الدعوات : 9
يتابعهم : 2
يتابعونه : 405
قوة السمعة : 5179
الاعجاب : 1345
موقعي : زيارة موقعي
 offline 
look/images/icons/i1.gif استخراج القيم الفريدة في عمودين وجمع الإجمالي باستخدام كائن القاموس
أحبيبي تسلم ع الموضوع الرائع
121

أثارت هذه المشاركة إعجاب: Eslam Abdullah، YasserKhalil،


توقيع :Yasser Elaraby
663013020



23-02-2018 06:47 مساء
مشاهدة مشاركة منفردة [10]
Eslam Abdullah
menu_open
مشرف قسم الاكسيل
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 03-10-2017
رقم العضوية : 852
المشاركات : 660
الجنس : ذكر
تاريخ الميلاد : 1-9-1995
الدعوات : 2
يتابعهم : 3
يتابعونه : 43
قوة السمعة : 4119
الاعجاب : 1118
 offline 
look/images/icons/i1.gif استخراج القيم الفريدة في عمودين وجمع الإجمالي باستخدام كائن القاموس
بارك الله فيك أستاذى الحبيب ياسر
إن شاء الله سأطلع على موضوعاتك كلها 81
 

أثارت هذه المشاركة إعجاب: YasserKhalil،




23-02-2018 09:06 مساء
مشاهدة مشاركة منفردة [11]
YasserKhalil
menu_open عضوية موثقة
مراقب عام
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 3
المشاركات : 3403
الجنس : ذكر
تاريخ الميلاد : 1-10-1978
الدعوات : 11
يتابعهم : 0
يتابعونه : 272
قوة السمعة : 9429
الاعجاب : 3200
 offline 
look/images/icons/i1.gif استخراج القيم الفريدة في عمودين وجمع الإجمالي باستخدام كائن القاموس
بارك الله فيك أخي العزيز كامل ومشكور على كلماتك الطيبة ودعائك الطيب

أخي الغالي ياسر العربي .. ايه البخل دا شاي كدا من غير غدا ولا عشا ولا ولا ولا !!!

تسلم أخي الحبيب إسلام ومشكور على مرورك العطر 

أثارت هذه المشاركة إعجاب: Eslam Abdullah،




24-02-2018 08:40 صباحا
مشاهدة مشاركة منفردة [12]
khaled alborene
menu_open
عضو ماسي
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 22-08-2017
رقم العضوية : 16
المشاركات : 432
الجنس : ذكر
تاريخ الميلاد : 9-9-1990
الدعوات : 1
يتابعهم : 7
يتابعونه : 6
قوة السمعة : 421
الاعجاب : 164
 offline 
look/images/icons/i1.gif استخراج القيم الفريدة في عمودين وجمع الإجمالي باستخدام كائن القاموس
استاذ ياسر شرح رائع وعودة ميمونة 
مزبوط انا تهت بس لانو انا عندي نقص بال vba مش لانو شرحك مش مفهوم 
على العموم سؤالي الاول والبسيط انا كيف حددت انو لحل هذا السؤال انا احتاج الى 6 متغيرات

أثارت هذه المشاركة إعجاب: YasserKhalil،





المواضيع المتشابهه
عنوان الموضوع الكاتب الردود الزوار آخر رد
استخراج القيم الغير مكررة (القيم الفريدة) سوزي كارم
17 835 YasserKhalil

الكلمات الدلالية
عمودين ، الفريدة ، القيم ، استخراج ، الإجمالي ، وجمع ، باستخدام ، كائن ، القاموس ،


 







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



الساعة الآن 09:43 مساء

أعلن هنا
أعلن هنا
أعلن هنا