Hỏi về công thức kiểu vòng lặp!

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

danhlc1177

Thành viên mới
Tham gia
13/6/16
Bài viết
13
Được thích
1
Chào các Bác!

Thưa là vì em không biết code VBA nên em sử dụng công thức. Mà tìm mãi không có phương pháp ra được kết quả.
Mong các bác giải hộ em với!
File như đính kèm ạ!

Nội dung: Em đang cần kết hợp kiểu vòng lặp (sử dụng SUM). VD: file có tổng 5 dòng, thì em cần SUM(1,2); SUM(1,3); ...; SUM(1,5); SUM(2,3); ...; SUM(4,5) và mỗi SUM sẽ bé hơn điều kiện đưa ra. Trong file của em chỉ có vài dòng để ví dụ thì có thể làm thủ công, nếu dữ liệu nhiều hơn (vài chục dòng) là em không thể làm thủ công được.

P/S: Nếu được bác nào giúp em viết code VBA để em nghiên cứu cũng được ạ!

Em cám ơn rất nhiều.
 

File đính kèm

Chào các Bác!

Thưa là vì em không biết code VBA nên em sử dụng công thức. Mà tìm mãi không có phương pháp ra được kết quả.
Mong các bác giải hộ em với!
File như đính kèm ạ!

Nội dung: Em đang cần kết hợp kiểu vòng lặp (sử dụng SUM). VD: file có tổng 5 dòng, thì em cần SUM(1,2); SUM(1,3); ...; SUM(1,5); SUM(2,3); ...; SUM(4,5) và mỗi SUM sẽ bé hơn điều kiện đưa ra. Trong file của em chỉ có vài dòng để ví dụ thì có thể làm thủ công, nếu dữ liệu nhiều hơn (vài chục dòng) là em không thể làm thủ công được.

P/S: Nếu được bác nào giúp em viết code VBA để em nghiên cứu cũng được ạ!

Em cám ơn rất nhiều.
Ít nhất phải nhập công thức thủ công và giải thích rỏ cách tính lúc đó mọi người mới biết bạn muốn gì
 
Dạ chào Bác.

Mình có làm lại file, bác xem nội dung bên trong giúp nha!
Nếu dữ liệu đã sort theo cột B và cột D thì bỏ lệnh sort
Kiểm tra lại
Mã:
Sub XYZ()
  Dim arr(), res(), P$, dk&
  Dim sRow&, i&, r&, k&, d&, r2&, fR&
  With Sheets("Sheet1")
    i = .Range("B" & Rows.Count).End(xlUp).Row
    .Range("F2").Value = 1
    .Range("F2:F" & i).DataSeries
    res = .Range("B2:F" & i).Value
    .Range("B2:F" & i).Sort .Range("B2"), 1, .Range("D2"), , 1, Header:=xlNo
    arr = .Range("B2:F" & i + 1).Value
    .Range("B2:F" & i).Value = res
  End With
  sRow = UBound(arr) - 1
  ReDim res(1 To sRow, 1 To 1)
  For i = 1 To sRow
    If P <> arr(i, 1) Then
      P = arr(i, 1)
      fR = i
    End If
    If P <> arr(i + 1, 1) Then
      dk = arr(i, 4)
      For r = i To fR Step -1
        If arr(r, 3) > 0 Then
          d = 0
          k = arr(r, 5)
          res(k, 1) = arr(r, 3)
          For r2 = fR To r - 1
            If arr(r2, 3) > 0 Then
              If arr(r2, 3) + res(k, 1) <= dk Then
                res(k, 1) = arr(r2, 3) + res(k, 1)
                arr(r2, 3) = 0
                d = d + 1
                If d = 2 Then Exit For
              Else
                Exit For
              End If
            End If
          Next r2
        End If
      Next r
    End If
  Next i
  Sheets("Sheet1").Range("F2").Resize(sRow).Value = res
End Sub
 
Chào Bác!

Cám ơn Bác rất nhiều! Thả tim <3

Mình xin đóng Topic này tại đây ạ!

Thanks.
 
Chào các Bác!

Thưa là vì em không biết code VBA nên em sử dụng công thức. Mà tìm mãi không có phương pháp ra được kết quả.
Mong các bác giải hộ em với!
File như đính kèm ạ!

Nội dung: Em đang cần kết hợp kiểu vòng lặp (sử dụng SUM). VD: file có tổng 5 dòng, thì em cần SUM(1,2); SUM(1,3); ...; SUM(1,5); SUM(2,3); ...; SUM(4,5) và mỗi SUM sẽ bé hơn điều kiện đưa ra. Trong file của em chỉ có vài dòng để ví dụ thì có thể làm thủ công, nếu dữ liệu nhiều hơn (vài chục dòng) là em không thể làm thủ công được.

P/S: Nếu được bác nào giúp em viết code VBA để em nghiên cứu cũng được ạ!

Em cám ơn rất nhiều.
Kiểu sum cố định 1 ô và kéo xuống, kéo ngang. Kiểu cộng dồn. Điều kiện thì dùng If.
Phải vậy hok:
=Sum($A$1:A1)
=If(Sum($A$1:A1)<=đk,Sum($A$1:A1),đk)
 
Web KT

Bài viết mới nhất

Back
Top Bottom