logo

لوحة التميز الأسبوعي
العضو المتميز المشرف المتميز المراقب المتميز المدير المتميز الموضوع المتميز القسم المتميز
العضو المتميز المشرف المتميز المراقب المتميز المدير المتميز الموضوع المتميز القسم المتميز
ابوحنين لا تميز خلال هذه الفترة-- لا تميز خلال هذه الفترة YasserKhalil لا تميز خلال هذه الفترة اكسيل مشاريع جاهزه



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





23-02-2018 04:09 مساءً
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 3
المشاركات : 10534
رصيد العضو : 3
الجنس :
تاريخ الميلاد : 1-10-1978
الدعوات : 24
قوة السمعة : 36769
الاعجاب : 191
السلام عليكم ورحمة الله وبركاته

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

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

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

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

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

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

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

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

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

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

CODE
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 )

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


أثارت هذه المشاركة إعجاب: ali mohamed ali، said1963، hassona229، محمد حسن المحمد،



look/images/icons/i1.gif استخراج القيم الفريدة في عمودين وجمع الإجمالي باستخدام كائن القاموس
  23-02-2018 04:40 مساءً   [1]
معلومات الكاتب ▼
تاريخ الإنضمام : 03-10-2017
رقم العضوية : 852
المشاركات : 1580
رصيد العضو : 0
الدولة : مصر
الجنس :
تاريخ الميلاد : 1-9-1995
الدعوات : 5
قوة السمعة : 10861
الاعجاب : 6
موقعي : زيارة موقعي
الله ينور أستاذنا , ايه الحلاوه دى 3




look/images/icons/i1.gif استخراج القيم الفريدة في عمودين وجمع الإجمالي باستخدام كائن القاموس
  23-02-2018 04:50 مساءً   [2]
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 3
المشاركات : 10534
رصيد العضو : 3
الجنس :
تاريخ الميلاد : 1-10-1978
الدعوات : 24
قوة السمعة : 36769
الاعجاب : 191
تسلم أخي الغالي إسلام ومشكور على مرورك العطر والمشرف بالموضوع
اتجدعن واعمل فيديو على الموضوع عشان نكمل بعض .. دا إذا مكانشي عندك مانع cool




look/images/icons/i1.gif استخراج القيم الفريدة في عمودين وجمع الإجمالي باستخدام كائن القاموس
  23-02-2018 04:59 مساءً   [3]
معلومات الكاتب ▼
تاريخ الإنضمام : 03-10-2017
رقم العضوية : 852
المشاركات : 1580
رصيد العضو : 0
الدولة : مصر
الجنس :
تاريخ الميلاد : 1-9-1995
الدعوات : 5
قوة السمعة : 10861
الاعجاب : 6
موقعي : زيارة موقعي
دا يبقى يوم سعدى لما اعمل فيديو من اعمالك biggrin2
بس فيه حاجات فى الكود لسه معرفهاش
دا انت مستخدم مصفوفات كمان




look/images/icons/i1.gif استخراج القيم الفريدة في عمودين وجمع الإجمالي باستخدام كائن القاموس
  23-02-2018 05:05 مساءً   [4]
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 3
المشاركات : 10534
رصيد العضو : 3
الجنس :
تاريخ الميلاد : 1-10-1978
الدعوات : 24
قوة السمعة : 36769
الاعجاب : 191
حاول وافشل يكفيك شرف المحاولة ...
وارجع لدروس المصفوفات يمكن تاخد فكرة كاملة




look/images/icons/i1.gif استخراج القيم الفريدة في عمودين وجمع الإجمالي باستخدام كائن القاموس
  23-02-2018 05:10 مساءً   [5]
معلومات الكاتب ▼
تاريخ الإنضمام : 03-10-2017
رقم العضوية : 852
المشاركات : 1580
رصيد العضو : 0
الدولة : مصر
الجنس :
تاريخ الميلاد : 1-9-1995
الدعوات : 5
قوة السمعة : 10861
الاعجاب : 6
موقعي : زيارة موقعي
هتعلم اللى معرفوش واحاول افهم اللى فيه ان شاء الله




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




look/images/icons/i1.gif استخراج القيم الفريدة في عمودين وجمع الإجمالي باستخدام كائن القاموس
  23-02-2018 05:22 مساءً   [7]
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 3
المشاركات : 10534
رصيد العضو : 3
الجنس :
تاريخ الميلاد : 1-10-1978
الدعوات : 24
قوة السمعة : 36769
الاعجاب : 191
بارك الله فيك أخي الحبيب محمد عبدو ومشكور على مرورك العطر
وننتظر منك تفاعل بالمنتدى .. ألا يكفي المشاهدة من بعيد وفقط؟!




look/images/icons/i1.gif استخراج القيم الفريدة في عمودين وجمع الإجمالي باستخدام كائن القاموس
  23-02-2018 05:33 مساءً   [8]
معلومات الكاتب ▼
تاريخ الإنضمام : 26-08-2017
رقم العضوية : 182
المشاركات : 107
رصيد العضو : 0
الجنس :
تاريخ الميلاد : 23-10-1984
قوة السمعة : 754
الاعجاب : 2
إذا لم نعبرك أنت والأساتذة الكبار الذي هم من طينتك من نعبر .
أسأل الله العلي القدير أن يجعلك ممن يقال لهم :"أدخلوها بسلام آمنين"



توقيع :Kamel meraghni

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


142

look/images/icons/i1.gif استخراج القيم الفريدة في عمودين وجمع الإجمالي باستخدام كائن القاموس
  23-02-2018 06:43 مساءً   [9]
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 1
المشاركات : 1332
رصيد العضو : 0
الجنس :
الدعوات : 13
قوة السمعة : 10076
الاعجاب : 69
موقعي : زيارة موقعي
أحبيبي تسلم ع الموضوع الرائع
121



توقيع :Yasser Elaraby
663013020

look/images/icons/i1.gif استخراج القيم الفريدة في عمودين وجمع الإجمالي باستخدام كائن القاموس
  23-02-2018 06:47 مساءً   [10]
معلومات الكاتب ▼
تاريخ الإنضمام : 03-10-2017
رقم العضوية : 852
المشاركات : 1580
رصيد العضو : 0
الدولة : مصر
الجنس :
تاريخ الميلاد : 1-9-1995
الدعوات : 5
قوة السمعة : 10861
الاعجاب : 6
موقعي : زيارة موقعي
بارك الله فيك أستاذى الحبيب ياسر
إن شاء الله سأطلع على موضوعاتك كلها 81




look/images/icons/i1.gif استخراج القيم الفريدة في عمودين وجمع الإجمالي باستخدام كائن القاموس
  23-02-2018 09:06 مساءً   [11]
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 3
المشاركات : 10534
رصيد العضو : 3
الجنس :
تاريخ الميلاد : 1-10-1978
الدعوات : 24
قوة السمعة : 36769
الاعجاب : 191
بارك الله فيك أخي العزيز كامل ومشكور على كلماتك الطيبة ودعائك الطيب

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

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




look/images/icons/i1.gif استخراج القيم الفريدة في عمودين وجمع الإجمالي باستخدام كائن القاموس
  24-02-2018 08:40 صباحاً   [12]
معلومات الكاتب ▼
تاريخ الإنضمام : 22-08-2017
رقم العضوية : 16
المشاركات : 834
رصيد العضو : 0
الدولة : الاردن
الجنس :
تاريخ الميلاد : 9-9-1990
الدعوات : 2
قوة السمعة : 988
الاعجاب : 0
استاذ ياسر شرح رائع وعودة ميمونة
مزبوط انا تهت بس لانو انا عندي نقص بال vba مش لانو شرحك مش مفهوم
على العموم سؤالي الاول والبسيط انا كيف حددت انو لحل هذا السؤال انا احتاج الى 6 متغيرات




اضافة رد جديد اضافة موضوع جديد
الصفحة 2 من 3 < 1 2 3 >




المواضيع المتشابهه
عنوان الموضوع الكاتب الردود الزوار آخر رد
استخراج القيم المكررة والفريدة معا محمدمطر
11 1302 محمدمطر
استخراج القيم الفريدة مع كل القيم المرتبطة بها List Unique Concatenate Corresponding Values YasserKhalil
6 1449 YasserKhalil
استخراج القيم الفريدة وفق بيان محدد بالدالة المعرفة AlsaqrUnique Eslam Abdullah
14 4925 Abo Sohaib
استخراج القيم الغير مكررة (القيم الفريدة) سوزي كارم
17 4416 YasserKhalil

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









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

الساعة الآن 02:40 AM