اذهب الي المحتوي
أوفيسنا

الردود الموصى بها

قام بنشر (معدل)

السلام عليكم

أخي الكريم

المرفق به إكسل + فيديو

لتوضيح كيفية عمل الطلب الأول بالجداول المحورية Pivot Table

الطلب الثاني ، لم أفهمه

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

عموما لو انت كنت مخطيء والمفروض أن يكون في المجموعة أكثر من لاعب , تستطيع عمل ذلك بنفس الطريقة

المشروحة في الطلب الأول بالجداول المحورية Pivot Table

تفضل المرفق

sphinx2.rar

تم تعديل بواسطه TareQ M
  • الردود 63
  • Created
  • اخر رد

Top Posters In This Topic

قام بنشر

اخى الكريم صباح الخير

اشكرك على الاهتمام وربنا يكرمك ويزيك من العلم

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

يمكن للاعب ان يحصل على ميدالية فى الخطف او الكلين ولكنه اذا لم يحصل على المجموعة من خلال الخطف والكلين والنطر فلا يكون له ترتيب ولا يمكنه ان يحصل على ميدالية بالطبع واكون شاكر جدا جدا وان شاء الله اكون اتممت المشوع وسوف ارسله لك مباشرة لتقيمه ان شاء الله

قام بنشر

السلام عليكم

أخي الكريم

المرفق به إكسل + فيديو

لتوضيح كيفية عمل الطلب الأول بالجداول المحورية Pivot Table

الطلب الثاني ، لم أفهمه

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

عموما لو انت كنت مخطيء والمفروض أن يكون في المجموعة أكثر من لاعب , تستطيع عمل ذلك بنفس الطريقة

المشروحة في الطلب الأول بالجداول المحورية Pivot Table

تفضل المرفق

الطلب التانى المقصود منه انتقاء اللاعبين الذين سوف ينافسون فى فئة وزن واحدة على سبيل المثال 56 كيلو فى جدول واحد وبالتالى يمكن صنع جدول بطولة مستقل لهم وهذا ماعلمتنى اياه فى اثناء اعداد جدول البطولة وبالتالى بنظام الجداول المحورية سوف يكون فيه صعوبة ارجو ان يكون قصدى قد وصل اليك اخى الكريم

قام بنشر

بالجداول المحورية تستطيع عمل مجموعات أيضا مثل مجموعات الإحصاء (الفئات)

أي مثلا من وزن 50 إلي 56 مجموعة ومن كذا إلي كذا …

لكن يشترط أن يكون عمود الفئات لايحتوي إلا أرقام

أي في حالتنا هنا لابد من تغيير +105 إلي 110 مثلا

أنظر أيضا المرفق التالي

sphinx4.rar

قام بنشر

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

ارجوك انظر فى موضوع احتساب ترتيب المجموع حتى يتثنى لى اليوم ارسال المشروع كاملا لك لتقييمه واكون شاكر جدا لك اخى الكريم المحترم

قام بنشر

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

ارجوك انظر فى موضوع احتساب ترتيب المجموع حتى يتثنى لى اليوم ارسال المشروع كاملا لك لتقييمه واكون شاكر جدا لك اخى الكريم المحترم

قام بنشر

اخى الكريم صباح الخير

اشكرك على الاهتمام وربنا يكرمك ويزيك من العلم

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

يمكن للاعب ان يحصل على ميدالية فى الخطف او الكلين ولكنه اذا لم يحصل على المجموعة من خلال الخطف والكلين والنطر فلا يكون له ترتيب ولا يمكنه ان يحصل على ميدالية بالطبع واكون شاكر جدا جدا وان شاء الله اكون اتممت المشوع وسوف ارسله لك مباشرة لتقيمه ان شاء الله

السلام عليكم

عفوا لم أنتبه للمرفق في هذه المشاركة من قبل

تفضل المطلوب مع تلوين أوتوماتيك (تنسيق شرطي) بالأحمر لحالة الفشل في أي منهما

test3.rar

قام بنشر

السلام عليكم اخى الكريم

عندما تم التعديل على الخلية الاصلية للترتيب المجموع فى الجدول الرئيسى اصبحت هناك مشكلة فى جدول النتائج ارجو ان يكون هناك حل لهذه المشكلة والتوفيق من عند الله

قام بنشر (معدل)

السلام عليكم

رقم القرعة في Sheet1 به خطأ ، لايوجد 5،6

أي أن عدد اللاعبين 13 وليس 15

أحدهم رسب

بالتالي عندك 12 ترتيب فقط

في الورقة الثانية، الخلية L15

بها المعادلة التالية

=MATCH(A15,Sheet1!$K$4:$K$16,0)

والتي يبحث بها عن الترتيب الـ 13 (قيمة A15 اللي غير موجود أساسا في الورقة الأولي)

لذلك يعطي خطأ

تم تعديل بواسطه TareQ M
قام بنشر

اشكرك اخى الكريم على سرعة الرد وعلى التحليل المنطقى

لكن اريد يدرج الترتيب صفر فى تهاية قائمة الترتيب فى جدول النتائج حتى ولو لم يعطى له ترتيب

هذا هو المقصد

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

قام بنشر

اشكرك اخى الكريم على سرعة الرد وعلى التحليل المنطقى

لكن اريد يدرج الترتيب صفر فى تهاية قائمة الترتيب فى جدول النتائج حتى ولو لم يعطى له ترتيب

هذا هو المقصد

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

قام بنشر

لن اقول شئ غير ربنا يدوم عليك العبقرية ويمتعك بالصحة ويذهب عنك الغرور والحسد

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

ويديم علينا هذا المنتدى بكل العباقرة فيه ماشاء الله ماشاء الله

قام بنشر

السلام عليكم

كل عام وانت بالف خير رمضان كريم

المطلوب هو فصل النتيجة على جدولين كل جدول له ترتيبه الخاص حيث ان فئة الوزن 69 كجم لها ترتيب وفئة 77 كجم لها تريب مستقل على الرغم انه ادارة المسابقة تتم فى جدول واحد

جدول خطف1 xls.rar

قام بنشر

السلام عليكم

كل عام وأنت وجميع المسلمين بخير

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

أصبح الجدول يحتوي علي العديد من المعادلات

والحل الأفضل الآن بعد الطلب الجديد سيكون بالأكواد أسرع وايسر

ولكن مؤقتا بالمعادلات

ستضطر لإضافة أعمدة أخري

وتطيل في المعادلات أكثر (لوضع شروط أخري)

عموما أنظر المرفق - الورقة الأولي ، غير كامل ولكن به بداية الحل بالمعادلات

جدول خطف2.rar

قام بنشر

اخى الكريم السلام عليكم

اشكرك على سرعة الرد والحل العبقرى

لكن مجرد ما اجوم بعمل اى شئ فى الجدول يهنج ويتوقف عن العمل وانا معك ان الاكواد هى افضل الحلول

لكن انت تعرف ان معرفتى بالاكواد كمعرفتى باللغة الروسية وبالتالى من يمكنه ان يساعدى فى هذه الاكواد

واذا كان الامضوع سوف يذهب الى الاكواد فاننى اقترح اقتراحمهم ربما يكون فيه تطوير للاداء بشكل كبيرا جدا وهو

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

1 - اللاعب الذى يرفع الثقل الاقل هو الذى يبدأ اولا

2 - اللاعب الذى يؤدى االمحاولة الاولى يبدأ قبل من يلعب المحاولة الثانية او الثالثة

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

3 - اللاعب الذى بدأ اولا يستمر فى دخوله لاداء المحاولات بغض النظر عن القرعة فى حالة تساوى الثقل مع لاعب اخر يسبقه فى الترتيب

مثال

اللاعب 1 102 - 106 -107

اللاعب 2 100 - 105 - 107

اللاعب 3 102 - 106 - 107

ترتيب الدخول وفقا لما سبق يكون كما يلى

المحاولة الاولى 2 - 1 - 3

المحاولة الثانية 2 - 1 - 3

المحاله الثالثة 2 - 1 - 3

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

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

ويكون لك الشكر والدعاء دائما بداوم الصحة والعافية وفعل الخيرات

قام بنشر

السلام عليكم

أخي الكريم

موضوع الأكواد سيأخذ بعض الوقت

فرجاء الصبر لضيق وقت رمضان

ولكن كبداية لحساب أفضل خطف مثلا

إليك هذه الدالة (تم تفصيلها كما سيكون الحال للباقي)

اسم الدالة best_khatf

في المكان الذي تريد

تكتب best_khatf(range)

حيث الـ range هو ماستشير إليه بالماوس مثل الدوال الجاهزة بالإكسل

الدالة


Function best_khatf(x As Range) As Double


 For Each s In x

	If WorksheetFunction.IsText(s) = False Then GoTo 100

 Next

	best_khatf = 0

	GoTo 200


100

	best_khatf = WorksheetFunction.Max(x)


200


End Function

ومرفق لملف به الدالة مطبقة

sphinx8.rar

قام بنشر

السلام عليكم اخى الكريم طارق

اولا اشكرك شكرا جزيلا على مجهودك وعبقريتك

بسم الله ماشاء الله ولاحول ولا قوة الا بالله

انا لا استعجلك واعرف قدر المشغوليات وربنا يعينك ويقويك

وسوف انتظر اى تعديلات تشير عليا بها

وانا ايضا اتعلم وابحث فى موضوع الاكواد وان شاء نصل الى ماهو خير بامر الله

رمضان كريم وربنا يتقبل صومك وصلاتك وسائر اعمال الخير ان شاء الله

انظر المرفق سوف تجد تقدما كبير

sphinx-1-8.rar

قام بنشر

السلام عليكم

أخي الكريم

جميل منك سرعة التطبيق

اليوم مع الدالة الثانية (تفصيل طبعا) في الموضوع

دالة ترتيب الخطف

وسميتها khatf_rnk

مرفق ملف به التطبيق بلا أعمدة إضافية للأسبقية والقرعة ومعامل الوزن ومعامل الخطف .. إلخ

الدلة من شقين (افضل خطف) ، (الوزن)

تكتبها وتفتح قوس وتشير بالماوس علي الشق الأول ثم فاصلة ثم الشق الثاني)

أتركك لتهضمها علي مهلك لننتقل للجزء التالي

وهذا هو الكود



Function khatf_rnk(bst, w As Range) As Variant


Dim ss(99), khtf(99), khtf_mx(99), Asbaqya(99), qur3a(99), Asbaqya_cof(99), z(99) As Variant, st, fn As Range


Set fn = [a1000].End(xlUp)

Set st = fn.End(xlUp)


play_N = WorksheetFunction.CountA(Range(st, fn))


  For j = 1 To play_N

    For i = 1 To 3

        khtf(i) = Cells(st.Row, bst.Column).Offset(j - 1, i - 4)

          If WorksheetFunction.IsNumber(khtf(i)) Then

              khtf(i + 3) = khtf(i) + (3 - i) * 0.1

          Else

              khtf(i + 3) = 0

          End If


        If khtf_mx(j) < khtf(i + 3) Then khtf_mx(j) = khtf(i + 3)


          'Asbaqya

        If khtf(i) > "X" Then

            khtf(i + 6) = Right(khtf(i), Len(khtf(i)) - 1)

        Else: khtf(i + 6) = 0

        End If

        If Asbaqya(j) < khtf(i + 6) Then Asbaqya(j) = khtf(i + 6)

    Next i

  mx_qur3a = WorksheetFunction.Max(Range("A:A"))

  qur3a(j) = (mx_qur3a - Cells(st.Row + j - 1, 1).Value) / mx_qur3a / 100


  If mx_Asbaqya < Asbaqya(j) Then mx_Asbaqya = Asbaqya(j)


  Next j


  'calculate each z(j)

   For j = 1 To play_N

      wj = Cells(st.Row - 1 + j, w.Column).Value

    If mx_Asbaqya = khtf_mx(j) Then

        Asbaqya_cof(j) = -khtf_mx(j) / 4 / wj

    Else: Asbaqya_cof(j) = 0

    End If


    z(j) = (khtf_mx(j) + (khtf_mx(j) / wj)) + 0.00009 + Asbaqya_cof(j) + qur3a(j)

  Next j


  'calculate Rank of bst

  s = bst.Row - st.Row + 1

  If z(s) < 1 Then khatf_rnk = "X": Exit Function


  rnk = 1 ' assume

  For j = 1 To play_N

    If z(j) > z(s) Then rnk = rnk + 1

  Next j


      khatf_rnk = rnk


End Function


sphinx9.rar

قام بنشر

بسم الله ماشاء الله

العبقرية لها اناس يسحقونها بارك الله لك فى صحتك واولادك وعلمك والله شئ رائع رائع طبعا سوف اطبق الدالة دى على الكلين وان شاء الله تنجح ربنا يسهل

اشكرك اخى طارق بارك الله لك وجعلك عتقاء النار فى هذا الشهر الكريم

قام بنشر

اخى الكريم طارق بارك الله فيك

فعلا لما نفلتها للجدول الرئيسى عملت بشكل ممتاز ولما عملت منها كوبى للكلين وقمت بغير جميعالمتغيرات وفقا لمتطلبات الكلين لم تعمل ارجوك

راجع الخطأ معى لعلى افهم ما اخطأت انا فيه ولك الشكر وجزيل الاحترام والتقدير

clen_rank.rar

قام بنشر (معدل)

السلام عليكم

أعتقد أنها تعمل ولكن لابد من بعض الإحتياطات قد تكون وقعت في إحداها مثل

أول سطر

Function clen_rnk(bst, w As Range) As Variant
هذا يعني أن تشير بالماوس لــ bst المذكورة في أول الدالة تشير لأفضل النطر ، و تشير بالماوس لــ w المذكورة في الشق الثاني من الدالة للوزن لابد أن يكون ترتيب الجدول كما كان بالسابق أي 3 أعمدة للكلين يتبعها 3 أعمدة لـ افضل النطر - ترتيب النطر - نقاط االنطر أن تضع هذه الدالة طبعا في عمود ترتيب النطر وليس في مكان آخر وكما سبق يفترض أن bst المذكورة في أول الدالة تشير لأفضل النطر لاحظ السطر من السادس إلي الثامن
 For j = 1 To play_N

	For i = 1 To 3

 	khtf(i) = Cells(st.Row, bst.Column).Offset(j - 1, i - 4)

ستلاحظ أنه يعتمد تعرف الدالة علي رقم أفضل النطر لكل لاعب ، يعتمد علي أن يكون عمود أفضل النطر هذا تالي مباشرة لثلاث أعمدة بها محاولات النطر

عموما سأجربها وأخبرك

تم تعديل بواسطه TareQ M
قام بنشر (معدل)

اكتشفت اخطاء بسيطة

صلحتها وهي

1

السطر السابع من أسفل (في أواخر الدالة)

 s = bst.Row - st.Row + 1
وليس
 s = bst.Row - st.Row + p

2 السطر العاشر من أسفل (في أواخر الدالة)
z(p) = (clen_mx(p) + (clen_mx(p) / wp)) + 0.00009 + Asbaqya_cof(p) + qur3a(p)
وليس
 z(p) = (clen_mx(p) + (clen(p) / wp)) + 0.00009 + Asbaqya_cof(p) + qur3a(p)
وإليك الكود الصحيح للدالة بعد التعديلات
Function clen_rnk(bst, w As Range) As Variant


Dim ss(99), clen(99), clen_mx(99), Asbaqya(99), qur3a(99), Asbaqya_cof(99), z(99) As Variant, st, fn As Range


Set fn = [a1000].End(xlUp)

Set st = fn.End(xlUp)


play_N = WorksheetFunction.CountA(Range(st, fn))


 For p = 1 To play_N

	For i = 1 To 3

 	clen(i) = Cells(st.Row, bst.Column).Offset(p - 1, i - 4)

 	If WorksheetFunction.IsNumber(clen(i)) Then

 	clen(i + 3) = clen(i) + (3 - i) * 0.1

 	Else

 	clen(i + 3) = 0

 	End If


 	If clen_mx(p) < clen(i + 3) Then clen_mx(p) = clen(i + 3)


 	'Asbaqya

 	If clen(i) > "X" Then

 	clen(i + 6) = Right(clen(i), Len(clen(i)) - 1)

 	Else: clen(i + 6) = 0

 	End If

 	If Asbaqya(p) < clen(i + 6) Then Asbaqya(p) = clen(i + 6)

	Next i

 mx_qur3a = WorksheetFunction.Max(Range("A:A"))

 qur3a(p) = (mx_qur3a - Cells(st.Row + p - 1, 1).Value) / mx_qur3a / 100


 If mx_Asbaqya < Asbaqya(p) Then mx_Asbaqya = Asbaqya(p)


 Next p


 'calculate each z(p)

 For p = 1 To play_N

 	wp = Cells(st.Row - 1 + p, w.Column).Value

	If mx_Asbaqya = clen_mx(p) Then

 	Asbaqya_cof(p) = -clen_mx(p) / 4 / wp

	Else: Asbaqya_cof(p) = 0

	End If


	z(p) = (clen_mx(p) + (clen_mx(p) / wp)) + 0.00009 + Asbaqya_cof(p) + qur3a(p)

 Next p


 'calculate Rank of bst

 s = bst.Row - st.Row + 1

 If z(s) < 1 Then clen_rnk = "X": Exit Function


 rnk = 1 ' assume

 For p = 1 To play_N

	If z(p) > z(s) Then rnk = rnk + 1

 Next p


 	clen_rnk = rnk


End Function

وإليك المرفق به الدوال الأربعة تعمل جيدا best_khatf - khatf_rnk - best_clen- clen_rnk

ولايبقي إلا موضوع فئات الوزن

وإلي لقاء آخر

sphinx10.rar

تم تعديل بواسطه TareQ M
قام بنشر

اخى الكريم عبقرى الاكسيل

السلام عليكم ورحمة الله

طبعا تعلمت الكثير والكثير من الكود وتعرف على اشياء كثيرة بارك الله فيك

ورفع قدر وادخل السرور عليك وجعل اولاد وزريتك من حملة القرآن الكريم

اعتقد انه لم يبقى غير كود النقاط والمجموعة وان شاء الله توفق وربنا يسهل لك

فيهما وانا اعمل على ترتيب استخراج النتائج لعل وعسى ان شاء الله اوفق ويكتمل العمل فى مرحلته الاولى

شكرى وتقديرى واحترام لك وكل عباقرة هذا المنتدى الكريم

زائر
هذا الموضوع مغلق.
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه



×
×
  • اضف...

Important Information