Nhờ chỉ giúp code để tìm giá trị lớn nhất (1 người xem)

Liên hệ QC

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

huynhthanhphong93

Thành viên mới
Tham gia
6/2/14
Bài viết
17
Được thích
0
Cụ thể trong sheet1 của em có 2 cột có giá trị là C và D, cột C chỉ chứa số liệu giá trị dương và số 0 còn cột D thì chỉ chứa giá trị âm và số 0. em đan cần tìm giá trị lớn nhất giữa cột C và D trong sheet1 rồi đưa giá trị đó sang cột A trong sheet2. Nhờ các anh trên diễn đàn giúp em với. Em có ví dụ trong tệp đính kèm các anh xem giúp em với. Cảm ơn các a.
 

File đính kèm

Giá trị lớn nhất là như thế nào? bạn có thể cho một hai ví dụ (kết quả)?
 
Upvote 0
Giá trị lớn nhất là như thế nào? bạn có thể cho một hai ví dụ (kết quả)?
như trong file VD mà em gởi lên, em lấy 3 dòng đầu ra làm ví dụ thì em cần cột A bên sheet2 sẽ có các giá trị lần lượt là:
-7,027; 5,6385; 7,7819 vì em chỉ cần so sánh giá trị thôi nên số -7,027 sẽ có giá trị lớn hơn số 0, ý của em là vậy đó anh
 
Lần chỉnh sửa cuối:
Upvote 0
Tức là lọc ra số có giá trị tuyệt đối lớn nhất từ 2 cột đúng không bạn???
 
Upvote 0
Công thức dòng 1 =max(abs(D1),C1)
 
Upvote 0
Công thức dòng 1 =max(abs(D1),C1)

Công thức này chỉ hiệu nghiệm nếu đảm bảo D luôn luôn <= 0 và C luôn luôn >= 0
Nếu đã đảm bảo thế thì chỉ cần =max(-D1,C1)
Nếu không đảm bảo thì bắt buộc phải =max(abs(D1),abs(C1))

Tuy nhiên, tôi không chắc là chủ thớt có muốn chỉ lấy trị dương hay không. Nếu lấy nguyên trị thì rắc rối hơn:
=IF(abs(D1)>abs(C1),D1,C1)
 
Upvote 0
Công thức này chỉ hiệu nghiệm nếu đảm bảo D luôn luôn <= 0 và C luôn luôn >= 0
Nếu đã đảm bảo thế thì chỉ cần =max(-D1,C1)
Nếu không đảm bảo thì bắt buộc phải =max(abs(D1),abs(C1))

Tuy nhiên, tôi không chắc là chủ thớt có muốn chỉ lấy trị dương hay không. Nếu lấy nguyên trị thì rắc rối hơn:
=IF(abs(D1)>abs(C1),D1,C1)
nếu dùng công thức có sẵn của excel thì em cũng dùng =IF(MAX(C1;ABS(D1))<=C1;C1;D1) thì ra kết quả rồi anh. Và em cần lấy nguyên trị số luôn a ví dụ số -8 có giá trị lớn hơn số 6 như vậy sẽ trả về cho mình số -8 đó a. nhưng nếu dùng công thức có sẵn của excel mình phải copy tay xuống rất lâu vì dữ liệu của em có gần 800 dòng nên làm như vậy file excel có dung lượng lớn lắm. anh có thể giúp cho em 1 đoạn code có vòng lặp diễn đạt ý trên trong VBA với 1 cái button để khi click vào là nó tự so sánh 2 giá trị ở ô C1 và D1 với nhau và cho ra kết quả ở ô A1 bên sheet2 và tiếp tục xuống C2,D2.... và đến khi hết dữ liệu ở cột C1,D1 thì vòng lặp cũng tự dừng luôn ý anh.
 
Lần chỉnh sửa cuối:
Upvote 0
Nhận hàng

Bạn thử xem ưng ý chưa nhé
 
Upvote 0
Bạn thử xem ưng ý chưa nhé
Sao em click vào mà không thấy có gì xảy ra hết, không biết phải do save không đúng định dạng nên em cũng không thấy đoạn code nào trong file a gởi lên hết anh có thể save lại ở định dạng .xlsm giúp em với. cảm ơn anh đã giúp em.
 
Upvote 0
Nhận hàng

Bạn xem lại có được không nhé
 
Upvote 0
Cỡ loại công thức này thì vài chục ngàn dòng cũng chả làm nặng cái gì cả. Người ta chỉ cần để ý loại công thức tổ hợp, phải duyệt cả mảng lớn (như search, lookup, frequency, vv...; hay nặng hơn nữa là sumproduct)

Tôi không muốn nói về chủ thớt vì bạn đã có định kiến sẵn rồi, có trời mà lý luận.

Tôi chỉ gợi ý cho các bạn mới học Excel, chớ nên hiểu lầm rằng vấn đề giải quyết bằng code sẽ gọn sạch hơn công thức. Sự gọn sạch là kết quả của thiết kế bảng. Code và công thức chỉ giúp thêm vào thôi.
 
Upvote 0

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

Back
Top Bottom