تعيد =MOD(A2,B2) باقي قسمة A2 على B2: =MOD(17,5) تساوي 2، لأن 5 تدخل في 17 ثلاث مرات ويبقى 2. وتعيد =ABS(A2) الرقم دون إشارته، فتصبح -42 هي 42.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Number | Divisor | MOD | Times it fits |
| 2 | 17 | 5 | 2 | 3 |
| 3 | 20 | 5 | 0 | 4 |
| 4 | 7 | 2 | 1 | 3 |
| 5 | 100 | 7 | 2 | 14 |
| 6 | -3 | 2 | 1 | -1 |
| 7 | 3 | -2 | -1 | -1 |
يُظهر العمود D النصف الآخر من القسمة: تعيد QUOTIENT عدد المرات الكاملة التي يدخل فيها القاسم، لذا 17 هي 3 مرات 5 زائد 2. غيّر B2 إلى 0 فتعيد MOD الخطأ #DIV/0!، كما تفعل القسمة على صفر.
صيغة دالة MOD
=MOD(number, divisor)
تعمل MOD على الأرقام العشرية أيضًا: =MOD(7.5,2) تساوي 1.5، وتعيد =MOD(A2,1) الجزء العشري من الرقم فقط، مثل 0.75 من 3.75. وفي التواريخ التي تحمل أوقاتًا، تُبقي =MOD(A2,1) الوقت وتحذف التاريخ.
MOD مع الأرقام السالبة
يُظهر الصفان 6 و7 في الورقة أعلاه قاعدة الاكسل: للنتيجة إشارة القاسم. =MOD(-3,2) تساوي 1، لا -1، و=MOD(3,-2) تساوي -1. يحسب الاكسل MOD على أنها number - divisor * INT(number / divisor)، وINT تقرّب دائمًا إلى الأسفل.
وهنا يختلف جدول البيانات عن البرمجة. في JavaScript وJava وC وC# تساوي -3 % 2 القيمة -1؛ وفي Python تساوي -3 % 2 القيمة 1، مثل الاكسل. ويتبع Google Sheets الاكسل. وإذا احتجت إلى إشارة الرقم بدلًا من ذلك، فاستخدم =A2-B2*TRUNC(A2/B2).
زوجي أو فردي، وصف بعد صف
يكون الرقم زوجيًا عندما تكون MOD(number,2) تساوي 0. وهذا يعطي تسمية "Even" أو "Odd"، ومع ROW يعطي قاعدة تظلل صفًا بعد صف. وفي الاكسل أيضًا ISEVEN وISODD، اللتان تعيدان TRUE أو FALSE مباشرة.
| A | B | C | |
|---|---|---|---|
| 1 | Order | Qty | Even or odd |
| 2 | 1001 | 4 | Even |
| 3 | 1002 | 7 | Odd |
| 4 | 1003 | 10 | Even |
| 5 | 1004 | 3 | Odd |
| 6 | 1005 | 8 | Even |
| 7 | 1006 | 5 | Odd |
تميّز قاعدة التنسيق الشرطي =MOD(ROW($A2),2)=0 الصفوف 2 و4 و6، أي أرقام الصفوف الزوجية. وفي الاكسل يكون ذلك من الصفحة الرئيسية > التنسيق الشرطي > قاعدة جديدة > "استخدام صيغة لتحديد الخلايا التي سيتم تنسيقها"، والصيغة الأقصر =MOD(ROW(),2)=0 تعمل هناك أيضًا. غيّر 2 إلى 3 لتظليل كل صف ثالث.
كل صف رقم n: جمع كل قيمة ثالثة
تكون MOD(ROW()-ROW(first),n)=0 قيمتها TRUE للصف الأول من النطاق ثم لكل صف رقم n بعده. وداخل SUMPRODUCT تلتقط كل قيمة ثالثة من عمود، مثل الشهر الأخير من كل ربع سنة.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Month | Sales | Every 3rd | ||
| 2 | Jan | 120 | 310 | ||
| 3 | Feb | 135 | |||
| 4 | Mar | 150 | |||
| 5 | Apr | 110 | |||
| 6 | May | 125 | |||
| 7 | Jun | 160 |
إزاحات الصفوف من 0 إلى 5، وتُبقي =2 الإزاحتين 2 و5: مارس ويونيو، 150 زائد 160. غيّر =2 إلى =0 لتأخذ يناير وأبريل بدلًا منهما.
تحويل الدقائق إلى ساعات ودقائق
تقسم MOD والقسمة الصحيحة الإجمالي إلى وحدات: ساعات ودقائق متبقية، أو أسابيع وأيام متبقية، أو صناديق وقطع منفردة.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Minutes | Hours | Minutes left | Label |
| 2 | 135 | 2 | 15 | 2 h 15 min |
| 3 | 59 | 0 | 59 | 0 h 59 min |
| 4 | 240 | 4 | 0 | 4 h 0 min |
| 5 | 1000 | 16 | 40 | 16 h 40 min |
1000 دقيقة هي 16 ساعة و40 دقيقة. وللقيم الزمنية الفعلية (8:30، 17:45) والنوبات التي تتجاوز منتصف الليل، الصيغة المعتادة هي =MOD(end-start,1)؛ راجع حسابات الوقت.
ABS: الفرق بين رقمين
تحذف =ABS(number) علامة الطرح. واستخدامها الرئيسي هو مقدار الفرق عندما لا يهمك أي القيمتين أكبر: كم ابتعدت كل توقعات عن النتيجة الفعلية، أو هل القياس ضمن هامش مسموح.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Week | Forecast | Actual | Off by | Within 10? |
| 2 | W1 | 120 | 112 | 8 | TRUE |
| 3 | W2 | 95 | 109 | 14 | FALSE |
| 4 | W3 | 140 | 138 | 2 | TRUE |
| 5 | W4 | 80 | 93 | 13 | FALSE |
| 6 | W5 | 110 | 104 | 6 | TRUE |
B2-C2 تساوي 8 للأسبوع W1 و-14 للأسبوع W2؛ وتحوّل ABS الاثنتين إلى مسافة. ولجمع المسافات، تعمل =SUMPRODUCT(ABS(B2:B6-C2:C6)) في كل إصدارات الاكسل؛ وهنا تعطي 43، وهو مجموع العمود D. وقسمة ذلك على العدد تعطي متوسط الخطأ المطلق.
جرّب: MOD وABS
| A | B | C | |
|---|---|---|---|
| 1 | Eggs | Per carton | Left over |
| 2 | 350 | 12 |
دورك: في C2، احسب عدد البيضات المتبقية بعد تعبئة البيض الموجود في A2 في كراتين كاملة بالحجم الموجود في B2.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | City | Morning | Evening | Change |
| 2 | Oslo | 14 | 6 |
دورك: في D2، اعرض كم درجة تغيرت درجة الحرارة بين B2 وC2، رقمًا موجبًا أيًا كانت القراءة الأعلى.
MOD مقابل QUOTIENT مقابل INT
| ما تريده | الصيغة | نتيجة 17 و5 | نتيجة -17 و5 |
|---|---|---|---|
| باقي القسمة | =MOD(A2,B2) | 2 | 3 |
| عدد المرات الكاملة، نحو الصفر | =QUOTIENT(A2,B2) | 3 | -3 |
| عدد المرات الكاملة، مقرّبًا للأسفل | =INT(A2/B2) | 3 | -4 |
| القسمة الدقيقة | =A2/B2 | 3.4 | -3.4 |
في الأرقام الموجبة تتفق QUOTIENT وINT(A2/B2)، وتعيد B2*INT(A2/B2)+MOD(A2,B2) بناء الرقم دائمًا. ومع رقم سالب لا يعطي المجموع الصحيح إلا زوج INT: -4 مرات 5 زائد 3 تساوي -17. والخلط بين QUOTIENT وMOD على الأرقام السالبة هو السبب المعتاد لخطأ بفارق واحد في جدول زمني أو في تقسيم.
الأسئلة الشائعة
ماذا تفعل MOD في الاكسل؟
تعيد باقي القسمة: =MOD(17,5) تساوي 2، لأن 5 تدخل في 17 ثلاث مرات ويبقى 2. وإذا كانت القسمة بلا باقٍ، تعيد MOD القيمة 0.
كيف أتحقق مما إذا كان الرقم زوجيًا في الاكسل؟
استخدم =MOD(A2,2)=0، التي تكون TRUE للأرقام الزوجية، أو =ISEVEN(A2). وفي تسمية: =IF(MOD(A2,2)=0,"Even","Odd").
لماذا تعيد MOD رقمًا موجبًا لقيمة سالبة؟
تأخذ MOD في الاكسل إشارة القاسم: =MOD(-3,2) تساوي 1 و=MOD(3,-2) تساوي -1. وتعطي لغات برمجة كثيرة -1 للتعبير -3 % 2، لذا قد تختلف النتائج عن البرمجة.
كيف أحصل على القيمة المطلقة في الاكسل؟
استخدم =ABS(A2): تصبح -42 هي 42 وتبقى 42 كما هي. وللحصول على مقدار الفرق دون إشارته، استخدم =ABS(B2-C2).
كيف أجمع القيم المطلقة في الاكسل؟
استخدم =SUMPRODUCT(ABS(A2:A7))، التي تعمل في كل الإصدارات. وفي Excel 365 و2021 تعمل =SUM(ABS(A2:A7)) أيضًا.