الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

صياغة دوال من اكسل الى أكسس

بدأه كريمو2 في 25 يوليو 2014 · 15 رد · 1,245 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم إخواني


المطلوب مساعدة في صياغة دوال من الإكسل الى ألأكسس كما هو مبين بالمرفق بألأكسل Paie_Personnels


وكتابتها في ملف الأكسس PAIE 2014 عند الفورم PAIE 


رجاءا مساعدة


 


Table.rar


الْلَّهُم صَلِّ وَبَارِك وَسَلِم عَلَى سَيِّدِنَا مُحَمَّد وَعَلَى الِه وَصَحْبِه وَسَلِّم

#2

اخي العزيز انت الي تريده بالضبط ما هو 

اشرح العملية الرياضية رجاء 

#3
Aliraqe كتب:

اخي العزيز انت الي تريده بالضبط ما هو 

اشرح العملية الرياضية رجاء 

صياغة هذه الدوال بالأكسس

للعلم ان $N$6 و $B$5 ....... الخ هي تحديد حقول من... الى.... في الإكسل 

و AncienBareme بالأكسل يوازيه جدول BaremENC بالأكسس

و Grades بالأكسل يوازيه Grades بالأكسس

و Bareme 2008 في الإكسل يوازيه Baremes بالأكسس

وغيرهم

=(INDEX(Baremes!$B$5:$R$21;F4;2))*45

=(INDEX(Baremes!$B$5:$R$21;IF($D$7=1;$F$7;$F$4);$F$5+3))*45

=IF($F$4>=9;($N$4+$N$5)*$N$7/100;0)

=IF($H$10=1;($N$17+$N$18)*10/100;0)

=IF($N$7>0;INDEX('95-28 et 95-300'!$E$2:$E$224;$E$9);0)

=(VLOOKUP($N$3;AncienBareme;12))*INDEX(Divers!$K$2:$K$11;$H$9;1)/100

=(K3+K4)*(INDEX(Grades!$F$3:$F$74;$D$2;1))/100

=($K$3+$K$4)*(INDEX(Grades!$G$3:$G$74;$D$2;1))/100

=IF($D$4=2;0;IF($D$6=1;0;IF($H$6=0;5.5;800)))

=((ROUND(K23/10;0))*10)*9/100

=(IF(N23>120000;29500+(N23-120000)*0.35;IF(N23>30000;2500+(N23-30000)*0.3;IF(N23>28750;2250+(N23-28750)*0.2;IF(N23>22500;1500+(N23-22500)*0.12;IF(N23>15000;(N23-15000)*0.2;0))))))

=IF(OR(N7=35;N7=45;N7=80;N7=90);1;0)

=(((VLOOKUP(IF($D$7=1;$N$6;$N$3);AncienBareme;13))*(VLOOKUP(IF($D$7=1;$N$6;$N$3);AncienBareme;(IF($F$5>10;10;$F$5))+14))))
 
=IF(AND($F$4>=9;$F$4<=11);INDEX('95-28 et 95-300'!$D$2:$D$224;$E$9;1);0)

=INDEX(Divers!$K$2:$K$11;$H$9;1)

=VALUE((LEFT($H$7;LEN($H$7)-2)&RIGHT($H$7)))

=(((VLOOKUP(IF($D$7=1;$N$6;$N$3);AncienBareme;13))*(VLOOKUP(IF($D$7=1;$N$6;$N$3);AncienBareme;(IF($F$5>10;10;$F$5))+14))))

=VALUE((LEFT($F$6;LEN($F$6)-2)&RIGHT($F$6)))

=((ROUND(K23/10;0))*10)*9/100

الْلَّهُم صَلِّ وَبَارِك وَسَلِم عَلَى سَيِّدِنَا مُحَمَّد وَعَلَى الِه وَصَحْبِه وَسَلِّم

#4

طيب شي جميل 

يمكن ان تستخدم هذا المثال في كل الدوال تقريبا 

[field]* 45

iif([field]>=9,[field2]/100,0)

 

 

يعني تقريبا بدل استخدام if تستخدم IIf

واعتقد العملية اسهل من الاكسل 

تم تعديل هذه المشاركة بواسطة Aliraqe في 25 يوليو 2014 في 21:37

#5
Aliraqe كتب:

طيب شي جميل 

يمكن ان تستخدم هذا المثال في كل الدوال تقريبا 

[field]* 45

iif([field]>=9,[field2]/100,0)

 

 

يعني تقريبا بدل استخدام if تستخدم IIf

واعتقد العملية اسهل من الاكسل 

ماهذا المثال المبعثر أخي

مافهمت منه شيئا

ايكتب بهذه الصيغة

=IIF([field]>=9,[field2]/100,0)

تم تعديل هذه المشاركة بواسطة كريمو2 في 25 يوليو 2014 في 21:41

الْلَّهُم صَلِّ وَبَارِك وَسَلِم عَلَى سَيِّدِنَا مُحَمَّد وَعَلَى الِه وَصَحْبِه وَسَلِّم

#6

اذا ما فهمت شيء اذن انت لم تعمل على الاكسس مطلقا 

نعم يكتب بهذه الصيغة 

=IIF([field]>=9,[field2]/100,0)

فقط فيلد هو اسم الحقل الي عندك في الاكسس

اما بخصوص جملة VLOOKUP

استخدم بدلها جملة Lookup في الاكسس

تم تعديل هذه المشاركة بواسطة Aliraqe في 25 يوليو 2014 في 21:46

#7
Aliraqe كتب:

اذا ما فهمت شيء اذن انت لم تعمل على الاكسس مطلقا 

نعم يكتب بهذه الصيغة 

=IIF([field]>=9,[field2]/100,0)

فقط فيلد هو اسم الحقل الي عندك في الاكسس

اما بخصوص جملة VLOOKUP

استخدم بدلها جملة Lookup في الاكسس

اخي لم اصل ولو بصيص من الحل

=IIF([field]>=9,[field2]/100,0)
=IF($F$4>=9;($N$4+$N$5)*$N$7/100;0)

الْلَّهُم صَلِّ وَبَارِك وَسَلِم عَلَى سَيِّدِنَا مُحَمَّد وَعَلَى الِه وَصَحْبِه وَسَلِّم

#8

منتظر مساعدتكم


الْلَّهُم صَلِّ وَبَارِك وَسَلِم عَلَى سَيِّدِنَا مُحَمَّد وَعَلَى الِه وَصَحْبِه وَسَلِّم

#9

وعليكم السلام اخي كريمو :)

 

في عندنا مثل يقول: كيف تستطيع ان تأكل الثور ، والجواب هو: تأكله قطعة قطعة :)

وانا اعتقد ان هذا اللي لازم يصير مع موضوعك ، لانك الادرى باسماء الحقل ، وادرى بالعمليات الحسابية المطلوبة :)

 

لذا:

 

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

وفي المقابل ، ماهو الحقل في الاكسس الذي يقابل حقل الاكسل ، وماهي الحقول الاخرى المرتبطة به :)

 

اذا موافق ، فالنبدأ على بركة الله ، وفي انتظار اول خطوة منك :)

 

 

جعفر

تم تعديل هذه المشاركة بواسطة jjafferr في 26 يوليو 2014 في 23:16

1
#10
jjafferr كتب:

وعليكم السلام اخي كريمو :)

 

في عندنا مثل يقول: كيف تستطيع ان تأكل الثور ، والجواب هو: تأكله قطعة قطعة :)

وانا اعتقد ان هذا اللي لازم يصير مع موضوعك ، لانك الادرى باسماء الحقل ، وادرى بالعمليات الحسابية المطلوبة :)

 

لذا:

 

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

وفي المقابل ، ماهو الحقل في الاكسس الذي يقابل حقل الاكسل ، وماهي الحقول الاخرى المرتبطة به :)

 

اذا موافق ، فالنبدأ على بركة الله ، وفي انتظار اول خطوة منك :)

 

 

جعفر

شكرا اخي جعفر

نبدأ على بركة الله

حيث ان $B$5 و $B$21 هي خلايا في الإكسل

وF4 هي مربع تحرير وسرد GRADE

و Baremes هو جدول به قيم ("E12 الىCateg  " E01 )

 كيف تكتب صيغة هذه الدالة

=(INDEX(Baremes!$B$5:$R$21;F4;2))*45

الْلَّهُم صَلِّ وَبَارِك وَسَلِم عَلَى سَيِّدِنَا مُحَمَّد وَعَلَى الِه وَصَحْبِه وَسَلِّم

#11

معنى المعادلة:

=(INDEX(Baremes!$B$5:$R$21;F4;2))*45

ومعناه:
ننظر الى مجموعة الارقام بين الخانات B5 و R21 في Sheet Baremes ، وننظر للسطر 5 (وهو قيمة F4 ، انظر في الاسفل) ، والعمود 2

 

 

F4 في FichePaie sheet قيمتها = 5

 

post-273849-0-01733300-1406421370_thumb.

 

 

 

انظر في Sheet Baremes ، من الخانة ($ معناه ان الخانة لا تتغير وتظل ثابتة) B5 الى الخانة R21 ، 

 

post-273849-0-10545200-1406421577_thumb.

 

 

القيمة 288 * 45 = 12,960

 

post-273849-0-33930200-1406421933_thumb.

 

 

جعفر

تم تعديل هذه المشاركة بواسطة jjafferr في 27 يوليو 2014 في 03:47

#12

شكرا لك اخي جعفر على التوضيح


نعم بالأكسل هو كما اشرت اليه


ولكن لو اكملت وصغت الدالة بالأكسس


هذه مشكلتي

الْلَّهُم صَلِّ وَبَارِك وَسَلِم عَلَى سَيِّدِنَا مُحَمَّد وَعَلَى الِه وَصَحْبِه وَسَلِّم

#13

السلام عليكم اخي كريمو :)

 

انت عملت جدول Baremes على نفس الطريقة اللي في الاكسل ، هل هناك سبب لذلك؟

 

انا عملت جدول جديد اسمه tbl_Baremes ، وادخلت البيانات بطريقة اخرى ، في اعتقادي مناسبه اكثر لطريقة قواعد البيانات ، وفي نفس الوقت تحمل رقم السطر والعمود R_C مثل الذي في الاكسل ،

لذا جرب النموذج frm_Senf وغير فيه قيمة الصنف ولاحظ نتيجة الاجر الاساسي (قارنه بالاكسل) ، ثم انظر كيف ان الكود اصبح يشبه ذلك في الاكسل :)

 

 

جعفر

226.PAIE 2014.mdb.zip

#14
jjafferr كتب:

السلام عليكم اخي كريمو :)

 

انت عملت جدول Baremes على نفس الطريقة اللي في الاكسل ، هل هناك سبب لذلك؟

 

جعفر

اولا :

وعليكم السلام اخي جعفر

تقبل الله منكم ومنا حسن الأعمال

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

الطريقة ممتازة 

نعم اظهرت مبلغ الأجر الأساسي

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

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

مثلا الصنف 8  النقطة الإستدلالية 379

على أجر صافي للدفع 30,813.26 كما في الإكسل

الْلَّهُم صَلِّ وَبَارِك وَسَلِم عَلَى سَيِّدِنَا مُحَمَّد وَعَلَى الِه وَصَحْبِه وَسَلِّم

#15

اخي كريمو :)

 

انا اعطيتك مثال عن الطريقة الصحيحة في العمل ، ولا استطيع ان اقوم ببقية العمل ، لانه متشعب جداَ ،

لذا انصحك ان تأخذ خانات الاكسل وتفكك محتوياتها (مثل ما عملت انا بالخانه اعلاه) ، وبالتالي يصبح عندك برنامج متكامل خطوة بخطوة :)

 

ولو اني اعتقد بانك لو قمت بالعمل على برنامج قاعدة بيانات من الصفر ، يكون افضل ، ولكنه متعب وسيطول العمل اكثر :(

 

جعفر

#16
jjafferr كتب:

اخي كريمو :)

 

انا اعطيتك مثال عن الطريقة الصحيحة في العمل ، ولا استطيع ان اقوم ببقية العمل ، لانه متشعب جداَ ،

لذا انصحك ان تأخذ خانات الاكسل وتفكك محتوياتها (مثل ما عملت انا بالخانه اعلاه) ، وبالتالي يصبح عندك برنامج متكامل خطوة بخطوة :)

 

ولو اني اعتقد بانك لو قمت بالعمل على برنامج قاعدة بيانات من الصفر ، يكون افضل ، ولكنه متعب وسيطول العمل اكثر :(

 

جعفر

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

ان اردت مساعدتي فبها ونعمة والا سألغي الفكرة اطلاقا

تقبل تحياتي القلبية الخالصة

الْلَّهُم صَلِّ وَبَارِك وَسَلِم عَلَى سَيِّدِنَا مُحَمَّد وَعَلَى الِه وَصَحْبِه وَسَلِّم

مواضيع مشابهة