làm thế nào để excel chỉ cộng những ô dữ liệu thô (bỏ qua những ô có dấu =) (1 người xem)

  • Thread starter Thread starter LinDan
  • Ngày gửi Ngày gửi

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

LinDan

Thành viên tiêu biểu
Tham gia
8/2/12
Bài viết
412
Được thích
111
Xin hỏi các thày, anh chị,các bạn liệu có cách nào dùng hàm gì mà cho kết quả tựa như hàm Sum tức tự động cộng tất cả các ô cùng cột đứng trên nó nhưng với điều kiện bỏ qua những ô có công thức (bỏ qua những ô có dấu bằng).

ví dụ tại ô A11 khi tham chiếu qua vùng tham chiếu do ta chọn (ở file đính kèm là A5:A10) sẽ cho kết quả như minh họa đính kèm.
 

File đính kèm

Xin hỏi các thày, anh chị,các bạn liệu có cách nào dùng hàm gì mà cho kết quả tựa như hàm Sum tức tự động cộng tất cả các ô cùng cột đứng trên nó nhưng với điều kiện bỏ qua những ô có công thức (bỏ qua những ô có dấu bằng).

ví dụ tại ô A11 khi tham chiếu qua vùng tham chiếu do ta chọn (ở file đính kèm là A5:A10) sẽ cho kết quả như minh họa đính kèm.

*Nếu trong file bạn có thể ẩn đi các ô chứa công thức : thì dùng subtotal
* còn không , có khi mình nghĩ phải dùng hàm tự tạo bạn ah
 
Nếu dùng VBA thì xem thử cái này. Mình không thạo viết UDF (viết thử kq = 75).
Mã:
Sub Sumx()
    [a2] = Application.Sum([a5:a12].SpecialCells(2))
End Sub
 
Lần chỉnh sửa cuối:
Kể cũng lạ. Rất nhiều người sử dụng cần đến dữ liệu trong formula mà sao Microsoft không viết cái hàm Formula nhỉ. Hàm tự tạo chỉ thế này thôi
PHP:
Function Fml( a as range)
Fml=a.formula
End function
 
Xin hỏi các thày, anh chị,các bạn liệu có cách nào dùng hàm gì mà cho kết quả tựa như hàm Sum tức tự động cộng tất cả các ô cùng cột đứng trên nó nhưng với điều kiện bỏ qua những ô có công thức (bỏ qua những ô có dấu bằng).

ví dụ tại ô A11 khi tham chiếu qua vùng tham chiếu do ta chọn (ở file đính kèm là A5:A10) sẽ cho kết quả như minh họa đính kèm.

Không cần Code VBA
Đơn giản là chỉ đặt 1 Name tới các ô không có dấu =
=Sum(TT)
Bôi đen vùng cần cộng\CTrl+G\Cpecial..\Constants\Number ...\Ok\Đặt name là TT
=> công thức cộng vùng số không có công thức =Sum(TT)
Tương tự làm cho cộng các ô có công thức
=Sum(CT)
 

File đính kèm

Xin hỏi các thày, anh chị,các bạn liệu có cách nào dùng hàm gì mà cho kết quả tựa như hàm Sum tức tự động cộng tất cả các ô cùng cột đứng trên nó nhưng với điều kiện bỏ qua những ô có công thức (bỏ qua những ô có dấu bằng).

ví dụ tại ô A11 khi tham chiếu qua vùng tham chiếu do ta chọn (ở file đính kèm là A5:A10) sẽ cho kết quả như minh họa đính kèm.

Tôi nghĩ với DỮ LIỆU THẬT sẽ có cách làm tốt hơn (thậm chí chỉ dùng công thức bình thường)
Còn dữ liệu giả lập của bạn nó.. chả ra làm sao cả (không hình dung được tổng thể)
 
Tôi nghĩ với DỮ LIỆU THẬT sẽ có cách làm tốt hơn (thậm chí chỉ dùng công thức bình thường)
Còn dữ liệu giả lập của bạn nó.. chả ra làm sao cả (không hình dung được tổng thể)

Thầy ơi với cách bài #5 chỉ dùng hàm Sum(Name) em thấy kết quả ổn mà,
với cách này thì ở 1 cột hay nhiều cột thì vẫn cộng được
 
Thầy ơi với cách bài #5 chỉ dùng hàm Sum(Name) em thấy kết quả ổn mà,
với cách này thì ở 1 cột hay nhiều cột thì vẫn cộng được

Chẳng ổn chút nào vì cuối cùng bạn cũng làm bằng tay (chổ đặt name)
Vậy nên khi dữ liệu thay đổi (chẳng hạn thay đổi từ 1 hằng số thành công thức) thì kết quả sai bét
Ví dụ:
- Cell A11 hiện tại đang có kết quả =14 là kết quả từ phép cộng các cell A5, A6 và A8
- Giờ tại cell A5, tôi sửa thành =9*2 (biến hằng số thành 1 công thức)
Vậy công thức tại A11 của bạn nó có tự cập nhật kết quả thành 12 được không? (tức loại cell A5 ra)
--------------
Tôi nghĩ rằng dữ liệu thật sẽ có mối liên hệ nào đó đối với cell chứa công thức đến các cột khác.... Vì vậy, nếu là dữ liệu thật, ta có thể dựa vào mối liên hệ này để đặt công thức chính xác (mà chẳng cần quan tâm vùng cần SUM có công thức hay không)
 
Lần chỉnh sửa cuối:
Vâng em chưa tính cái trường hợp cập nhật kết quả lại, để cập nhật kết quả được có lẽ cái Name kia phải động đậy được
Đợi thầy viết giúp Code cho name kia động được, Em mới nhập môn VBA thầy ạ
Name tự thay đổi khi nhập dữ liệu là công thức thì loại bỏ phần tử ấy ra khỏi Name, dữ liệu là số thì thêm vào Name
 
Vâng em chưa tính cái trường hợp cập nhật kết quả lại, để cập nhật kết quả được có lẽ cái Name kia phải động đậy được
Đợi thầy viết giúp Code cho name kia động được, Em mới nhập môn VBA thầy ạ
Name tự thay đổi khi nhập dữ liệu là công thức thì loại bỏ phần tử ấy ra khỏi Name, dữ liệu là số thì thêm vào Name

Lấy ví dụ thế này cho bạn dễ hình dung:
- Ta có dữ liệu 2 cột A và B
- Cứ cell nào ở cột A có chữ "Tổng Cộng" thì cell tương ứng với nó tại cột B sẽ là 1 công thức (công thức gì đó không cần biết)
- Yêu cầu: tính tổng cột B, loại trừ những cell chứa công thức

Bạn nghĩ xem, nếu dữ liệu thật giống như tôi nêu ở trên thì việc gì tôi phải tốn công đặt name hay VBA cho mệt. Tôi cứ SUMIF(Cột A, "<>Tổng Cộng", Cột B) là xong
------------------
Vậy nên cái tôi cần là 1 dữ liệu thật để biết đâu có thể tìm được mối liên hệ nào đó trong các cell chứa công thức với những cột khác ----> Từ đó có thể tìm công thức thích hợp
 
Em bận quá chưa học VBA, mò mãi mới ra kiểu đặt Name động này
Private Sub Worksheet_Change(ByVal Target As Range)
Range("A5:A10").SpecialCells(xlCellTypeConstants, 1).name = "So"
End Sub

Kết quả bài trên chỉ còn lại là: =Sum(SO)
 

File đính kèm

Lấy ví dụ thế này cho bạn dễ hình dung:
- Ta có dữ liệu 2 cột A và B
- Cứ cell nào ở cột A có chữ "Tổng Cộng" thì cell tương ứng với nó tại cột B sẽ là 1 công thức (công thức gì đó không cần biết)
- Yêu cầu: tính tổng cột B, loại trừ những cell chứa công thức

Bạn nghĩ xem, nếu dữ liệu thật giống như tôi nêu ở trên thì việc gì tôi phải tốn công đặt name hay VBA cho mệt. Tôi cứ SUMIF(Cột A, "<>Tổng Cộng", Cột B) là xong
------------------
Vậy nên cái tôi cần là 1 dữ liệu thật để biết đâu có thể tìm được mối liên hệ nào đó trong các cell chứa công thức với những cột khác ----> Từ đó có thể tìm công thức thích hợp

Vâng, cảm ơn thày, đúng là Sumfi là tiện nhất, quan trọng là kiểu bố tri dữ liệu.
 

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

Back
Top Bottom