Hàm max có điều kiện (1 người xem)

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

khicona10

Thành viên mới
Tham gia
31/10/11
Bài viết
40
Được thích
3
Em đang gặp 1 bài toán mà em dung công thức max ứng với điều kiện nhưng không được
VÍ DỤ
A B C
1 33 0 35
2 33 2.75
3 33 5.5
4 34 0
5 34 3.25
6 34 6.5
7 35 0
8 35 3.5
9 35 7
Em muốn tìm giá trị max ứng với C1 em viết theo công thúc điều kiện max nhưng nó toàn trả về 0
{=max((A1:A9=C1)*(B1:B9))}
Mong mấy bác giúp em với
 
Lần chỉnh sửa cuối:
Em đang gặp 1 bài toán mà em dung công thức max ứng với điều kiện nhưng không được
VÍ DỤ
A B C
1 33 0 35
2 33 2.75
3 33 5.5
4 34 0
5 34 3.25
6 34 6.5
7 35 0
8 35 3.5
9 35 7
Em muốn tìm giá trị max ứng với C1 em viết theo công thúc điều kiện max nhưng nó toàn trả về 0
{=max((A1:A9=C1)*(B1:B9))}
Mong mấy bác giúp em với


ý đồ của bạn có phải tìm trong cột A , nếu giá trị nào bằng C1 sẽ lấy giá trị tương ứng ở cột B không ?
 
Em đang gặp 1 bài toán mà em dung công thức max ứng với điều kiện nhưng không được
VÍ DỤ
A B C
1 33 0 35
2 33 2.75
3 33 5.5
4 34 0
5 34 3.25
6 34 6.5
7 35 0
8 35 3.5
9 35 7
Em muốn tìm giá trị max ứng với C1 em viết theo công thúc điều kiện max nhưng nó toàn trả về 0
{=max((A1:A9=C1)*(B1:B9))}
Mong mấy bác giúp em với

Bạn nói khó hiểu đề quá, thật đó. tóm lại bạn muốn tìm max theo C1(là như thế nào?) hay là tìm Max cột C so với 2 cột A, B...???
 
ĐÚng bạn ah! mong bạn giúp đỡ. Cảm ơn
 
Em đang gặp 1 bài toán mà em dung công thức max ứng với điều kiện nhưng không được
VÍ DỤ
A B C
1 33 0 35
2 33 2.75
3 33 5.5
4 34 0
5 34 3.25
6 34 6.5
7 35 0
8 35 3.5
9 35 7
Em muốn tìm giá trị max ứng với C1 em viết theo công thúc điều kiện max nhưng nó toàn trả về 0
{=max((A1:A9=C1)*(B1:B9))}
Đúng rồi bạn ah! mong bạn giúp đỡ cho mình. Vì mình lập cả hôm qua mà nó vẫn không thể xuất ra được
 
Uhm đúng như ý bạn nói mình muốn tìm giá trị max ở cột B ứng với giá trị ở cột A có điều kiện = cột C

bạn up file lên cho dễ hiểu , hoặc đưa 1 ví dụ công thức, hay 1 kết quả con số cụ thể, cứ giả lập theo cách của bạn sẽ khó hình dung lắm

Mình hiểu theo cách của bạn như thế này : C1 = 0.35 , tìm từ A1 : A9
giả sử A3 = 0.35 = C1 thì lấy giá trị B3 đúng không ?

nếu đúng thì có khác gì : = vlookup( C1,A:B,2,0) không ?
 
Lần chỉnh sửa cuối:
bạn up file lên cho dễ hiểu , hoặc đưa 1 ví dụ công thức, hay 1 kết quả con số cụ thể, cứ giả lập theo cách của bạn sẽ khó hình dung lắm

Mình hiểu theo cách của bạn như thế này : C1 = 0.35 , tìm từ A1 : A9
giả sử A3 = 0.35 = C1 thì lấy giá trị B3 đúng không ?
Uhm! nhưng vì bảng excel mình kích cỡ khá lớn nên sợ up lên khó khăn, tại mình đang dùng 3g. Mong bạn thông cảm cho mình !
 
bạn up file lên cho dễ hiểu , hoặc đưa 1 ví dụ công thức, hay 1 kết quả con số cụ thể, cứ giả lập theo cách của bạn sẽ khó hình dung lắm

Mình hiểu theo cách của bạn như thế này : C1 = 0.35 , tìm từ A1 : A9
giả sử A3 = 0.35 = C1 thì lấy giá trị B3 đúng không ?

nếu đúng thì có khác gì : = vlookup( C1,A:B,2,0) không ?
Nhưng file excel mình có nhiều giá trị trùng lặp với nhau thì dùng hàm vlookup không được bạn ah!
 
Với dữ liệu bạn đưa ra ở bài 1 và C1 = 33 thì công thức =MAX((A1:A9=C1)*(B1:B9)) chắc chắn cho kết quả = 5.5
Bạn làm cái quỷ gì mà ra zero vậy?

EM gởi thầy file này mong thầy giúp đỡ thêm cho em, em cũng không biết như thế nào mà nó lại ra 0 nữa. Giá trị em cần tìm ở bảng Sheet2 thưa thầy. Em cám ơn thầy nhiều
 

File đính kèm

Lần chỉnh sửa cuối:
Tìm max mà vẫn dùng vlookup được ạ???

tại bạn ý mô tả khó hình dung quá, nên mình đoán 1 công thức coi như là gợi ý ! bây h có thể diễn đạt câu hỏi bạn ý như sau :

Mã:
Public Function maxif(dkien As Double, v1 As Range, v2 As Range) As Double
    Dim i As Integer
    Dim arr()
        A = v1.Value
        B = v2.Value
        ReDim arr(1 To UBound(B,1)
        For irow = 1 To UBound(A,1)
            If A(irow, 1) = dkien Then
                i = i + 1
                arr(i) = B(irow, 1)
            End If
        Next
        maxif = WorksheetFunction.Max(arr)
End Function
 
Lần chỉnh sửa cuối:
tại bạn ý mô tả khó hình dung quá, nên mình đoán 1 công thức coi như là gợi ý ! bây h có thể diễn đạt câu hỏi bạn ý như sau :

Mã:
Public Function maxif(dkien As Double, v1 As Range, v2 As Range) As Double
    Dim i As Integer
    Dim arr()
        A = v1.Value
        B = v2.Value
        ReDim arr(1 To UBound(B(1)))
        For irow = 1 To UBound(A(1))
            If A(irow, 1) = dkien Then
                i = i + 1
                arr(i) = B(irow, 1)
            End If
        Next
        maxif = WorksheetFunction.Max(arr)
End Function
Thành thật xin lỗi mọi người nhưng vì bảng tính của mình lên tới 4mb nên không up lên được.
 
EM gởi thầy file này mong thầy giúp đỡ thêm cho em, em cũng không biết như thế nào mà nó lại ra 0 nữa. Giá trị em cần tìm ở bảng Sheet2 thưa thầy. Em cám ơn thầy nhiều

Hóa ra pác này làm ngành xây dựng, 33 là tên frame ( thanh), bác muốn lực dọc P lớn nhất của frame 33 ah,

pác xem đoạn code mình gửi ở bên dưới, ( mình cũng chưa thử đâu, vì đg không ngồi ở nhà ^^ ), tại yêu diễn đàn excel nên buổi sáng nào cũng vào đọc thông tin , như đọc báo dantrị .com. vn hằng ngày
 
Hóa ra pác này làm ngành xây dựng, 33 là tên frame ( thanh), bác muốn lực dọc P lớn nhất của frame 33 ah,

pác xem đoạn code mình gửi ở bên dưới, ( mình cũng chưa thử đâu, vì đg không ngồi ở nhà ^^ ), tại yêu diễn đàn excel nên buổi sáng nào cũng vào đọc thông tin , như đọc báo dantrị .com. vn hằng ngày
Dạ vâng bạn ah! code trên vẫn thiếu, nhưng mình muốn tìm giá trị ứng với thanh số 33 thì có chiều cao lớn nhất ấy
 
Lần chỉnh sửa cuối:
EM gởi thầy file này mong thầy giúp đỡ thêm cho em, em cũng không biết như thế nào mà nó lại ra 0 nữa. Giá trị em cần tìm ở bảng Sheet2 thưa thầy. Em cám ơn thầy nhiều
Bạn có để ý thấy rằng giá trị cột A của Sheet1 thuộc dạng Text, còn con số 33 ở sheet2 là number ---> Vậy sao mà so sánh?
Có chăng sửa lại công thức thế này:
Mã:
=MAX((Sheet1!A3:A602=TEXT(A3,"@"))*(Sheet1!B3:B602))
Đoạn TEXT(A3,"@") là để chuyển số 33 ở cell A3 thành dạng Text
 
Bạn có để ý thấy rằng giá trị cột A của Sheet1 thuộc dạng Text, còn con số 33 ở sheet2 là number ---> Vậy sao mà so sánh?
Có chăng sửa lại công thức thế này:
Mã:
=MAX((Sheet1!A3:A602=TEXT(A3,"@"))*(Sheet1!B3:B602))
Đoạn TEXT(A3,"@") là để chuyển số 33 ở cell A3 thành dạng Text
Dạ thưa thầy em cám ơn thầy rất nhiều!
 
Dạ vâng bạn ah! code trên vẫn thiếu, nhưng mình muốn tìm giá trị ứng với thanh số 33 thì có chiều cao lớn nhất ấy
Cột A sheet1 của bạn đâu phải là Number?
1/ Hoặc Bạn format A3 sheet2 là text rồi nhập lại ô A3.
2/ Hoặc bạn sửa công thức =MAX((Sheet1!A3:A602*1=Sheet2!A3)*(Sheet1!B3:B602)) -Ctrl+Shift+Enter
Dạ thưa thầy em cám ơn thầy rất nhiều!
Chắc chắn là bạn Không dùng tổ hợp Ctrl+Shift+Enter. Nó là công thức mảng, Enter bình thường đâu có được "Chời"
 
Lần chỉnh sửa cuối:
Cột A sheet1 của bạn đâu phải là Number?
1/ Hoặc Bạn format A3 sheet2 là text rồi nhập lại ô A3.
2/ Hoặc bạn sửa công thức =MAX((Sheet1!A3:A602*1=Sheet2!A3)*(Sheet1!B3:B602)) -Ctrl+Shift+Enter

Chắc chắn là bạn Không dùng tổ hợp Ctrl+Shift+Enter. Nó là công thức mảng, Enter bình thường đâu có được "Chời"

Nhân 1 cũng được nhưng sẽ tiềm ẩn nguy cơ anh à ---> Trường hợp cột A có "cái gì đó" khiến cho việc nhân 1 trở thành lỗi #VALUE! thì coi như.. tèo
Ẹc... Ẹc...
 

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

Back
Top Bottom