giúp mình giải quyết vấn đề lấy giá trị khi so sánh

Liên hệ QC

vuphuocha

Thành viên chính thức
Tham gia
20/1/07
Bài viết
71
Được thích
26
mình đang gặp một vấn đề về so sánh để lấy giá trị cho trước:
1. Một cột giá trị cho trước, ví dụ tại cột A1: 600; 620; 630; 650; 700; 800; 810; 820... 1200
2. Một giá trị được cho bất kỳ nằm trong khoảng 500 đến 1200.
3. Công việc mà mình phải làm là so sánh giá trị của (2.) trong cột giá trị (1.) để lấy ra một giá trị bằng hoặc lớn hơn nhưng là số lớn hơn gần kề giá trị bằng trong cột A1.
VD - nếu giá trị cho là 560 thì giá trị phải lấy là 600
- nếu giá trị cho là 635 thì giá trị phải lấy là 650 (vì ở ô A1 không có giá trị 635 và 640)
Trước nay mình vẫn làm là tạo hai cột phụ: một cột có giá trị từ 500 đến 1200 và một cột có các giá trị tương ứng cho trước như từ giá trị 500 đến 600 thì cột bên cạnh đều là giá trị 600 rồi sử dụng hàm dò tìm. Nhưng cách này mình thấy không ổn nếu phải thay đổi giá trị cho trước mà vấn đề này thường xuyên xảy ra, thì mình lại phải làm lại 2 cột phụ - mất quá nhiều công sức.
xin hãy giúp mình giải quyết vấn đề này
 
Cảm ơn salam rất nhiều vì sự giúp đỡ này. Bài toán chính xác mình cần đã giải quyết được sau khi tham khảo 2 ví dụ dùm hàm sumproduct và hàm large. Câu lệnh mà mình sử dụng là
=IF(SUMPRODUCT(--(mảngdò= giá trị dò))=0;LARGE(mảngdò;SUMPRODUCT(--(mảngdò>=giá trị dò)));giá trị dò)
vì bài toán mình cần là nếu tìm thấy giá trị bằng giá trị phải kiểm tra thì lấy luôn giá trị đó, còn không thì lấy giá trị lớn gần kề. Cảm ơn salam rất nhiều.
 
Lần chỉnh sửa cuối:
Bài toán của bạn dùng mãng để giãi quyết là gọn nhất
- Giã sử cột giá trị (1) nằm từ A1:A10
- Trị dò nằm tại B1
Ta có công thức
=MIN(IF(A1:A10>=B1,A1:A10,""))
Ctrl + Shift + Enter
 
mình đang gặp một vấn đề về so sánh để lấy giá trị cho trước:
1. Một cột giá trị cho trước, ví dụ tại cột A1: 600; 620; 630; 650; 700; 800; 810; 820... 1200
2. Một giá trị được cho bất kỳ nằm trong khoảng 500 đến 1200.
3. Công việc mà mình phải làm là so sánh giá trị của (2.) trong cột giá trị (1.) để lấy ra một giá trị bằng hoặc lớn hơn nhưng là số lớn hơn gần kề giá trị bằng trong cột A1.
VD - nếu giá trị cho là 560 thì giá trị phải lấy là 600
- nếu giá trị cho là 635 thì giá trị phải lấy là 650 (vì ở ô A1 không có giá trị 635 và 640)
Trước nay mình vẫn làm là tạo hai cột phụ: một cột có giá trị từ 500 đến 1200 và một cột có các giá trị tương ứng cho trước như từ giá trị 500 đến 600 thì cột bên cạnh đều là giá trị 600 rồi sử dụng hàm dò tìm. Nhưng cách này mình thấy không ổn nếu phải thay đổi giá trị cho trước mà vấn đề này thường xuyên xảy ra, thì mình lại phải làm lại 2 cột phụ - mất quá nhiều công sức.
xin hãy giúp mình giải quyết vấn đề này
Mình nghĩ rất đơn giản để lấy ra giá trị gần kề lớn hơn. Dùng hàm MATCH voi
matchtype=-1
=Match(A2,A:A,-1)
 
1/Với công thức mảng như ndu hợp lý trong trường hợp này.
2/Kieuvietphuong: Công thức của bạn chỉ có thể áp dụng trong trường hợp vùng tìm được sắp xếp theo nguyên tác giảm dần, trong khi tác giả không nói rõ được phép hay không đảo thứ tự đã có. Nếu không phải thêm cột phụ để xếp rồi dùng công thức mới được

P/s: Đọc bài BNTT mới phát hiện là quên chưa kết hợp với hàm Index() trong phần 2.
 
Lần chỉnh sửa cuối:
Mình nghĩ rất đơn giản để lấy ra giá trị gần kề lớn hơn. Dùng hàm MATCH voi
matchtype=-1
=Match(A2,A:A,-1)
Không thể dùng MATCH trong trường hợp này. Vì hai lý do sau đây:

1. Hàm MATCH chỉ trả về kết quả là vị trí của giá trị tìm được, chứ không phải là giá trị tìm được.

2. Nếu muốn dùng thông số -1 trong hàm MATCH, thì danh sách dò phải được sắp xếp theo thứ tự giảm dần (từ lớn đến nhỏ)

Góp ý: Trước khi đưa công thức lên diễn đàn, bạn nên thử trước, xem nó có ra kết quả hay không, rồi hẵng đưa lên.
 
Web KT

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

Back
Top Bottom