Cộng luỹ tiến bằng VBA

Liên hệ QC

thungdols

Thành viên chính thức
Tham gia
27/3/09
Bài viết
66
Được thích
2
Em rất mong các bác giúp đỡ. Em mù tịt về VBA. Nội dung câu hỏi như đề bài và em có nói rõ trong tệp đính kèm rồi. Cám ơn các bác nhiều lắm
 

File đính kèm

Viết yêu cầu rõ lại xem sao?

"Chuyển đổi câu lệnh ở các ô từ C24 đến AN 24 trên thành VBA?; "

Nhưng trong trang tính thì công thức đang ở các ô C14:AN14

Sao đây?!?
 
Upvote 0
Em rất mong các bác giúp đỡ. Em mù tịt về VBA. Nội dung câu hỏi như đề bài và em có nói rõ trong tệp đính kèm rồi. Cám ơn các bác nhiều lắm

Bạn thử cách này xem !
PHP:
Sub Macro1()
    [c14:an14] = "=IF(SUM(R[-3]C:R[-1]C)>SUM(R[-6]C:R[-4]C),IF(SUM(R[-4]C:R[-1]C)>SUM(R[-8]C:R[-5]C),IF(SUM(R[-5]C:R[-1]C)>SUM(R[-10]C:R[-6]C),IF(SUM(R[-6]C:R[-1]C)>SUM(R[-12]C:R[-7]C),R[-13]C,""""),""""),""""),"""")"
    [c14:an14] = [c14:an14].Value
End Sub
Nếu muốn để công thức thì bạn đánh dấu nháy đơn vào câu lệnh '[c14:an14] = [c14:an14].Value

Để ghi công thức của bạn vào Macro, bạn tham khảo thêm bài này.
http://www.giaiphapexcel.com/forum/showthread.php?t=22569&p=156713#post156713
 
Upvote 0
Bạn cứ giải trình cụ thể cách cộng như thế nào thì chắc có câu trả lời, chứ tranh thủ mà phải ngồi tìm nguyên tắc cộng của bạn thì oải quá
 
Upvote 0
Công thức của bạn có thể rút gọn lại nhờ toán tử AND, như sau:

Tại [C14], thay vì
=IF(SUM(C11:C13)>SUM(C8:C10),IF(SUM(C10:C13)>SUM(C6:C9),IF(SUM(C9:C13)>SUM(C4:C8),IF(SUM(C8:C13)>SUM(C2:C7),C1,""),""),""),"")

Ta nên là:
=IF(AND(SUM(C11:C13)>SUM(C8:C10),SUM(C10:C13)>SUM(C6:C9),SUM(C9:C13)>SUM(C4:C8),SUM(C8:C13)>SUM(C2:C7)),C1,"")
 
Upvote 0
Viết hẵn cho bạn hàm người dùng tại dòng 14 luôn đây, xin mời

Mã:
Option Explicit
[B]Function TongLuyTien(LookUpRange As Range, Val_ As Range)[/B]
 Dim jJ As Long, Nua As Long, Rng As Range
 
 jJ = LookUpRange.Cells.Count                     [COLOR=green]'jJ=12'[/COLOR]
 Nua = jJ \ 2
 Set Rng = LookUpRange.Cells(jJ, 1)
 With Application.WorksheetFunction
'[COLOR=darkred]   MsgBox Rng.Offset(1 - jJ + 6).Resize(Nua - 3).Address, _[/COLOR]
[COLOR=darkred]    , Rng.Offset(1 - Nua + 3).Resize(Nua - 3).Address   '[/COLOR]
   If .Sum(Rng.Offset(1 - jJ).Resize(Nua)) < _
      .Sum(Rng.Offset(1 - Nua).Resize(Nua)) And _
      .Sum(Rng.Offset(1 - jJ + 2).Resize(Nua - 1)) < _
      .Sum(Rng.Offset(1 - Nua + 1).Resize(Nua - 1)) And _
      .Sum(Rng.Offset(1 - jJ + 4).Resize(Nua - 2)) < _
      .Sum(Rng.Offset(1 - Nua + 2).Resize(Nua - 2)) And _
      .Sum(Rng.Offset(1 - jJ + 6).Resize(Nua - 3)) < _
      .Sum(Rng.Offset(1 - Nua + 3).Resize(Nua - 3)) And _
      "GPE.COM" <> "GPE.NET" Then
                  TongLuyTien = Val_.Value
   Else
      TongLuyTien = Space(1)
   End If
 End With
[B]End Function[/B]

Cú fáptại [AE14] sẽ là: =TongLuyTien(AE2:AE13,AE1)
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Web KT

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

Back
Top Bottom