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

توزيع رقم


إذهب إلى أفضل إجابة Solved by lionheart,

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

Try this udf

Function DistributeNumber(ByVal num As Long, ByVal chunks As Long)
    Dim i As Long
    ReDim b(chunks - 1)
    For i = 0 To chunks - 1
        If i = chunks - 1 Then
            b(i) = num
        Else
            b(i) = WorksheetFunction.RoundUp(num / (chunks - i), 0)
            num = num - b(i)
        End If
    Next i
    DistributeNumber = b
End Function

The udf can be used as formula

=TRANSPOSE(DistributeNumber(13,5))

 

رابط هذا التعليق
شارك

استادى العزيز العدد او الرقم مطلوب تقسيمه على خمس دفعات كما بالامثلة ولكن بطريق ان يكون بالتساوى ولكن لو الكان الرقم لا يقسم بالتساوي الزبادة توزع من البداية مثال 13 تقسم كالاتى 3 ثم3 ثم 3 ثم 2 ثم 2 وهكذا اي رقم او عدد

رابط هذا التعليق
شارك

استاذى الفاضل هذا الملف بعد التطبيق وهو لا يفى بالمطلوب اوبما اريد  واسف لاستخدمى ملف وليست صور

واكرر لوكان الرقم 13 يقسم الى 5 اجزاء  3/3 / 2/3 /2

3

3

3

2

2

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

توزيع رقم.xls

رابط هذا التعليق
شارك

It works well at my side

Have a look

r.png.9849a66a01d472adcace72b6fe0e5e0f.png

 

May be the problem is that I have a new version of excel (office 365)

paste the code and press Ctrl + G to see the results in the immediate window
 

Sub Test()
    Dim a, e
    For Each e In Array(7, 10, 13)
        a = DistributeNumber(Val(e), 5)
        Debug.Print Join(a, "-")
    Next e
End Sub

Function DistributeNumber(ByVal num As Long, ByVal chunks As Long)
    Dim i As Long
    ReDim b(chunks - 1)
    For i = 0 To chunks - 1
        If i = chunks - 1 Then
            b(i) = num
        Else
            b(i) = WorksheetFunction.RoundUp(num / (chunks - i), 0)
            num = num - b(i)
        End If
    Next i
    DistributeNumber = b
End Function

 

رابط هذا التعليق
شارك

حل اخر ادا لم يكن عندك مانع في طريقة ترتيب التوزيع

128718387.png

Sub Dis_numbers()

Dim rng    As Range
Dim rng2   As Range
Dim cell   As Range
    
    'الخلايا المستهدفة
    
    Set rng = Range("I3,F3,C3,N12")
        
    For Each cell In rng
        Set rng2 = Range(cell.Offset(1, -1), cell.Offset(4, -1))
        rng2.Value = Int(cell.Value / 5)
        cell.Offset(0, -1).Value = cell.Value - Application.WorksheetFunction.Sum(rng2)
        
    Next cell
End Sub
'''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''حدث ورقة 1'''''''''''''''''''
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Row Number
    If Target.Row = 3 Then Exit Sub
    Select Case Target.Column
'Columns
            Case 3, 6, 9
    Call Dis_numbers
 End Select
    
'   Cell N12
 'Column ("N")

 If Target.Row = 12 Then Exit Sub
Select Case Target.Column
      Case 14
    Call Dis_numbers
End Select
    
End Sub

 

توزيع رقم 3.xlsb

تم تعديل بواسطه Mohamed Hicham
  • Like 1
رابط هذا التعليق
شارك

عزيزى محمد هشام بداية موفقة

لكن المطلوب هو مثلاً العدد 27 تم تقسيمه الى

7

5

5

5

5

المطلوب ان يكون

6

6

5

5

5

لوكان العدد 28

6

6

6

5

5

وهكذا والشكر لك وللاخ قلب الاسد على الاهتمام

رابط هذا التعليق
شارك

  • أفضل إجابة

Here's a modified udf to be compatible with older versions of excel

Function DistributeNumber(ByVal num As Long, ByVal chunks As Long, ByVal iIndex As Long)
    Dim i As Long
    ReDim b(chunks - 1)
    For i = 0 To chunks - 1
        If i = chunks - 1 Then
            b(i) = num
        Else
            b(i) = WorksheetFunction.RoundUp(num / (chunks - i), 0)
            num = num - b(i)
        End If
    Next i
    On Error Resume Next
        DistributeNumber = b(iIndex - 1)
        If Err.Number <> 0 Then DistributeNumber = vbNullString: Err.Clear
    On Error GoTo 0
End Function

 

you can use the udf as formula (but you will have to drag the formula)

Say the number is K1 so the formula in cell K2 should be

=DistributeNumber(K$1,5,ROW(A1))

Drag the formula down to get the results

ss.png.d0da0ec3efca8e2bf14f5ca68cd645f0.png

  • Like 2
رابط هذا التعليق
شارك

اسف على تعب حضرتك وجزاك الله خيراً

لكن الوظيفة الاضافية لا تعمل الا على الصف الاول المطلوب ان تعمل على اي صف

يعنى لو وضعت العدد في الخلية k22 بدلاً من الخلية k1 تعمل الوظيفة الاضافية ارجو ان اكون واضح في طلبى

رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

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

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

Important Information