Tự động không cộng khi hide dòng (cột) đó??? (7 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

leducnhu

Thành viên chính thức
Tham gia
29/11/08
Bài viết
76
Được thích
9
em nhờ các bác việc này nhé.
Hiện em đang muốn thế này bình thường em cộng từ A5 đến A50 chẳng hạn thì ok, nhưng em muốn khi nào em hide các dòng trọng phạm vi trên thì nếu dòng nào bị Hide thì Cell trên dòng đó sẽ không được cộng vào công thức. ví dụ em Hide dòng số 10 và 11 đi thì công thức sẽ ko cộng giá trị tại A10 nữa lúc đó nó chỉ cộng từ A5 đến A9 và A12 đến A50, hoặc tương tự đối với cột cũng vậy. trong Excel có công thức nào vậy không các bác chỉ dùm em với nhé.
Thanks
 
Hàm SUBTOTAL giải quyết được yêu cầu của bạn --> =SUBTOTAL(109 , Vùng chọn).
 
em nhờ các bác việc này nhé.
Hiện em đang muốn thế này bình thường em cộng từ A5 đến A50 chẳng hạn thì ok, nhưng em muốn khi nào em hide các dòng trọng phạm vi trên thì nếu dòng nào bị Hide thì Cell trên dòng đó sẽ không được cộng vào công thức. ví dụ em Hide dòng số 10 và 11 đi thì công thức sẽ ko cộng giá trị tại A10 nữa lúc đó nó chỉ cộng từ A5 đến A9 và A12 đến A50, hoặc tương tự đối với cột cũng vậy. trong Excel có công thức nào vậy không các bác chỉ dùm em với nhé.
Thanks
Với dòng ẩn, để cộng tất cả các cell và bỏ qua các dòng ẩn này ta dùng SUBTOTAL
Tuy nhiên hàm SUBTOTAL không làm việc đối với cột ẩn ---> Để thực hiện điều này, bắt buộc dùng VBA
Nếu bạn đồng ý dùng giải pháp VBA thì ta tiếp tục nhé!
 
Với dòng ẩn, để cộng tất cả các cell và bỏ qua các dòng ẩn này ta dùng SUBTOTAL
Tuy nhiên hàm SUBTOTAL không làm việc đối với cột ẩn ---> Để thực hiện điều này, bắt buộc dùng VBA
Nếu bạn đồng ý dùng giải pháp VBA thì ta tiếp tục nhé!
Cảm ơn bác, bác giúp em viết đoạn VBA với. Cái này em mù tịt luôn đó.
thanks
 
Cảm ơn bác, bác giúp em viết đoạn VBA với. Cái này em mù tịt luôn đó.
thanks
Thì vầy đi
PHP:
Function SumVisible(Range As Range) As Double
  Dim Clls As Range
  Application.Volatile
  For Each Clls In Range
    If Clls.EntireRow.Hidden + Clls.EntireColumn.Hidden = 0 Then
      SumVisible = SumVisible + Val(Clls)
    End If
  Next
End Function
Hàm này sử dụng như hàm SUM bình thường, tức gõ vào 1 cell nào đó công thức: =SumVisible(Vùng dữ liệu)
Lưu ý:

Vì Excel không xem việc định dạng (như kẽ khung, tô màu, ẩn dòng cột) là sự kiện thay đổi dữ liệu nên khi bạn ẩn dòng cột nó sẽ chẳng tính toán gì cả ---> Phải bấm F9 để cập nhật nhé
 

File đính kèm

Tranh thủ hắn đang tạm vắng!

Ví dụ bạn đang có bảng số liệu như sau:
| M | N | O |
1 |5|3|7|
2 |5|5|7|
3 |5|7|7|
4 |5|9|7|
5 |G|P|E|

Và đã chép macro này vô module 1:

PHP:
 Option Explicit
Sub SumNoHideColumn()
 Dim Rng As Range, Clls As Range, Sum_ As Double
' Selection.Cells(1, 2).EntireColumn.Hidden = True'
 For Each Clls In Selection
   If Clls.Columns.Hidden = False Then Sum_ = Sum_ + Clls.Value
 Next Clls
 With Application.WorksheetFunction
   MsgBox .Sum(Selection), , Sum_
 End With
End Sub

Tiếp theo bạn tô chọn cột 'N' & cho nó ẩn đi;
Bước cuối: Tô chọn vùng từ M2:O3 & cho chay macro, . . . .

Chúc xuân vui vẻ! --=0
 
Ví dụ bạn đang có bảng số liệu như sau:
| M | N | O |
1 |5|3|7|
2 |5|5|7|
3 |5|7|7|
4 |5|9|7|
5 |G|P|E|

Và đã chép macro này vô module 1:

PHP:
 Option Explicit
Sub SumNoHideColumn()
 Dim Rng As Range, Clls As Range, Sum_ As Double
' Selection.Cells(1, 2).EntireColumn.Hidden = True'
 For Each Clls In Selection
   If Clls.Columns.Hidden = False Then Sum_ = Sum_ + Clls.Value
 Next Clls
 With Application.WorksheetFunction
   MsgBox .Sum(Selection), , Sum_
 End With
End Sub

Tiếp theo bạn tô chọn cột 'N' & cho nó ẩn đi;
Bước cuối: Tô chọn vùng từ M2:O3 & cho chay macro, . . . .

Chúc xuân vui vẻ! --=0
Sư phụ ơi, nếu code là 1 Sub thì đâu cần thiết phải For.. Next ---> Sao không dùng SpecialCells(12) nhỉ (món này là tuyệt chiêu của sư phụ cơ mà)
Ví dụ:
PHP:
Sub Test()
  MsgBox WorksheetFunction.Sum(Selection.SpecialCells(12))
End Sub
Ec... Ẹc...
 
Không lấy giá trị trong cột ẩn

Mình có 3 cột A, C, D chứa giá trị. cột E là tổng 3 cột kia. Ở cột E dùng công thức hay code nào để khi ẩn 1 trong 3 cột kia thì giá trị cột bị ẩn đó không được tham gia vào tính. Các bạn xem file và trợ giúp hộ mình. Xin cảm ơn nhiều!
 

File đính kèm

Mình có 3 cột A, C, D chứa giá trị. cột E là tổng 3 cột kia. Ở cột E dùng công thức hay code nào để khi ẩn 1 trong 3 cột kia thì giá trị cột bị ẩn đó không được tham gia vào tính. Các bạn xem file và trợ giúp hộ mình. Xin cảm ơn nhiều!
Xem bài này:
http://www.giaiphapexcel.com/forum/showthread.php?33782-Tự-động-không-cộng-khi-hide-dòng-(cột)-đó&
 
Mình có 3 cột A, C, D chứa giá trị. cột E là tổng 3 cột kia. Ở cột E dùng công thức hay code nào để khi ẩn 1 trong 3 cột kia thì giá trị cột bị ẩn đó không được tham gia vào tính. Các bạn xem file và trợ giúp hộ mình. Xin cảm ơn nhiều!

Bạn dùng thử code này.
Mã:
Sub Macro1()
[f2].Resize(65000).ClearContents
EndR = Cells.Find("*", , , , , 2).Row
For i = 2 To EndR
    Range("a" & i)(1, 6) = Application.Sum(Range("a" & i).Resize(, 5).SpecialCells(12))
Next
End Sub
 

File đính kèm

Vướng mắc với Công thức Subtotal

Chào các anh chị

em có một thắc mắc muốn hỏi các anh chị, mong các anh chị giúp đỡ. Khi em dùng hàm Subtotal để cộng các giá trị vùng chọn trong đó lờ đi các giá trị mình để ẩn. Tuy nhiên nếu làm theo cột thì đuợc (nghĩa là khi mình ẩn dòng thì nó có lờ đi = ok) nhưng khi cộng theo hàng để ẩn cột đi thì nó vẫn cộng cả giá trị ẩn như thường (em dùng num = 109) bác nào biết làm các nào để nó chỉ cộng hoặc lấy những giá trị không ẩn và lờ đi giá trị ẩn theo dòng được thì bảo em với

Giả dụ em có file như đính kèm. tại cột J em cần lọc những giá trị từ cột C-I (tất nhiên là em ẩn hết chỉ lấy 1 trong các cột từ C-I thôi).
Như vậy khi em ẩn các cột từ C-I đi để lại 1 cột thì em muốn cột J cho em giá trị của cột đó. Mong các bác xem và giúp đỡ!!!

Cảm ơn các bác nhiêù
Lê Như
 

File đính kèm

Lần chỉnh sửa cuối:
Chào các anh chị

em có một thắc mắc muốn hỏi các anh chị, mong các anh chị giúp đỡ. Khi em dùng hàm Subtotal để cộng các giá trị vùng chọn trong đó lờ đi các giá trị mình để ẩn. Tuy nhiên nếu làm theo cột thì đuợc (nghĩa là khi mình ẩn dòng thì nó có lờ đi = ok) nhưng khi cộng theo hàng để ẩn cột đi thì nó vẫn cộng cả giá trị ẩn như thường (em dùng num = 109) bác nào biết làm các nào để nó chỉ cộng hoặc lấy những giá trị không ẩn và lờ đi giá trị ẩn theo dòng được thì bảo em với

Cảm ơn các bác nhiêù
Lê Như
Bạn đã hỏi vấn đề này từ đời nào tại đây: (bài hỏi vào năm trước)
http://www.giaiphapexcel.com/forum/showthread.php?33782-Tự-động-không-cộng-khi-hide-dòng-(cột)-đó&
Bộ hổng có xem sao mà giờ hỏi nữa
 
Bộ hổng có xem sao mà giờ hỏi nữa
Xin lỗi bác có xem nhưng lâu rồi quên mất. Thành thật sorry nhé. Cảm ơn bác nhiều.
Tiện đây cho em hỏi cái trong Excel 2007 thì em chèn code vào đâu nhỉ. sao em tìm mãi ko thấy chỗ nào để insert module nhỉ. em mới chuyển từ 2003 sang 2007 nên nỏ biết hắn nằm ở mô cả!?!?
 
Đánh số thứ tự bỏ qua dòng ẩn

Hàm SUBTOTAL giải quyết được yêu cầu của bạn --> =SUBTOTAL(109 , Vùng chọn).

Tôi thấy ai cũng bảo dùng hàm SUBTOTAL để đánh số thứ tự các dòng còn lai sau khi ẩn các dòng khác nhưng không biết mọ người đã làm thử chưa ma bảo làm được. Tôi thấy VD nếu dòng thứ nhất đánh là 1 dòng thứ 2 bắt đầu viết hàm SUBTOTAL(103,$A$1:A1)+1 thì khi kéo hàm suống thì các dòng sau đều là cùng là kết quả là 2 lấy đâu ma được. Tại cái hàm SUBTOTA nó ra kết quả sau có hiểu kết quả trước đâu.
 
Web KT

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

Back
Top Bottom