Xử lý chuỗi hàm If dài, nhiều và ko cố định giá trị (1 người xem)

Liên hệ QC

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

d05403054

Thành viên chính thức
Tham gia
2/8/12
Bài viết
55
Được thích
7
Chào các anh, chị em GPE

Mình có 1 vấn đề về hàm If như sau (phiền mọi người xem file đính kèm). Ở cột Đơn Giá, mình dùng hàm If để cho ra kết quả, nhưng điều mình muốn hỏi ở đây là trong công thức If đó, theo như mình lập là Nếu Trọng Lượng<=Số Kg (500), thì phải dựa vô cột Khoảng Cách (Km) là 160, sau đó mới lấy kết quả ô 160 bảng dữ liệu trên là D11 (513000)/Trọng lượng, Tiếp tục là Nếu trọng lượng <>0, Trọng Lượng > Kg (500), Trọng Lượng <= Kg (1000) thì lấy 598 ở bảng dữ liệu (tiếp tục dựa vô cột khoảng cách là 160 thì mới biết dc giá trị là 598)
Xin hỏi mọi người có hàm nào hoặc có cách nào khác để lập công thức chỉ cần dựa vô cột Khoảng cách (km) thì sẽ tự động link trên bảng dữ liệu lấy giá trị 513000 dc ko.
Mọi người xem file đính kèm để hiểu rõ hơn nhé
Cám ơn mọi người
 

File đính kèm

Nhờ anh chị em nào rành về hàm này giúp đỡ mình với
 
Chào các anh, chị em GPE

Mình có 1 vấn đề về hàm If như sau (phiền mọi người xem file đính kèm). Ở cột Đơn Giá, mình dùng hàm If để cho ra kết quả, nhưng điều mình muốn hỏi ở đây là trong công thức If đó, theo như mình lập là Nếu Trọng Lượng<=Số Kg (500), thì phải dựa vô cột Khoảng Cách (Km) là 160, sau đó mới lấy kết quả ô 160 bảng dữ liệu trên là D11 (513000)/Trọng lượng, Tiếp tục là Nếu trọng lượng <>0, Trọng Lượng > Kg (500), Trọng Lượng <= Kg (1000) thì lấy 598 ở bảng dữ liệu (tiếp tục dựa vô cột khoảng cách là 160 thì mới biết dc giá trị là 598)
Xin hỏi mọi người có hàm nào hoặc có cách nào khác để lập công thức chỉ cần dựa vô cột Khoảng cách (km) thì sẽ tự động link trên bảng dữ liệu lấy giá trị 513000 dc ko.
Mọi người xem file đính kèm để hiểu rõ hơn nhé
Cám ơn mọi người
Chú ý ô C2 = 0
Mã:
I436 =INDEX($D$3:$J$15,MATCH(D436,$C$3:$C$15),MATCH(G436-0.01,$C$2:$J$2))/IF(G436<$D$2,G436,1)
 

File đính kèm

Chú ý ô C2 = 0
Mã:
I436 =INDEX($D$3:$J$15,MATCH(D436,$C$3:$C$15),MATCH(G436-0.01,$C$2:$J$2))/IF(G436<$D$2,G436,1)

Cám ơn bạn nhiều lắm nhưng mình chưa hiểu lắm về công thức của bạn, nhờ bạn giải đáp giùm là
1. Đã dùng Index rồi sao lại phải dùng tới 2 hàm Match nhỉ ?
2. MATCH(G436-0.01,$C$2:$J$2)) : tại sao lại trừ 0.01, chỗ này có ý nghĩa là gì ?
3. Sau khi dùng thử công thức của bạn, có những dòng bị lỗi #N/A là sao nhỉ (xem ảnh nhé)

duy.JPG
 
Cám ơn bạn nhiều lắm nhưng mình chưa hiểu lắm về công thức của bạn, nhờ bạn giải đáp giùm là
1. Đã dùng Index rồi sao lại phải dùng tới 2 hàm Match nhỉ ?
2. MATCH(G436-0.01,$C$2:$J$2)) : tại sao lại trừ 0.01, chỗ này có ý nghĩa là gì ?
3. Sau khi dùng thử công thức của bạn, có những dòng bị lỗi #N/A là sao nhỉ (xem ảnh nhé)

View attachment 229719
1. Dùng 2 hàm Match để tính thứ tự dòng và cột lấy dữ liệu cho hàm Index
2. MATCH(G436-0.01,$C$2:$J$2)): Match lấy theo điều kiện: <500, <1000 ... thực tế điều kiện <=500, <=1000 ... nên G436-0.01, nếu dữ liệu có nhiều số lẽ thì 0.01 phải tăng số lẽ tương ứng như 0.000001
3. Sau khi dùng thử công thức của bạn, có những dòng bị lỗi #N/A là sao nhỉ (xem ảnh nhé): bạn chưa xem file mình gởi và ghi chú của mình "Chú ý ô C2 = 0"
 
1. Dùng 2 hàm Match để tính thứ tự dòng và cột lấy dữ liệu cho hàm Index
2. MATCH(G436-0.01,$C$2:$J$2)): Match lấy theo điều kiện: <500, <1000 ... thực tế điều kiện <=500, <=1000 ... nên G436-0.01, nếu dữ liệu có nhiều số lẽ thì 0.01 phải tăng số lẽ tương ứng như 0.000001
3. Sau khi dùng thử công thức của bạn, có những dòng bị lỗi #N/A là sao nhỉ (xem ảnh nhé): bạn chưa xem file mình gởi và ghi chú của mình "Chú ý ô C2 = 0"

Thật sự xin lỗi vì đã quá mải mê dòng code bạn ghi nên ko hề chú ý tới file bạn đính kèm :D
xin hỏi lại câu hỏi 2 là nếu như sau này mình phát sinh thêm số 150.000 hoặc 155.000 thì mục G436-bao nhiêu, vì vẫn chưa hiểu lắm câu "nếu dữ liệu có nhiều số lẽ thì 0.01 phải tăng số lẽ tương ứng như 0.000001". Số 0.01 cũng chưa hiểu tương ứng thế nào với 500 và 1000 kia
 
Thật sự xin lỗi vì đã quá mải mê dòng code bạn ghi nên ko hề chú ý tới file bạn đính kèm :D
xin hỏi lại câu hỏi 2 là nếu như sau này mình phát sinh thêm số 150.000 hoặc 155.000 thì mục G436-bao nhiêu, vì vẫn chưa hiểu lắm câu "nếu dữ liệu có nhiều số lẽ thì 0.01 phải tăng số lẽ tương ứng như 0.000001". Số 0.01 cũng chưa hiểu tương ứng thế nào với 500 và 1000 kia
"câu hỏi 2 là nếu như sau này mình phát sinh thêm số 150.000 hoặc 155.000" bạn thêm cột và thêm các giá trị mới vào theo thứ tự từ thấp đến cao
Hàm match tìm tương đối sẽ tìm G436 theo từng khoảng như
>=0 tới <500
>=500 tới <1000
Nhưng yêu cầu của bạn lại là
>0 tới <=500
>500 tới <=1000
Nếu G436 =500 tìm bình thường sẽ có kết quả là 2 nhưng yêu cầu của bạn là 1, do đó phải thay thế 500 bằng 1 con số <500 và gần 500 nhất
Nếu số liệu thực tế là số nguyên thì lấy 500 trừ 1 số dương <1 như 500-0.1 hoặc 500-0.01 đều được
Nếu số liệu thực tế có 1 số lẽ thì 500-0.01 hoặc 500-0.001
 
"câu hỏi 2 là nếu như sau này mình phát sinh thêm số 150.000 hoặc 155.000" bạn thêm cột và thêm các giá trị mới vào theo thứ tự từ thấp đến cao
Hàm match tìm tương đối sẽ tìm G436 theo từng khoảng như
>=0 tới <500
>=500 tới <1000
Nhưng yêu cầu của bạn lại là
>0 tới <=500
>500 tới <=1000
Nếu G436 =500 tìm bình thường sẽ có kết quả là 2 nhưng yêu cầu của bạn là 1, do đó phải thay thế 500 bằng 1 con số <500 và gần 500 nhất
Nếu số liệu thực tế là số nguyên thì lấy 500 trừ 1 số dương <1 như 500-0.1 hoặc 500-0.01 đều được
Nếu số liệu thực tế có 1 số lẽ thì 500-0.01 hoặc 500-0.001

Việc này đã vượt quá tầm hiểu biết của mình rồi, nếu bạn có nhận học viên thì cho mình ghi danh nhé :D
Cám ơn bạn đã giúp mình về file này cũng như đã hướng dẫn nhiệt tình về công thức
Đusng là GPE toàn là cao thủ
 
Web KT

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

Back
Top Bottom