amoudi
-
Posts
142 -
تاريخ الانضمام
-
تاريخ اخر زياره
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
مشاركات المكتوبه بواسطه amoudi
-
-
السلام عليكم
لمنع اغلاق الملف
Private Sub Workbook_BeforeClose(Cancel As Boolean) Cancel = True End Sub
-
السلام عليكم
يمكنك استخدام
للإقفال بدون حفظ
ActiveWorkbook.Close False
للإقفال مع الحفظActiveWorkbook.Close True
تحياتي
-
السلام عليكم
اضافة للفائدة عشان ما تكون المعادلة طويلة لو زادت الخانات يمكن استخدام
=SUMPRODUCT((E10:G10)*AND(E10:G10>5))
تحياتي
-
السلام عليكم
اخي نزار
ياريت تعدل الكود اعتقد فيه غلط لأنه
-COUNTBLANK(A4:J4)+COUNTBLANK(A4:J4)
هذه نتيجتها صفر يعني مالها قيمة في المعادلة
تحياتي
-
السلام عليكم
شكرا أخي نزار على الأضافة
بس ياريت تذكر المصدر
http://support.microsoft.com/kb/214053
عشان الناس تستفيد من الشرح في المصدر او انك تأخذها من المصدر وتضعها في مثال وترفقه مع الشرح .
وللمعلومية
هذا الكود
{=SUM(VALUE(MID(A10,ROW(A1:OFFSET(A1,LEN(A10)-1,0)),1)))}
هو نفسه الكود=SUMPRODUCT(VALUE(MID(A10,ROW(A1:OFFSET(A1,LEN(A10)-1,0)),1)))
هو نفسه الكود{=SUM(VALUE(MID(A10,ROW(INDIRECT("1:"&LEN(A10))),1)))}
هو في النهاية نفس الحل وجميل يكون في كذا طريقة للحل بس انا اشوف مهم عند وضع حل يكون مرفق بالشرح . وملاحظة انت وضعت معادلتين واحدة للموجب واواحدة للسالب (مثل ما هو موجود بموقع ميكروسوفت) بس الأفضل اعتقد , ممكن تستخدم دالةABS وتصير معادلة وحدة تنفع للموجب والسالب(يعني لايغرك ميكروسوفت ){=SUM(VALUE(MID(ABS(A10),ROW(A1:OFFSET(A1,LEN(ABS(A10))-1,0)),1)))}
تحياتي
-
السلام عليكم
اخي الكريم
موضوع Array Formula موضوع يطول شرحة .
انشاء الله أحاول أجد وقت لذلك .
والأ وقته احاول اذا في استفسار يمكن حله عن طريق Array Formula سأجيب مع الشرح انشاء الله.
على العموم
اذا وجدت معادلة Sumproduct في الحلول فمعناه الى حدا ما يمكن استخدام Array Formula بدل من منها .
تحياتي
-
السلام عليكم
اخي ابوهاجر اشكرك على سعة صدرك
بس كله علشان الجميع يستفيد وانا بصراحة مستني ندخل في اكواد متقدمة , وقتها اعتقد المداخلات حتكون مفيدة أكثر .
للمعلومية
Dim condition As Boolean condition = False
بشكل افتراضي اول ما نعرف متغير من نوع Boolean حيأخد القيمة False
تحياتي
-
السلام عليكم
بعد إذن اخي نزار
المعادلة مثل ما هي مكتوبة
=INDEX(A3:A12,MATCH((B3:B12),B3:B12,0)) كأنك تقول =A1:A3 =A1 مافي فرق اتوقع كتبت بالخطاء
بالنسبة لكود لأكسيل 2007=IF(IFERROR(MATCH(A6,$B$2:$B$100,0),"")<>"",A6,"")
ممكن تكتب في اي نسخة من الأكسيل بطريقة أخرى و بنفس النتيجة=IF(ISNA(MATCH(A6,$B$2:$B$100,0)),"",A6)
تحياتي
-
السلام عليكم
اخي الكريم
الحساب في الملف موضوع على يدوي خليه تلقائي
أدوات
خيارات
(حساب)
اشر على تلقائي
تحياتي
-
السلام عليكم
اولا شكرا لك على مجهودك
لتوضيح الشي ذكرت True =1 , وفي تصحيحي True=-1 انا ذكرت انه اذا حنتكلم عن VBA يعني مش في معادلات الخلايا
امثلة
TRUE +TRUE=2 خطاء
TURE+TRUE=-2
TRUE *1 =1 خطاء
TRUE*1 = -1
True + 5=6 خطاء
True + 5=4
Dim var As Boolean var = True If var = 1 Then MsgBox "var=1" Else MsgBox "var <>1" End If النتيجة الرسالة الثانية
Dim var As Boolean var = True If var = -1 Then MsgBox "var=-1" Else MsgBox "var <>-1" End If النتيجة الرسالة الأولى
تحياتي
-
السلام عليكم
تم الشرح في نفس المواضيع
http://www.officena.net/ib/index.php?showtopic=27249
http://www.officena.net/ib/index.php?showtopic=27241
تحياتي
-
السلام عليكم
بناء على طلب الأخ Best سوف اشرح هذا الحل لأنه يوجد اكثر من حل .
لدى خليه بها الرقم 1360 أريد أن اقوم بجمع مكونات هذا الرقم وهم : 1+ 3 +6+0 = 10الحل هو 1+ 3 +6+0 = 10
ولكن كيف نوصل لهذا الحل يعني نفرق الأرقام كل رقم لوحده , طبعا الأمثلة القادمة بفرض انه الرقم 1360 موجود في الخلية A1
نعرف ان بإمكاننا نستخدم دالة MID لكي نستخلص اي قيمة من نص بعدد معين من موقع معين
يعني
MID(text,start_num,num_chars) =MID(A1,1,4) معناه استخلص من النص الموجود في الخلية A1 ابتداء من اول حرف وبعدد 4 حروف فالنتيجة حتكون 1360 =MID(A1,2,3) معناه استخلص من النص الموجود في الخلية A1 ابتداء من ثاني حرف وبعدد 3 حروف فالنتيجة حتكون 360 =MID(A1,3,1) معناه استخلص من النص الموجود في الخلية A1 ابتداء من ثالث حرف وبعدد 1 حروف فالنتيجة حتكون 6
بهذه الطريقة اقدر استخرج كل رقم لوحدة يعني=MID(A1,1,1) حتكون النتيجة 1 =MID(A1,2,1) حتكون النتيجة 3 =MID(A1,3,1) حتكون النتيجة 6 =MID(A1,4,1) حتكون النتيجة 0
يعني بكذا نكون نقدر نعرف كل رقم لوحده وممكن نكتب معادلة زي كده=MID(A1,1,1)+MID(A1,2,1)+MID(A1,3,1)+MID(A1,4,1)
والنتيجة حتكون 1+ 3 +6+0 = 10 طبعا الحل هذا مش عملي مئة بالمئة لأنه ممكن تكون عندك خانات كثيرة وتغيرة الطول يعني مش دائما 4 خانات (المهم مش موضوعنا) نجي للحل الأحسن نلاحظ في المعادلة=MID(A1,1,1)+MID(A1,2,1)+MID(A1,3,1)+MID(A1,4,1)
انه عبارة عن جمع معادلات متشابها ولكن يزيد في كل معادلة رقم يعني 1 في الأول وبعدين يصير 2 وبعدين يصير 3 وبعدين يصير 4 الى هو طول النص والى الدالة LEN تعطينا اياه . يعني الموضوع عبارة عن مجموع دالة واحدة بمتغير معروف الى هو من 1 الى طول النص(1360) يعني 1و2و3و4 ولو النص كان 78 كان نجتاج 1 و 2 ولو كان الرقم 13657 حنحتاج 1و2و3و4و5 حندخل في التعقيد انا الآن عرف اني محتاج مجموع الدالة mid لكن لازم بكذا قيمة يعني MID للحرف الأول وMID للحرف الثاني وMID للحرف الثالث ,MID للحرف الرابع يعني MID بمصفوفة قيم {1,2,3,4} ومادام مجموع ومصفوفة فحنفكر يا في SUMPRODUCT او في SUM ARRAY فخلينا في الأول احسن نحن نعرف انه الدالة SUMPRODUCT تأخد بيانات مصفوفة سواء خلايا او ارقام او معادلات يعني=SUMPRODUCT(B1:B3) حيعطيك مجموع القيم في B1,B2,B3 , =SUMPRODUCT({2,3,4}) حيعطيك اجمالي 2 +3 +4 =9 =SUMPRODUCT(B1+{2,3,4}) لو B1 فيها رقم 10 مثلا فحتكون النتيجة B1+2 + B1+3 + B1+4 يعني 2+10 + 3 +10 + 4+10 المجموع 39
طيب انا ممكن اقول=SUMPRODUCT(VALUE(MID(A1,{1,2,3,4},1))) كأننا نقول MID(A1,{1},1)+MID(A1,{2},1)+MID(A1,{3},1)+MID(A1,{4},1) يعني 1 +3 +6 +0 للمعلومية VALUE عشان النص يتحول لرقم ويمكن استخدام --
طيب جميل وصلنا لهذا الكود=SUMPRODUCT(VALUE(MID(A1,{1,2,3,4},1)))
طيب هذي {1,2,3,4} ممكن اضع بدالها (ROW(1:4 رح تعطي نفس النتيجة , (ROW(1:6 تعطينا 1,2,3,4,5,6 وهكذا طيب مادام انا عارف طول النص بأستخدام الدالة LEN فممكن اضع (ROW(1:LEN(A1 ويعطينا( ROW(1:4 بفرض طول الرقم في الخلية اربع خانات بس الدالة ROW تأخد مرجع داخلها يعني (ROW(Referance عشان كده نستخدم الدالة INDIRECT تأخد نص وترجعه كمرجع (للمعلومية ممكن نستخدم Offset بدل Indirect ) يعني=ROW(INDIRECT("1:"&LEN(A1))) حتكون =ROW(INDIRECT("1:"&4)) حتكون =ROW(INDIRECT("1:4")) =ROW(1:4) حتكون {1,2,3,4} وتكون وصلنا للمطلوب
فالتسلسل يصبح=SUMPRODUCT(--MID(A1,ROW(INDIRECT("1:" & LEN(A1))),1)) ال LEN حتعطينا 4لأنه طول النص 4 خانات =SUMPRODUCT(--MID(A1,ROW(INDIRECT("1:" & 4)),1)) =SUMPRODUCT(--MID(A1,ROW(INDIRECT("1:4")),1)) =SUMPRODUCT(--MID(A1,ROW(1:4),1)) الROW حتعطينا مصفوفة =SUMPRODUCT(--MID(A1,{1,2,3,4},1)) بفرض A1 قيمتها 1360 =SUMPRODUCT(--MID("1360",{1,2,3,4},1)) =SUMPRODUCT(--{"1","3","6","0"}) هنا علامة -- حتحول النص الى ارقام وممكن نستخدم الدالة VALUE بدل منها =SUMPRODUCT({1,3,6,0}) =10
أتمنى اكون وفقت في الشرح لأنه محرر النصوص حق المنتدى عقدني بصراحة
تحياتي
- 1
-
السلام عليكم
تعد البيانات المنطقية بسيطة ، فهي إما قيمة حقيقية أو مزيفة ( True or False ) ، كما يمكنها أن تعبر عن القيمة ( True ) بـ ( 1 ) وعن القيمة ( False ) بـ ( 0 )أذا حنتكلم عن VBA فأعتقد
true = -1
false = 0
تحياتي
-
السلام عليكم
مشكور اخى الكريم على شرحك الوافي و لكن كيف لى ان اطبق هذه المعادلة على العمود باكلمهالمعادلة مثل اي معادلة عادي تضعها في الأول وتسحبها للأسفل
يعني مثلا معادلة
A1-B1=
كيف كنت حتطبقها على كامل العامود ؟
حيكون نفس الشي للمعادلة السابقة .
تحياتي
-
السلام عليكم
شكل جميل
ملاحظة :
عشانك Engineer ياريت تعدل ال Spelling
DAIRY > DIARY
Daily Calendar2009 (V.97-2007)-Specail Edtion.xls > Daily Calendar2009 (V.97-2007)-Special Edition.xls
تحياتي
-
السلام عليكم
شكرا اخى الكريم على تفاعلك و لكن هل لى ان اتسالالعفو ياسيدي واتفضل اسأل
كيف لى ان اعرف من المعادلة السابقة ان المستبعد من الايام هما الجمعه و السبت ؟جربها واختبرها على عينة بيانات وشوف النتيجة .
كيف لى اذا اردت ان استبعاد الاحد او الاثنين او اى يوم اخر من ايام الاسبوع فكيف لى تعديل معادلة ؟توضييح
الدالة weekday بشكل افتراضي تعيد رقم
1 أحد
2 أثنين
3 ثلاثاء
4 أربعاء
5 خميس
6 جمعة
7 سبت
وانا في المعادلة كتبت 6 >
اقل من ستة يعني 6 و7 غير مشملولين
واذا اردت استبعاد يوم الأثنين كمثال بدل 6> تكتب 2<>
هذا بفرض استخدام الدالة بشكل افتراضي فالدلة يمكن تمرير لها قيمة 1 أو 2 أو 3
=WEEKDAY(A1) =WEEKDAY(A1,1) =WEEKDAY(A1,2) =WEEKDAY(A1,3)
الأول والثاني افتراضي يعني اذا ما وضعت شي حيفترض 1
المعادلة الثالثة(تمرير رقم 2)
1 الأثنين
2 الثلاثا
وهكذا الى 7
المعادلة الرابعة (تمرير 3)
0 الأثنين
1 الثلاثاء
وهكذا الى 6
فأنت شوف بطريقتك اي شكل يناسبك لأستخدامه
تحياتي
-
السلام عليكم
حل آخر للفائدة
بفرض A1 تحتوي على تاريخ بداية الفترة و B1 تحتوي على تاريخ نهاية الفترة ولجمع الأيام بدون سبت وجمعة
المعادلة تصبح
=SUMPRODUCT(--(WEEKDAY(ROW(INDIRECT("1:"&(B1-A1)+1))+(A1)-1)<6))
تحياتي
-
السلام عليكم
اخي الكريم بفرض انه الرقم في خلية A1
=SUMPRODUCT(--MID(A1,ROW(INDIRECT("1:" & LEN(A1))),1))
تحياتي
- 1
-
السلام عليكم
هو كلامك مظبوط بس هو كان المقصود ان اي نطاق بين علامتين تنصيص اكثر من مرتين غير مقبول وجرب انت بنفسك** يعني تحدد أكثر من خلية بالنطاق كالتالي :
Range("A13,A18,D14:D18,E21,F14,F9,C11:F11").Select
يمشي تمام اخترت اكثر من خلية ونطاقة من الخلايا ضمن التحديد
** وكمان ينفع كده :
Range("A1:E9").Select
طبعا ده عادي نطاق عبارة عن من الى
** لكن اللي كان مقصود التالي :
Range("G20", "G19").Select اختيار مفيهوش مشاكل
Range("G20", "G19", "F8").Select هو دة اللي كان القصد انه ميصلحش لانه محدد 3 نطاقات بين 3 اقواس مضاعفة
ارجو ان يكون التوضيح وصل ، ولو فيه اي غلط ياريت توضحه لينا
معليش اخي لو انت سألت نفسك ليش يسمح ب نطاقين وليس 3 او 4 او 5
اخي العزيز لأن لمقصود ليس 2 او 3 او4
ولكن المقصود من الى يعني اثنين (From --- To)
تحياتي
- 1
-
السلام عليكم
للأستفادة
يوجد عندي ملف قددددددددددددددددددددددددددديم
تفقيط بدون ماكرو
تحياتي
-
-
السلام عليكم
سوف اكتب المعادلات التي بالشيت وافسر معناها حسب استفسارك المكتوب بالشيت لأنه ما فهمت ايش طلبك الحديد
اريده يكون اوتوماتيك دون تدخل منيالحل
=TODAY() وممكن تضع =NOW() وهذه تختص بالوقت ايضا
ايضا اريده ان يحسب طبيعي اخر الشهر اوتوماتيك=DATE(YEAR(D5),MONTH(D5)+1,0)
هذه دالة تحول مدخلاتك الى تاريخ والمدخلات هي بالترتيب السنة الشهر اليوم D5 = فيها معادلة Today يعني فيها تاريخ اليوم وهذه الدالة DATE تأخد شهر وسنة ويوم وليس تاريخ لذلك نستخدم معادلات YEAR,MONTH,DAY لنستخلص السنة والتاريخ والشهر من التاريخ علشان نستخدمها في معادلة DATE طيب تقول ليش استخدمت اليوم صفر والشهر زودت عليه واحد نشرح كمان مثال 1/فبراير/2009=DATE(2009,2,1) 2009/02/01 =DATE(2009,2,0) 2009/01/31 =DATE(2009,2,-1) 2009/01/30 =DATE(2009,0,1) 2008/12/01 =DATE(2009,-1,1) 2008/11/01
حتلاحظ اذا وضعت صفر في اليوم تعيد المعادلة آخر يوم في الشهر السابق وانت تريد آخر يوم في الشهر الحالي فلذلك نحن نذهب للشهر القادم Month +1 ونضع صفر في اليوم فتعيد المعادلة آخر يوم في الشهر السابق من الشهر المدخل الى هو آخر يوم في الشهر الحالي.اريد دالة تحسب الفرق وان يطلع الناتج 6 وليس 5 كمااشرت في المشاركة بمعنى ان يحسب من تاريخ اليوم كيوم كامل حتى اخر الشهر=D6+1-D5
تطرح تاريخين ما اعتقد تحتاج شرح عشرة -خمسة =خمسة وانت تريد ستة يعني عشرة +1 -خمسة=ستة
الكودذا العقد لدي واريد منه شي مهم جداجدا وايضا اوتوماتيك وهو اذا كتبت يناير يعطيني نهاية العقد الموجودة في الخلية اللي بعدها 2009/3/31 فبراير يعطيني 2009/3/31 مارس يعطيني 2009/6/30 ابريل يعطيني 2009/6/30 مايو يعطيني 2009/6/30 يونيو يعطيني 2009/9/30 يوليو يعطيني 2009/9/30 اغسطس = 2009/9/30 سبتمبر = 2009/12/31 اكتوبر = 2009/12/31 نوفمبر = 2009/12/31 ديسمبر = 2010/3/31=DATE(YEAR(D5),(ROUNDUP((MATCH(D13,$S$7:$S$18,0)+1)/3,0)*3)+1,0)
وانت عندك قائمة بالأشهر ت اول شي لازم تعرف الشهر كرقم في كذا طريقة اسهل طريقة=MONTH(1&A1)
بإفتراض A1 فيها الشهر كنص يناير فبراير مارس ابريل وهكذا لكن لوكتبت أبريل بدل ابريل علشان كده استخدمناMATCH(D13,$S$7:$S$18,0)
طبعا في كذا طريقة بس الى جاء على بالي شرحة هذا S7:S18 هذا المكان انت معرف به الشهور يناير فبراير مارس ابريل الخ وD13 وهذا مكان اختيار الشهر من القائمة المنسدلة ف MATCH ترجع مكان الشي في المصفوفة والشهور مرتبة اكيد فرقم الشهر هو ترتيبه . المهم صار عندنا الشهر كرقم الآن تريد شهر 1و2 يصير 3 وشهر 3و4و5 يصير 6 وشهر 6و7و8 يصير 9 وهكذا الكود هذا يعمل كده تقريب لمضاعف 3=ROUNDUP((K30+1)/3,0)*3
ممكن كمان تستخدم هذا الكود النتيجة وحدة=CEILING(K30+1,3)
هذه مارح اشرحها في موضوع يتكلم فيها http://www.officena.net/ib/index.php?showtopic=27172
المهم صار عندنا الشهر بطريقتك
علشان تعرف نهاية الشهر لهذا الشهر كتاريخ مشروح في السابق
تحياتي
-
السلام عليكم
اخي العزيز
الدالة
MROUND
من ضمن الوظائف التحليلية الأضافية في الأكسيل لكي تعمل لأبد من اضافتها (ذكرت ذلك في المشاركة)
اختار من القائمة
أدوات ---> وظائف اضافية
اختار
Analysis ToolPak
تحياتي
-
السلام عليكم
بعد إذن الأخ صلاح
بوضح المعادلة
التقريب لمضاعفات الرقم العشري .5 أو انصاف
=ROUND(A3/0.5,0)*0.5 =ROUND(A3*2,0)/2
بطريقة أخرى=CEILING(FLOOR(A1,0.5/2),0.5)
Analysis ToolPakبطريقة سهلة (لكن تحتاج=MROUND(A1,0.5)
فإذا كنا نريد التقريب لمضاعفات الرقم العشري 25 أو ارباع نكتب=ROUND(A1/0.25,0)*0.25 =ROUND(A1*4,0)/4 =MROUND(A1,0.25) =CEILING(FLOOR(A1,0.25/2),0.25)
تحياتي.
كود لإلغاء عمل ALT+Delete+Ctrl
في منتدى الاكسيل Excel
قام بنشر
السلام عليكم
اخي aah_aah2008
جرب الكود التالي بعد التعديل
تحياتي