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

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

قام بنشر

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