LienDong
Thành viên thường trực




- Tham gia
- 22/11/12
- Bài viết
- 227
- Được thích
- 46
- Nghề nghiệp
- Ai nói đúng thì làm!
ThửCác bạn giúp thu gọn công thức tính tổng ở cột I
Vì nếu thêm tên thầy cô vào thì công thức sẽ dài và nhiều lúc quên thêm cộng trừ vào thì sẽ sai kết quả. Xin cảm ơn
I6=B6+SUM(SUMIF($C$5:$H$5,{"Thu";"Chi"},C6:H6)*{1;-1})
Cảm ơn bạnThử
Mã:I6=B6+SUM(SUMIF($C$5:$H$5,{"Thu";"Chi"},C6:H6)*{1;-1})
Bạn thử:Nhờ các bạn viết bằng VBA giùm
Sub Test()
Dim a(), b(), i&
With Sheet1
i = .Range("B" & Rows.Count).End(3).Row
If i < 6 Then MsgBox ("Khong co du lieu"): Exit Sub
a = .Range("B6:H" & i).Value2
ReDim b(1 To UBound(a, 1), 1 To 1)
For i = 1 To UBound(a, 1)
b(i, 1) = a(i, 1) + a(i, 2) + a(i, 4) + a(i, 6) - a(i, 3) - a(i, 5) - a(i, 7)
Next i
.Range("J6").Resize(UBound(a, 1)) = b
End With
End Sub
Bạn ơi sao tôi thêm cột thu chi của 1 người khác thì code không ra kết quảBạn thử:
PHP:Sub Test() Dim a(), b(), i& With Sheet1 i = .Range("B" & Rows.Count).End(3).Row If i < 6 Then MsgBox ("Khong co du lieu"): Exit Sub a = .Range("B6:H" & i).Value2 ReDim b(1 To UBound(a, 1), 1 To 1) For i = 1 To UBound(a, 1) b(i, 1) = a(i, 1) + a(i, 2) + a(i, 4) + a(i, 6) - a(i, 3) - a(i, 5) - a(i, 7) Next i .Range("J6").Resize(UBound(a, 1)) = b End With End Sub
Đăng bài trong mục "Hàm và công thức Excel", lại yêu cầu viết Code VBA?Bạn ơi sao tôi thêm cột thu chi của 1 người khác thì code không ra kết quả
Ở file đính kèm mới tôi mới thêm Thu - chi của Cô Liên
Vì file có thể thêm nhiều thầy cô, mong bạn giúp
Nhìn code thì thấy
b(i, 1) = a(i, 1) + a(i, 2) + a(i, 4) + a(i, 6) - a(i, 3) - a(i, 5) - a(i, 7)
Chắc là thêm ... vào code trên, bạn giúp tôi tổng quát được không, để mỗi lần thêm Thầy cô thì không phải sửa code
Hiện nay cột đầu kỳ được tính bằng công thức, bạn làm code giùm luôn
(vì đây là yêu cầu trưởng phòng yêu cầu tôi làm, nhưng tôi không có biết code)
Mong các bạn giúp đỡ, xin cảm ơn
Option Explicit
Public Sub s_Gpe()
Dim sArr(), I As Long, J As Long, R As Long, eCol As Long, eRow As Long
Dim TonDau As Double, TonCuoi As Double
eRow = Range("A1000").End(xlUp).Row
eCol = Range("B5").End(xlToRight).Column - 1
If eRow < 6 Then Exit Sub
sArr = Range("B6:B" & eRow).Resize(, eCol).Value
R = UBound(sArr)
TonDau = sArr(1, 1)
For I = 1 To R
sArr(I, 1) = TonDau
TonCuoi = TonDau
For J = 2 To eCol - 2 Step 2
TonCuoi = TonCuoi + sArr(I, J) - sArr(I, J + 1)
Next J
sArr(I, eCol) = TonCuoi
TonDau = TonCuoi
Next I
Range("B6").Resize(R, eCol) = sArr
End Sub
Option Explicit
Function TonCuoi(Rng As Range)
Dim Cls As Range: Dim J As Integer
TonCuoi = Rng(1).Value
For J = 2 To Rng.Cells.Count
TonCuoi = TonCuoi + ((-1) ^ J) * Rng(J).Value
Next J
End Function
Kinh nghiệm thôi bạn. Nếu đăng bên "Lập Trình..." thì chỉ được VBA.Đăng bài trong mục "Hàm và công thức Excel", lại yêu cầu viết Code VBA?
...
Dạ lúc đầu, trưởng phòng chỉ yêu cầu em đưa file yêu cầu báo cáo như file, em nhờ các anh thiết lập giùm công thức cho gọn, nhưng sau khi chuyển file cho trưởng phòng, thì người này yêu cầu em làm code (vì lý do trước đây em có nhờ diễn đàn làm cho vài code nên trưởng phòng cứ tưởng em biết làm, vì thế bắt em làm) chắc anh biết làm việc trong cơ quan nhà nước màĐăng bài trong mục "Hàm và công thức Excel", lại yêu cầu viết Code VBA?
Bạn xài tạm code "Cùi Bắp" này cho file của bạn xem sao.
PHP:Option Explicit Public Sub s_Gpe() Dim sArr(), I As Long, J As Long, R As Long, eCol As Long, eRow As Long Dim TonDau As Double, TonCuoi As Double eRow = Range("A1000").End(xlUp).Row eCol = Range("B5").End(xlToRight).Column - 1 If eRow < 6 Then Exit Sub sArr = Range("B6:B" & eRow).Resize(, eCol).Value R = UBound(sArr) TonDau = sArr(1, 1) For I = 1 To R sArr(I, 1) = TonDau TonCuoi = TonDau For J = 2 To eCol - 2 Step 2 TonCuoi = TonCuoi + sArr(I, J) - sArr(I, J + 1) Next J sArr(I, eCol) = TonCuoi TonDau = TonCuoi Next I Range("B6").Resize(R, eCol) = sArr End Sub