Tính Tổng MAX của nhiều dòng bắng 1 công thức duy nhất?

Liên hệ QC

bebo021999

Thành viên gạo cội
Tham gia
26/1/11
Bài viết
5,837
Được thích
8,567
Điểm
3,168
Nơi ở
TPHCM, Gò Vấp
Donate (Momo)
Donate
Giới tính
Nam
Nghề nghiệp
GPE
Tôi có các ô có các giá trị như sau:

A2=5 B2=8
A3=6 B3=2

Câu hỏi 1: Tính tổng các giá trị lớn nhất của từng dòng.
Cách giải thông thường: C2=MAX(A2:B2); C3=MAX(A3:B3)
Tổng MAX: C4 = SUM(C2:C3) = 8 + 6 = 14

Câu hỏi 2: Không dùng C2 và C3, chỉ dùng 1 công thức duy nhất tại C4?
Có vẻ đơn giản, tuy nhiên nghĩ mãi không ra.

Ghi chú: Số lượng dòng và cột trên thực tế có thể rất nhiều, không thể gõ tay.

Nhờ Anh, chị, em, cô, dì, chú, bác chỉ giáo, xin cám ơn!
 
Tôi có các ô có các giá trị như sau:

A2=5 B2=8
A3=6 B3=2

Câu hỏi 1: Tính tổng các giá trị lớn nhất của từng dòng.
Cách giải thông thường: C2=MAX(A2:B2); C3=MAX(A3:B3)
Tổng MAX: C4 = SUM(C2:C3) = 8 + 6 = 14

Câu hỏi 2: Không dùng C2 và C3, chỉ dùng 1 công thức duy nhất tại C4?
Có vẻ đơn giản, tuy nhiên nghĩ mãi không ra.

Ghi chú: Số lượng dòng và cột trên thực tế có thể rất nhiều, không thể gõ tay.

Nhờ Anh, chị, em, cô, dì, chú, bác chỉ giáo, xin cám ơn!
Xin hỏi là anh đố hay là anh hỏi?
 
Hic, không biết mới hỏi, nghĩ mãi chưa ra.
Với 1 array, để cho ra 1 array kết quả (theo dòng), dùng MAX hoài không được.
huuthang có cách nào không?
Công thức tại ô C4 :
PHP:
=SUMPRODUCT(SUBTOTAL(4,OFFSET($A$2:$B$3,ROW(INDIRECT("1:"&ROWS($A$2:$B$3)))-1,,1,)))
He he!
 
Công thức tại ô C4 :
PHP:
=SUMPRODUCT(SUBTOTAL(4,OFFSET($A$2:$B$3,ROW(INDIRECT("1:"&ROWS($A$2:$B$3)))-1,,1,)))
He he!
Cái này hay thiệt nhưng bị "dài", bớt lại "chút đỉnh":
PHP:
=SUMPRODUCT(SUBTOTAL(4;OFFSET($A$2:$B$3;ROW(INDIRECT("1:2"))-1;;1;)))
Hè hè!
 
Cái này hay thiệt nhưng bị "dài", bớt lại "chút đỉnh":
PHP:
=SUMPRODUCT(SUBTOTAL(4;OFFSET($A$2:$B$3;ROW(INDIRECT("1:2"))-1;;1;)))
Hè hè!
Sửa như bác thì thà sửa ROW(INDIRECT("1:2")) thành {1,2} cho xong. Vẫn phải dùng ROWS vì thực tế có nhiều dòng.
Có rút gọn bớt thì thế này:
PHP:
=SUMPRODUCT(SUBTOTAL(4,OFFSET($A$2:$B$2,ROW(INDIRECT("1:"&ROWS($A$2:$B$3)))-1,)))
Cám ơn hoamattroi vì cái Subtotal nhé
 
Vậy mời cafe em đi, em nhớ cafe Hồ Gươm rồi, hì hì!
Subtotal có làm việc được với mảng ảo không Còi? VD: thay A2:B2 bằng IF(A2:B2>5,A2:B2,"") sẽ chuyển mảng {5,8} thành {"",8}
Có nghĩa là Subtotal cho 1 mảng với điều kiện cho mảng.
Xong vụ này book vé ra HN ngay dẫn Còi đi cafe bờ Hồ
...ẹc...ẹc...
 
Subtotal có làm việc được với mảng ảo không Còi? VD: thay A2:B2 bằng IF(A2:B2>5,A2:B2,"") sẽ chuyển mảng {5,8} thành {"",8}
Có nghĩa là Subtotal cho 1 mảng với điều kiện cho mảng.
Sao không Test thử mà còn hỏi em vậy trời! Hic!
Tuy nhiên khi làm việc với vùng dữ liệu ảo cần chú ý nếu số lớn hơn số dòng của Excel thì công thức trên sẽ có vấn đề. Trong trường hợp này thì khó xảy ra vì ta đang làm việc với 1 vùng dữ liệu thực và có sẵn và Row() của vùng không thế vượt số dòng.
 
Subtotal có làm việc được với mảng ảo không Còi? VD: thay A2:B2 bằng IF(A2:B2>5,A2:B2,"") sẽ chuyển mảng {5,8} thành {"",8}
Có nghĩa là Subtotal cho 1 mảng với điều kiện cho mảng.
Xong vụ này book vé ra HN ngay dẫn Còi đi cafe bờ Hồ
...ẹc...ẹc...
A2:B3 là mảng thực, nhưng Rows(A2:B3) đã là ảo rồi, lại còn Indirect nữa!
Hỏi gì mà hỏi ngộ ả.
 
Sao không Test thử mà còn hỏi em vậy trời! Hic!
Đây là câu hỏi tu từ mà.
Vì đã test rồi không được. Có cách nào khác không?

A2:B3 là mảng thực, nhưng Rows(A2:B3) đã là ảo rồi, lại còn Indirect nữa!
Hỏi gì mà hỏi ngộ ả.
rows(A2:B3) chỉ là tham số thôi ạ. Em chỉ đề cập đến vùng đối tượng của hàm.
VD: COUNTIF(A2:B2,A2:B2) thì OK. Nhưng COUNTIF(IF(A2:B2>5,A2:B2,0),IF(A2:B2>5,A2:B2,0)) thì "tèo".
Trường hợp SUBTOTAL cũng tương tự.
Sư phụ và các anh chị em có chỉ giáo gì không ạ?
 
Tôi có các ô có các giá trị như sau:

A2=5 B2=8
A3=6 B3=2

Câu hỏi 1: Tính tổng các giá trị lớn nhất của từng dòng.
Cách giải thông thường: C2=MAX(A2:B2); C3=MAX(A3:B3)
Tổng MAX: C4 = SUM(C2:C3) = 8 + 6 = 14

Câu hỏi 2: Không dùng C2 và C3, chỉ dùng 1 công thức duy nhất tại C4?
Có vẻ đơn giản, tuy nhiên nghĩ mãi không ra.

Ghi chú: Số lượng dòng và cột trên thực tế có thể rất nhiều, không thể gõ tay.

Nhờ Anh, chị, em, cô, dì, chú, bác chỉ giáo, xin cám ơn!
Bài SUM CỰC TRỊ này có trên diễn đàn từ đời nào
http://www.giaiphapexcel.com/forum/...ổng-cực-trị-trong-các-dòng-của-1-vùng-dữ-liệu
Không chịu tìm trước khi hỏi
 
Bài SUM CỰC TRỊ này có trên diễn đàn từ đời nào
http://www.giaiphapexcel.com/forum/...ổng-cực-trị-trong-các-dòng-của-1-vùng-dữ-liệu
Không chịu tìm trước khi hỏi
Ẹc...Ẹc...
Công thức thì tương tự như của hoamattroi ạ, em biết rồi ạ.
Tuy nhiên công thức chỉ dựa trên vùng tham chiếu cụ thể thể hiện trên 1 vùng của bảng tính (A2:B2). Chứ còn dựa trên vùng tạo ra từ công thức thì bó tay.
Sư phụ có cao kiến gì không ạ?
 
Ẹc...Ẹc...
Công thức thì tương tự như của hoamattroi ạ, em biết rồi ạ.
Tuy nhiên công thức chỉ dựa trên vùng tham chiếu cụ thể thể hiện trên 1 vùng của bảng tính (A2:B2). Chứ còn dựa trên vùng tạo ra từ công thức thì bó tay.
Sư phụ có cao kiến gì không ạ?
Vùng tạo từ công thức là sao? Bạn cho file ví dụ xem!
 
Sư phụ đọc các bài trước sẽ rõ.
VD: thay A2:D2 bằng IF(A2:D2>5,A2:D2,"") sẽ chuyển mảng {5,6,8,2} thành {"",6,8,""}
Vậy trả lời luôn: SUBTOTAL không làm việc với Array, chỉ làm việc với Range mà thôi
Vậy, nếu muốn dùng nó thì "buộc" bạn phải bỏ hết những gì trước đó đã làm (cái mảng bạn đã tạo ra ấy)
Cùng quá thì VBA, gần như không có gì là không làm được
(nghĩ cũng lạ, với trình độ của bebo, lý ra học VBA rất nhanh, sao giờ này vẫn còn loay hoay với mấy cái công thức nhỉ? Ẹc... Ẹc...)
 
Vậy trả lời luôn: SUBTOTAL không làm việc với Array, chỉ làm việc với Range mà thôi
Vậy, nếu muốn dùng nó thì "buộc" bạn phải bỏ hết những gì trước đó đã làm (cái mảng bạn đã tạo ra ấy)
Cùng quá thì VBA, gần như không có gì là không làm được
(nghĩ cũng lạ, với trình độ của bebo, lý ra học VBA rất nhanh, sao giờ này vẫn còn loay hoay với mấy cái công thức nhỉ? Ẹc... Ẹc...)

Xin cảm ơn sư phụ. Về VBA thì em "chịu":

Diễn đàn dạo này "cốt" đang sốt
Nghĩ mãĩ có nên đi học "cốt"?
Đầu đội "công thức", vai đeo "cốt"
Nghoẹo cổ, ẹo lưng... đành chịu dốt.
 
Xin cảm ơn sư phụ. Về VBA thì em "chịu":

Diễn đàn dạo này "cốt" đang sốt
Nghĩ mãĩ có nên đi học "cốt"?
Đầu đội "công thức", vai đeo "cốt"
Nghoẹo cổ, ẹo lưng... đành chịu dốt.
Em đang tưởng tượng theo những gì anh viết, haizzzzz, như vậy chắc
em chết ặc... từ lâu rồi. Có sống cũng không thành hình người, "ngoẹo cổ, ẹo lưng", huhu!
Học CODE đi anh, học xong sẽ thấy dùng nó khoái hơn công thức đó, tạm quên hết công thức đi. Anh có khả năng và chăm online trên diễn đàn thế chắc chắn sẽ học rất nhanh đó.
Cố lên bebo! Tự tin làm mới chính mình!
Thanks!
 
em thì nghĩ đơn giản hơn
sum(max(A2,B2), max(a3,b3)) là OK
 
Xin cảm ơn sư phụ. Về VBA thì em "chịu":

Diễn đàn dạo này "cốt" đang sốt
Nghĩ mãĩ có nên đi học "cốt"?
Đầu đội "công thức", vai đeo "cốt"
Nghoẹo cổ, ẹo lưng... đành chịu dốt.

Đề nghị chúng ta hạn chế việc làm thơ trong Box chuyên môn nha! :)
 
Web KT
Back
Top