Chỉ cộng những cột được check.

Liên hệ QC

Dr.Jackal

Thành viên mới
Tham gia
17/5/11
Bài viết
19
Được thích
0
Ví dụ em có 1 file thế này.

1234.JPG

Ở những ô A1, B1, C1, D1 sẽ có cái Checkbox.

Ý em muốn là ở cột F sẽ chỉ tính tổng của những cột đã check trong Checkbox, những ô không check sẽ bỏ qua, không cộng vào.

Có anh nào giúp được, xin hướng dẫn giúp em với.
 

File đính kèm

  • 1234.JPG
    1234.JPG
    24.9 KB · Đọc: 48
Lần chỉnh sửa cuối:
Ví dụ em có 1 file thế này.

View attachment 122701

Ở những ô A1, B1, C1, D1 sẽ có cái Checkbox.

Ý em muốn là ở cột F sẽ chỉ tính tổng của những cột đã check trong Checkbox, những ô không check sẽ bỏ qua, không cộng vào.

Có anh nào giúp được, xin hướng dẫn giúp em với.
Đây là hàm tự tạo, bạn xem File. Tôi thay các ô được check bằng cách chọn chữ "X" trên đầu mỗi cột. Muốn tính tổng của những cột nào thì chọn chữ "X" trên đầu mỗi cột đó. Trong File của bạn sử dụng hàm "SUMX" như sau:
Ví dụ, tại ô F1, bạn nhập công thức sau:
Nhớ là ô A1 phải có địa chỉ tuyệt đối($A$1), sau đó kéo Fill xuống các hàng dưới giống như hàm "SUM".
Do mới học VBA nên hàm còn hơi "CỦ CHUỐI", mong các thầy bỏ qua và đừng chê cười!:=\+
P/S: Do dùng macro nên bạn nhớ Enable Macros trước khi mở File nhé! Nếu không biết Enable macros thì phải hỏi lại!
 

File đính kèm

  • ham_tu_tao.rar
    7.5 KB · Đọc: 22
Thank bạn đã giúp đỡ mình.

Nhưng sau mình export file Moudle đó ra, rồi import vào file của mình thì nó lại không ra kết quả như mong muốn.

Mình gửi file lên đây, mong bạn giúp đỡ luôn nha. Thank

http://www.fshare.vn/file/SBN97B34NI/
 
Cần gì loằng ngoằng thế. Bạn copy code của tôi sang File của bạn là oke thôi mà!

Nhưng mà nó không được bác ạ.

Hai tại file của em trình bày khác đi. Tại vì dòng đánh dấu "X" của em nằm ở dòng số 2, và bắt đầu bằng cột B.

Không như của bác nằm ở A1 luôn.
 
Nhưng mà nó không được bác ạ.
Hay tại file của em trình bày khác đi. Tại vì dòng đánh dấu "X" của em nằm ở dòng số 2, và bắt đầu bằng cột B.
Không như của bác nằm ở A1 luôn.
Không phải tại như bạn nêu mà tại bạn gõ chữ "x" thường. Trong code tôi yêu cầu chữ "X" hoa. Tôi đã sửa lại code. Bạn xem thử đã được chưa nhé, có gì hồi âm lại ngay cho tôi!
P/S: Nếu vùng dữ liệu của bạn bắt đầu ở cột B2(có dấu X hay không không quan trọng) thì công thức tại ô cần tính tổng phải được viết: =SUMX($B$2:đến đâu đó)
 

File đính kèm

  • Giup_Dr.Jackai.rar
    1 MB · Đọc: 35
Lần chỉnh sửa cuối:
Không phải tại như bạn nêu mà tại bạn gõ chữ "x" thường. Trong code tôi yêu cầu chữ "X" hoa. Tôi đã sửa lại code. Bạn xem thử đã được chưa nhé, có gì hồi âm lại ngay cho tôi!
P/S: Nếu vùng dữ liệu của bạn bắt đầu ở cột B2(có dấu X hay không không quan trọng) thì công thức tại ô cần tính tổng phải được viết: =SUMX($B$2:đến đâu đó)

Thì ra là do mình đánh công thức nhầm. Vùng dữ liệu của mình không quét chọn những hàng có dấu "X".

Thành thật cám ơn bạn rất nhiều.
 
Ai thử làm bài này bằng SUMPRODUCT xem! Tôi chưa làm nhưng nghĩ là được (không cần VBA làm gì)
 
Bài này SUMPRODUCT là khỏe mà, code kiếc gì cho mất công vậy nhỉ?
Mã:
=SUMPRODUCT(($B$2:$K$2<>"")*$B$3:$K$6)
B2:K2 muốn gõ cái gì đó thì gõ, đừng để trống là được.
 
Bài này SUMPRODUCT là khỏe mà, code kiếc gì cho mất công vậy nhỉ?
Mã:
=SUMPRODUCT(($B$2:$K$2<>"")*$B$3:$K$6)
B2:K2 muốn gõ cái gì đó thì gõ, đừng để trống là được.
- Không biết tôi hiểu nhầm ý của tác giả hay bạn hiểu nhầm?
- Theo tôi nghĩ tác giả cần tính tổng của các ô thuộc cùng 1 dòng. Ở đây tác giả có 2 bảng có cấu trúc giống nhau: Gồm 4 dòng (GOLD, WOOD, STONE, IRON), trên dòng GOLD là 1 dòng trống để tích dấu "X" ở đầu mỗi cột. Và ý của tác giả là muốn tính tổng các ô của cùng 1 dòng có dấu "X" ở trên đầu mỗi cột đó(Ví dụ cộng các ô được tích dấu "X") của cả 2 bảng vào bảng tổng hợp ở phía dưới.
- Còn bạn thì hiểu tác giả muốn tính tổng của tất cả các côt có dấu "X" trên đầu đúng không?
Bạn xem lại File xem có đúng vậy không?
- Ai đúng ai sai thì phải chờ tác giả!
Hy vọng tôi không mất công vô ích!
 

File đính kèm

  • Giup_Dr.Jackai.rar
    1 MB · Đọc: 22
Lần chỉnh sửa cuối:
- Không biết tôi hiểu nhầm ý của tác giả hay bạn hiểu nhầm?
- Theo tôi nghĩ tác giả cần tính tổng của các ô thuộc cùng 1 dòng. Ở đây tác giả có 2 bảng có cấu trúc giống nhau: Gồm 4 dòng (GOLD, WOOD, STONE, IRON), trên dòng GOLD là 1 dòng trống để tích dấu "X" ở đầu mỗi cột. Và ý của tác giả là muốn tính tổng các ô của cùng 1 dòng có dấu "X" ở trên đầu mỗi cột đó(Ví dụ cộng các ô được tích dấu "X") của cả 2 bảng vào bảng tổng hợp ở phía dưới.
- Còn bạn thì hiểu tác giả muốn tính tổng của tất cả các côt có dấu "X" trên đầu đúng không?
Bạn xem lại File xem có đúng vậy không?
- Ai đúng ai sai thì phải chờ tác giả!
Hy vọng tôi không mất công vô ích!
Tôi không tải được file gốc của tác giả nên phải tải file của bạn, nếu bạn làm đúng thì đừng có đặt công thức =SUMx(B2:D4) ở E3 để người khác hiểu nhầm.
Riêng bài nay tôi đề xuất dùng SUMPRODUCT, bảng thứ nhất:
Mã:
=SUMPRODUCT(($B$2:$K$2<>"")*($A$3:$A$6=A19)*$B$3:$K$6)
 
Tôi góp ý với code bạn viết trong bài #13:
- Chưa linh động với trường hợp gõ ký tự khác thay cho X. Nếu có check khác và cần tính tổng theo từng check?
- Chưa dựa vào điều kiện: Vùng A19:A22 sắp xếp không theo thứ tự như dữ liệu thì SUMx vô tác dụng.
Code tôi viết sau có thể chưa tối ưu nhưng linh động hơn theo điều kiện:
Mã:
Public Function SumIIf(Rng As Range, CrR As String, _
CrC As String) As Double
Dim iR As Integer, jC As Integer, Tmp As Double
For iR = 1 To Rng.Rows.Count
    For jC = 1 To Rng.Columns.Count
        If UCase(Rng(iR, 1)) Like UCase(CrR) _
        And UCase(Rng(1, jC)) Like UCase(CrC) Then
            Tmp = Tmp + Rng(iR, jC)
        End If
    Next jC
Next iR
SumIIf = Tmp
End Function
Công thức viết trong bài:
Mã:
=SumIIF($A$2:$K$6,A19,"X")+SumIIF($A$9:$K$13,A19,"x")
 

File đính kèm

  • Giup_Dr.JackaiA.rar
    1 MB · Đọc: 10
Ví dụ em có 1 file thế này.

View attachment 122701

Ở những ô A1, B1, C1, D1 sẽ có cái Checkbox.

Ý em muốn là ở cột F sẽ chỉ tính tổng của những cột đã check trong Checkbox, những ô không check sẽ bỏ qua, không cộng vào.

Có anh nào giúp được, xin hướng dẫn giúp em với.

Tổng hợp các ý kiến của các thành viên, tôi giúp bạn (file đính kèm). Không biết có đúng ý của bạn không?
 

File đính kèm

  • Dr.Jackal.xls
    16.5 KB · Đọc: 10
Lần chỉnh sửa cuối:
Tổng hợp các ý kiến của các thành viên, tôi giúp bạn (file đính kèm). Không biết có đúng ý của bạn không?
nhảy đại dzô, hỏng biết đúng hng nữa
Mã:
G2=SUMIF($A$1:$F$1,"true",A2:F2)
Cả 2 cùng xem lại bài #13, có file gốc và giải thích của bạn chuot0106 rất rõ ràng (Dấu gạch - thứ 2).
Vì tôi cũng đã bị nhầm ở bài #12.
 
Cả 2 cùng xem lại bài #13, có file gốc và giải thích của bạn chuot0106 rất rõ ràng (Dấu gạch - thứ 2).
Vì tôi cũng đã bị nhầm ở bài #12.
Cũng chỉ cần SUMIF cho ô B19:
Mã:
=SUMIF($B$2:$F$2,"x",B3:F3)+SUMIF($B$9:$F$9,"x",B10:F10)
Còn dùng SUMPRODUCT thì CT cho B19:
Mã:
=SUMPRODUCT(($B$2:$F$2<>"")*($A$3:$A$13=A19),$B$3:$F$13)
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom