


BNTT đã viết:Được mà PhamNhuKhang ơi, quét chọn khối cell đó (E11:E28), rồi nhấn nút chuột phải, chọn Create List... Sau đó đứng trong khối cell này, nhấn nút Toggle Total Row trên Toolbar, sẽ tự động có một cái SUBTOTAL ở E29.



Nguyễn Hương Thơm đã viết:Gửi Bác BNTT,
Làm ơn cho em hỏi, sau khi làm xong như anh hướng dẫn, mà ko muốn có subtotal nữa thì làm thế nào để thoát trở lại data bình thường?tks




Để hiểu rõ hơn về SubTotal bạn có thể xem tại đây:
http://www.giaiphapexcel.com/forum/s...9&postcount=31
http://www.giaiphapexcel.com/forum/a...0&d=1189580574




B30 =SUBTOTAL(9,B3:B29)
=SUMPRODUCT((D1:D9)*1)




anhtuan1066 đã viết:Câu 1: Bạn dùng SUBTOTAL là đúng rồi... nó sẽ bỏ quả mấy SUBTOTAL đã tính ở trên... tuy nhiên B30 lý ra phải là:
Tính từ B3 chứ ko phải B2... còn nữa, ko hiểu tại sao B26 lại có công thức =B27 ??? Xóa cell B26 đi là công thức đúng ngayMã:B30 =SUBTOTAL(9,B3:B29)
=+D2+D26
Quả thật là tuyệt.anhtuan1066 đã viết:Câu 2: Sửa công thức lại thành:
Mã:=SUMPRODUCT((D1:D9)*1)
thì bạn chẳng sợ gì dử liệu là TEXT hay NUMBER... cái gì nó cũng cộng dc tuốt
anhtuan1066 đã viết:Góp ý thêm: Bạn ko nên đặt tên sheet là tiếng Việt có dấu, hơn nữa cũng ko nên đặt tên sheet có khoảng trắng... Nói chung càng ngắn gọn càng tốt... Nếu bạn vẫn làm như hiện giờ thì sau này bạn sẽ thấy có nhiều tác hại ko lường trước dc...
ANH TUẤN




=SUBTOTAL(9,$B$2:$B$29)-SUMPRODUCT((LEN($A$2:$A$29)=1)*($B$2:$B$29))




ptm0412 đã viết:1. Sheet Subtotal hình như là 1 báo cáo tài chính hoặc Bảng CDKT rút gọn? Ký hiệu A, B không số là tổng các ký hiệu A#, B# tương ứng? A#, B# là tổng các ký hiệu A###, B### tương ứng? vậy thì em dùng sum cho A# và B#, A=A1+A2, B=B1+B2. Grand total=A+B. Cho nó đơn giản vì thực ra báo cáo tài chình đâu có dài quá 2 trang in. và đâu thể xóa B theo ý anhtuan1066.
=SUM(E2:E29)/3
. Chắc có nước Thầy Tuấn hoặc Thầy cho em ăn đòn quá.
Câu 1 :Thuyan.acc đã viết:Em xin gởi file này lên với 3 nội dung cần xử lý :
1.- Em Có thể ứng dụng subtotal vào trường hợp này không ? (file đính kèm - sheet subtotal) Ở cột B30 - Nếu cài công thức theo cột D em thấy quá dỡ vì nếu có nhiều cấp thì ngồi làm thủ công dễ sai sót.
Em có xem qua bài viết của Thầy Phong nhưng chưa biết ứng dụng trong trường hợp số liệu có nhiều cấp như file ví dụ của em.
2.- Em có copy file của ngân hàng trên webstie để biết tình hình số dư tài khoản của mình. (Ngân hàng thường cập nhật cho khách hàng các số dư tức thời) nhưng kiểu dữ liệu theo dạng file em đính kèm - sheet Xử lý số. (Xin vui lòng xem sheet này).
Khi em lập báo cáo nhanh cho chief em không muốn gõ lại số liệu trên nên em dùng copy - paste. Sau đó cộng lại không được (Dòng Total D10 - Màu xanh).
Cách làm thủ công của em là dùng copy cột A sang D rồi dùng edit lại từng số 1 - Điều này cũng dễ sai sót và quá dỡ.
3.- Cho biết Kiểu dữ định dạng giữa General và text khác nhau như thế nào. Trong trường hợp sheet - định dạng đính kèm thì nên dùng dạng text hay General. Vì khi khai báo tài khoản em định dạng General em thấy sao lúng túng chỗ này quá. Vả dọc dữ liệu nó xem không có ngay hàng thẳng lối gì cả ?
Kính nhờ Quý Thầy Cô cùng anh chị hướng dẫn em thêm.
Kính,




=SUMPRODUCT((SUBSTITUTE(SUBSTITUTE(D1:D9,",",""),".",""))*1)/100
Các bác ơi! Trong Sumproduct có tính tổng theo kiểu subtotal (chỉ tính những dòng không bị ẩn) được không vậy?
Tôi đã sử dụng hàm sum và subtotal với đối số là 9 nhưng chưa tìm thấy sự khác nhau giữa hai hàm này. Ai biết xin trả lời dùm. Xin cảm ơn.
Tôi đã sử dụng hàm sum và subtotal với đối số là 9 nhưng chưa tìm thấy sự khác nhau giữa hai hàm này. Ai biết xin trả lời dùm. Xin cảm ơn.
Hic, OkBap ơi, xem lại dùm cái định nghĩa SUBTOTAL !Hàm Sum : Sẽ cộng tất cả các giá trị trong vùng
Subtotal(đối số 9) : Sẽ cộng tất cả các giá trị trong vùng trừ các ô có chứa công thức Subtotal
Thân!

Hic, OkBap ơi, xem lại dùm cái định nghĩa SUBTOTAL !
"Cái gì không thể mua được bằng tiền thì có thể mua được bằng nhiều tiền hơn" là sao nhỉ ? nếu vậy thì cái gì cũng mua được bằng tiền hết, phải không ?






E vừa mới gia nhập diễn đàn, kiến thức về Excel còn ít ỏi quá! Mong các tiền bối chỉ dạy cho e cách sử dụng Hàm Subtotal với nhé, e đọc sách nhưng khó hiểu và chưa làm được. Cảm ơn các bác nhiều lắm!
Cái này chỉ đúng với Office từ 2003 trở lên thôi nhé! Với Office2002 về trước thì chỉ có tham số từ 1 đến 11 (không có 101 đến 111)SUBTOTAL (function_num, ref1, ref1,...)
Trong đó, function_num là những số từ 1 đến 11 (includes hidden value - bao gồm cả những giá trị ẩn), và từ 101 đến 111 (ignores hidden value - bỏ qua những giá trị ẩn)

Mình dùng hàm SUBTOTAL để tính tổng các ô không ẩn. Ví dụ
SUBTOTAL(109,A1:A100) --> khi ẩn dòng thì OK
Nhưng mình cũng muốn với cách làm như vậy đối với cột thì không được. Ví dụ
SUBTOTAL(109,A1:H1) --> khi ẩn cột thì nó vẫn tính tất cả
Vậy có công thức nào áp dụng được với cột mong được các bạn giúp đỡ. Xin cám ơn !
(Không dùng VBA)
TDN
For the function_num constants from 1 to 11, the SUBTOTAL function includes the values of [COLOR=Red][B]rows[/B][/COLOR] hidden by the Hide command under the Row submenu of the Format menu). Use these constants when you want to subtotal hidden and nonhidden numbers in a list. For the function_Num constants from 101 to 111, the SUBTOTAL function ignores values of [B][COLOR=Red]rows hidden[/COLOR][/B] by the Hide command under the Row submenu of the Format menu). Use these constants when you want to subtotal only nonhidden numbers in a list.
Function Tong(cel As Range)
For j = 1 To InStr(1, cel.Address(0, 0), ":")
k = Mid(cel.Address(0, 0), j, 1)
If IsNumeric(k) = True Then
rn1 = rn1 & k
End If
Next
For m = InStr(1, cel.Address(0, 0), ":") To Len(cel.Address(0, 0))
k = Mid(cel.Address(0, 0), m, 1)
If IsNumeric(k) = True Then
rn2 = rn2 & k
End If
Next
If rn1 = rn2 Then
For i = 1 To cel.Columns.Count
If ActiveSheet.Columns(i).Hidden <> True Then
Tong = Tong + cel.Cells(i)
End If
Next
Else
For i = 1 To cel.Rows.Count
If ActiveSheet.Rows(i).Hidden <> True Then
Tong = Tong + cel.Cells(i)
End If
Next
End If
End Function
Function SumVisible(Rng As Range)
Dim VCel As Range
Dim Temp As Double
For Each VCel In Rng
If Not VCel.Rows.Hidden And Not VCel.Columns.Hidden Then Temp = Temp + VCel
Next
SumVisible = Temp
End Function
Function Tong(cel As Range, Optional loai As String = "") Application.Volatile If UCase$(loai) "ROW" Then For i = 1 To cel.Count If ActiveSheet.Columns(cel.Cells(i).Column).Hidden True Then Tong = Tong + cel.Cells(i) End If Next Else For i = 1 To cel.Count If ActiveSheet.Rows(cel.Cells(i).Row).Hidden True Then Tong = Tong + cel.Cells(i) End If Next End If End Function
Function SumVisible(Rng As Range)
Dim VRng As Range
Application.Volatile
Set VRng = Rng.SpecialCells(xlCellTypeVisible)
SumVisible = Application.WorksheetFunction.Sum(VRng)
End Function
Sub Test()
Dim VRng As Range
Set VRng = Selection.SpecialCells(xlCellTypeVisible)
MsgBox Application.WorksheetFunction.Sum(VRng)
End Sub
Tôi cũng nghĩ đây là cách nhanh nhất!Có lẽ, dùng vòng lặp duyệt từng cột có ẩn hay không, nếu không ẩn thì Subtotal và đưa kết quả vào mảng ; Sau đó cộng các mảng đó lại.
Function SumVisible(Rng As Range) As Double
Dim i As Integer
Dim iRng As Range
Dim Temp As Double
Application.Volatile
For i = 1 To Rng.Columns.Count
If Not Rng(, i).Columns.Hidden Then
Set iRng = Rng(, i).Resize(Rng.Rows.Count, 1)
Temp = Temp + Application.WorksheetFunction.Subtotal(109, iRng)
End If
Next
SumVisible = Temp
End Function
Cám ơn anh, em thấy kết quả như ý rồi nhưng kẹt chỗ : khi ẩn cột thì F9 nó mới chịu Calculate, hic hicTôi cũng nghĩ đây là cách nhanh nhất!
Điều này đương nhiên rồi, vì ẩn hiện cột đâu phải là sự kiện change... Chính vì lẽ đó nên tôi phải thêm Application.Volatile vàoCám ơn anh, em thấy kết quả như ý rồi nhưng kẹt chỗ : khi ẩn cột thì F9 nó mới chịu Calculate, hic hic
Thân
TDN

Điều này đương nhiên! Kết quả của 1 công thức chỉ được cập nhật khi có sự thay đổi giá trị tại các cell khác



Còn nữa: Tôi nghĩ code trên cần phải cải tiến thêm trong 1 vài trường hợp đặc biệt, chẳng hạn như range là 2 vùng không liên tục ---> Vậy phải viết code thế nào đây? Mong thầy gợi ý thêm (khó quá, chưa nghĩ ra được)
Public Function SumVisible(ParamArray a() As Variant) As Double
Dim rng As Variant
Dim value As Double
Application.Volatile
value = 0
For Each rng In a
If Not TypeName(rng) = "Range" Then
value = ""
Exit For
End If
For Each c In rng.Cells
If c.EntireColumn.Hidden = False And c.EntireRow.Hidden = False Then
If IsNumeric(c.value) = True Then
value = value + c.value
End If
End If
Next
Next
SumVisible = value
End Function











ai làm ơn giúp e vớikhi e sử dụng hàm subtotal, dùng chức năng lọc dữ liệu thì mất dữ liệu ở dòng tổng cộng, xin mọi người hướng dẫn e lọc để có dữ liệu ở dòng tổng cộng với
Bạn tìm hiểu sự khác nhau về tham số FUNCTION_NUM là 9 và 109 trong hàm subtotal nhé.ai làm ơn giúp e với




e đã tìm hiểu và thay tham số rồi vẫn không lọc được dữ liệu, làm ơn chỉ giúp cho e ví dụBạn tìm hiểu sự khác nhau về tham số FUNCTION_NUM là 9 và 109 trong hàm subtotal nhé.
Trong help subtotal có câu:e đã tìm hiểu và thay tham số rồi vẫn không lọc được dữ liệu, làm ơn chỉ giúp cho e ví dụ
do vậy tham số này có hiệu lực với lệnh hiden và unhide (hoặc với alt+shift+->) còn với filter thì nó chỉ tính toán trên phần đã lọc được.For the function_num constants from 1 to 11, the SUBTOTAL function includes the values of rows hidden by the Hide Rows command under the Hide & Unhide submenu of the Format command in the Cells group on the Home tab
Trong help subtotal có câu:
do vậy tham số này có hiệu lực với lệnh hiden và unhide (hoặc với alt+shift+->) còn với filter thì nó chỉ tính toán trên phần đã lọc được.
Do vậy với trường hợp của bạn nên dùng 1 trong 2 cái, nếu dùng subtotal thì dùng alt+shift+-> và không filter trường "ghi nhớ" nữa, còn nếu dùng filter thì thay subtotal bằng sum cho đơn thuần.
Và hình như là.. hổng liên quan đến câu trả lời của bạn thì phảikhi e sử dụng hàm subtotal, dùng chức năng lọc dữ liệu thì mất dữ liệu ở dòng tổng cộng, xin mọi người hướng dẫn e lọc để có dữ liệu ở dòng tổng cộng với




làm ơn chỉ giúp cho e cách lọcHình như người ta hỏi vầy:
Và hình như là.. hổng liên quan đến câu trả lời của bạn thì phải
làm ơn chỉ giúp cho e cách lọc








em up file ảnh lên mong anh xem và giúp đỡ cho e, e không hiểu thế nào nữa cảTôi không biết chỉ bạn cái gì nữa... vì tôi test trên máy tôi (dùng Office 2010), mọi thứ đều bình thường