Abu azzam قام بنشر أغسطس 6, 2021 قام بنشر أغسطس 6, 2021 السلام عليكم ورحمة الله وبركاته مساء الخير إذا سمحتم ممكن طريقة جمع الأرقام الموجودة داخل الخلية حتى ينتهي لرقم واحد فقط مثال بالأرقام: لو أفترضنا بأن الخلية A1 تحتوي على العدد 1930196874982 فإن جمع أرقامه هو (المرحلة الأولى) 2 + 8 + 9 + 4 + 7 + 8 + 6 + 9 + 1 + 0 + 3 + 9+ 1 = 67 ثم نقوم بالجمع مرة أخرى (المرحلة الثانية) 7+ 6 = 13 ثم نقوم بالجمع مرة أخرى (المرحلة الثالثة) 3 + 1 = 4 إذن الناتج هو 4 لأننا وصلنا إلى الرقم المكون من خانة واحدة فقط أنتهى الحل وهكذا يتم التعامل دائما مع أي رقم يتم إدخاله في الخلية A1 ، أي أنه يتم الجمع على مراحل إلى أن نصل إلى العدد المكون من خانة واحد فقط وعندها نتوقف ملاحظة: 1- يظهر الناتج في خلية أخرى مثلا إسمها الخلية A2 2- في المثال أعلاه عدد المراحل ثلاثة ولكن لو كان الرقم المدخل في الخلية كبير جدا فطبيعي أن تزداد عدد المراحل إلى أكثر من ذلك (أي أنها ليست دائما ثلاثة مراحل). أو بمعنى آخر تتأثر عدد المراحل بمدى كبر حجم الرقم المدخل. وطبعا نحن لايهمنا كم ستصل عدد المراحل والمهم هو فقط ناتج الجمع ولكن ذكرت ذلك لإحتمال أن تكون المعلومة تساعد في تصميم الكود. بحثت عن الطريقة على الإنترنت ولكن لم أجد الحل الصحيح وأتمنى أن أجد الحل هنا جزاكم الله كل خير
أبوعيد قام بنشر أغسطس 6, 2021 قام بنشر أغسطس 6, 2021 وعليكم السلام هل يمكن ان يكون العدد في A1 عدد عشري مثال 1254.76 ؟ او عدد سالب مثال -766543 ؟ 1
أفضل إجابة أ / محمد صالح قام بنشر أغسطس 6, 2021 أفضل إجابة قام بنشر أغسطس 6, 2021 حسب فهمي للمطلوب جرب هذه الدالة المعرفة بنسخ هذا الكود في،موديول جديد Function sumparts(num As String) As Long Dim n As Long, a As Long a = 0 For n = 1 To Len(num) a = a + Val(Mid(num, n, 1)) Next n If Len(CStr(a)) > 1 Then sumparts = sumparts(CStr(a)) Else sumparts = a End If End Function وبعد البحث في الانترنت عن هذا الأمر يمكن اختصار هذه الدالة إلى Function sumparts(num As String) As Long sumparts = num - 9 * Int((num - 1) / 9) End Function وطريقة استدعائها داخل الخلية =sumparts(A1) حيث A1 هي الخلية التي تحتوي على العدد المراد معرفة مجموع أرقامه ويمكن الوصول لهذا الهدف مباشرة في معادلة اكسل بهذه الصورة =A1-9*INT((A1-1)/9) بالتوفيق 3
أبوعيد قام بنشر أغسطس 7, 2021 قام بنشر أغسطس 7, 2021 وهذا حل سهل عن طريق المعادلات ويوجد بالملف توضيح جمع أرقام العدد.xlsx 3
Abu azzam قام بنشر أغسطس 7, 2021 الكاتب قام بنشر أغسطس 7, 2021 صباح الخير شكرا لك أخي العزيز أنا لم أعرف إضافة الدالة للإكسيل أخوك مبتدئ في الإكسيل شكرا لك مرة أخرى ******* شكرا لك أخي العزيز نعم نحن نعمل على الأرقام الصحيحة الموجبة فقط، وبدون أي فواصل وجربت الجدول ونعم يعمل كما هو مطلوب تماما جزاك الله كل خير تحياتي وتقديري 1
أ / محمد صالح قام بنشر أغسطس 8, 2021 قام بنشر أغسطس 8, 2021 لاضافة دالة معرفة الى ملفك اضغط alt+f11 لفتح نافذة ال vba من قائمة insert اختر module الصق كود الدالة في الموديول وفي الخلية المطلوب اظهار جمع الارقام اكتب =sumparts(A1) حيث ان A1 هي الخلية التي تحتوي على العدد المراد تقسيمه بالتوفيق 3
Abu azzam قام بنشر أغسطس 24, 2021 الكاتب قام بنشر أغسطس 24, 2021 شكرا لك أخي محمد صالح جزاك الله كل خير 1
lionheart قام بنشر أغسطس 25, 2021 قام بنشر أغسطس 25, 2021 Function DigitalRoot(num As String) As Long Dim t As Double t = Val(num) DigitalRoot = IIf(t > 0, 1 + (t - 1) - 9 * Int((t - 1) / 9), 0) End Function =1+MOD(A1-1,9) 1
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.