GÁN DỮ LIỆU THEO BẢNG ĐIỀU KIỆN

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

domjnjc

Thành viên chính thức
Tham gia
7/5/12
Bài viết
77
Được thích
11
Xin chào các anh/chị trong diễn đàn,

Em có 1 file cần xử lý thông tin như sau ạ:
Có 1 bảng điều kiệu tham chiếu gồm các cột TYPE, SIZE , POD, VGM
Em muốn có thể tìm các Container thỏa mãn điều kiện gồm SIZE & POD & VGM (lớn hơn, nhỏ hơn, trong khoảng số Tấn theo yêu cầu), sau đó gán giá trị tương ứng ở cột TYPE vào cột KQ.
Ví dụ: với điều kiện là SIZE: 20 GP, POD: SHK, VGM: >29 thì Dòng đó sẽ trả về ở cột KQ tương ứng với TYPE là S2 như hình dưới đây:Untitled.png
Mong các anh/chị giúp đỡ em ạ!
 

File đính kèm

  • EXAMPLE.xlsx
    558.8 KB · Đọc: 0
Lần chỉnh sửa cuối:
Xin chào các anh/chị trong diễn đàn,

Em có 1 file cần xử lý thông tin như sau ạ:
Có 1 bảng điều kiệu tham chiếu gồm các cột TYPE, SIZE , POD, VGM
Em muốn có thể tìm các Container thỏa mãn điều kiện gồm SIZE & POD & VGM (lớn hơn, nhỏ hơn, trong khoảng số Tấn theo yêu cầu), sau đó gán giá trị tương ứng ở cột TYPE vào cột KQ.
Ví dụ: với điều kiện là SIZE: 20 GP, POD: SHK, VGM: >29 thì Dòng đó sẽ trả về ở cột KQ tương ứng với TYPE là S2 như hình dưới đây:View attachment 301931
Mong các anh/chị giúp đỡ em ạ!
Nó lớn hơn 29 nhưng nó cũng lớn hơn 14,11.7 làm sao biết chỉ lấy lớn hơn 29.Bạn phải có giới hạn của nó chứ.
 
Nó lớn hơn 29 nhưng nó cũng lớn hơn 14,11.7 làm sao biết chỉ lấy lớn hơn 29.Bạn phải có giới hạn của nó chứ.
vâng, em trình bày cách em lấy dữ liệu thủ công như sau để có thể dễ hiểu hơn ạ:
với ví dụ điều kiện là: SIZE: 20 GP, POD: SHK, VGM: >29 thì có ký hiệu TYPE là S2
1. Lọc filter ở cột SIZE những dòng là 20GP
2. Lọc filter ở cột POD những dòng là SHK
3. Lọc filter ở cột VGM những giá trị lớn hơn 29
4. Gõ tay vào cột KQ những dòng lọc ra được là S2 và lặp lại điều đó tương tự với các điều kiện khác
Nghĩa là đích đến của em muốn là với 3 dữ kiện SIZE, POD và VGM sẽ gán được TYPE vào cột KQ với những điều kiện đó
 
vâng, em trình bày cách em lấy dữ liệu thủ công như sau để có thể dễ hiểu hơn ạ:
Bạn vẫn chưa trả lời câu hỏi của bạn @snow25 ở #2, như hình bên dưới chỗ mình khoanh đỏ, ">11.7" nó đã bao gồm ">14", như vậy thì lấy như thế nào? Ví dụ: VGM bên bảng kết quả bằng 15 thì coi 15 đó lớn hơn 11.7 hay lớn hơn 14
1.png
 
Dữ liệu cột VGM không theo đúng mẫu text, chỗ có dấu cách chỗ không có. Đồng thời, dấu =< không phải là dấu tiêu chuẩn. Cần thêm cột phụ để dò.

Nó lớn hơn 29 nhưng nó cũng lớn hơn 14,11.7 làm sao biết chỉ lấy lớn hơn 29.Bạn phải có giới hạn của nó chứ.
Làm được, nhưng các cột size và pod của bảng dò phải group lại (sort), và VGM cũng phải được sort từ nhỏ đến lớn.

Trước hết, dùng hàm Match để tìm size+pod bắt đầu từ dòng nào, dùng hàm Lookup để biết chúng kết ở dòng nào. Index để lấy range này. Dùng hàm Match để tìm VGM, và tra ra KQ.
 
Bạn vẫn chưa trả lời câu hỏi của bạn @snow25 ở #2, như hình bên dưới chỗ mình khoanh đỏ, ">11.7" nó đã bao gồm ">14", như vậy thì lấy như thế nào? Ví dụ: VGM bên bảng kết quả bằng 15 thì coi 15 đó lớn hơn 11.7 hay lớn hơn 14
View attachment 301936
Dạ, tại e cũng không hiểu giới hạn đây là gì ạ, với điều kiện ở dòng đầu: thì những conts thoả mãn cùng lúc các điều kiện: size: 20 gp, pod: hkt và có vgm lớn hơn 11.7 thì nó sẽ được trả về kết quả là H2; tương tự trả về H4 nếu thoả mãn cùng lúc 3 điều kiện: size: 40hc, pod: hkt và vgm lớn hơn 14 ấy ạ
 
Dạ, tại e cũng không hiểu giới hạn đây là gì ạ, với điều kiện ở dòng đầu: thì những conts thoả mãn cùng lúc các điều kiện: size: 20 gp, pod: hkt và có vgm lớn hơn 11.7 thì nó sẽ được trả về kết quả là H2; tương tự trả về H4 nếu thoả mãn cùng lúc 3 điều kiện: size: 40hc, pod: hkt và vgm lớn hơn 14 ấy ạ
Theo tôi thấy 'Bảng điều kiện' của bạn còn nhiều khiếm khuyết. Thường ta xét giá trị bất kỳ trên 1 đoạn cho trước thì phải xét cho đủ:
Ví dụ: Xét giá trị x trên đoạn giá trị cho trước: 10 -> 100, chắc chắn bạn sẽ xét như sau:
- Nếu x <10: thì kết quả là gì gì đó...
- Nếu x >= 10 và x < 100: thì kết quả là gì gì đó...
- Nếu x >= 100: thì kết quả là gì gì đó...

Trong bảng của bạn: Type "N..", cùng Size: 40HC, POD: NGB, có các đoạn giá trị VGM như sau:
- VGM < 12 --> Type N6
- VGM >= 12 và < 23 --> Type ????
- VGM >= 23 và < 26.4 --> Type N5
- VGM >= 26.4 và < 27.7 --> Type N4
- VGM >= 27.7 --> Type ????

Việc trước tiên, bạn hãy hoàn thiện 'Bảng điều kiện', rồi mới tính tiếp được công thức tra như thế nào.

Thân
 
Theo tôi thấy 'Bảng điều kiện' của bạn còn nhiều khiếm khuyết. Thường ta xét giá trị bất kỳ trên 1 đoạn cho trước thì phải xét cho đủ:
Ví dụ: Xét giá trị x trên đoạn giá trị cho trước: 10 -> 100, chắc chắn bạn sẽ xét như sau:
- Nếu x <10: thì kết quả là gì gì đó...
- Nếu x >= 10 và x < 100: thì kết quả là gì gì đó...
- Nếu x >= 100: thì kết quả là gì gì đó...

Trong bảng của bạn: Type "N..", cùng Size: 40HC, POD: NGB, có các đoạn giá trị VGM như sau:
- VGM < 12 --> Type N6
- VGM >= 12 và < 23 --> Type ????
- VGM >= 23 và < 26.4 --> Type N5
- VGM >= 26.4 và < 27.7 --> Type N4
- VGM >= 27.7 --> Type ????

Việc trước tiên, bạn hãy hoàn thiện 'Bảng điều kiện', rồi mới tính tiếp được công thức tra như thế nào.

Thân
Dạ, những khoảng giá trị khác nếu không có trong bảng điều kiện thì sẽ để trống ở cột KQ thôi ạ, mục đích chỉ hiển thị type N4, N5, N6 … tại cột KQ sau khi tham chiếu với 3 điều kiện ở bảng điều kiện ạ
 
Dạ, những khoảng giá trị khác nếu không có trong bảng điều kiện thì sẽ để trống ở cột KQ thôi ạ, mục đích chỉ hiển thị type N4, N5, N6
.
Nếu tách cột VGM thành 2 cột: VGM from và VGM to, có giá trị là giới hạn dưới và giới hạn trên thì dễ dàng trích xuất TYPE.

BẢNG ĐIỀU KIỆN của bạn là bảng dùng để báo cáo, không phải là bảng cơ sở dữ liệu chuẩn.
 
.
Nếu tách cột VGM thành 2 cột: VGM from và VGM to, có giá trị là giới hạn dưới và giới hạn trên thì dễ dàng trích xuất TYPE.

BẢNG ĐIỀU KIỆN của bạn là bảng dùng để báo cáo, không phải là bảng cơ sở dữ liệu chuẩn.
Em chưa hiểu ý của anh ạ, với ví dụ điều kiện đầu tiên: với những cont có SIZE: 20GP, POD: HKT, VGM: lớn hơn 11.7 thì mình tách thành VGM from 11.7; VGM to 35 hả a? (số 35 là em mặc định đối với giới hạn trên)
 
Em chưa hiểu ý của anh ạ, với ví dụ điều kiện đầu tiên: với những cont có SIZE: 20GP, POD: HKT, VGM: lớn hơn 11.7 thì mình tách thành VGM from 11.7; VGM to 35 hả a? (số 35 là em mặc định đối với giới hạn trên)
.
Ví dụ dòng N4 => 26.5-27.7 tách thành 26.5 27.7

Dòng H5 => < 9 tách thành 0 9

Dòng S4 => >=29 .5 tách thành 29.5 1000


..
 
.
Ví dụ dòng N4 => 26.5-27.7 tách thành 26.5 27.7

Dòng H5 => < 9 tách thành 0 9

Dòng S4 => >=29 .5 tách thành 29.5 1000


..
Em đã chỉnh lại bảng điều kiện như anh hướng dẫn, anh kiểm tra và hướng dẫn bước tiếp theo được không ạ?
 

File đính kèm

  • EXAMPLE.xlsx
    558.8 KB · Đọc: 6
Em đã chỉnh lại bảng điều kiện như anh hướng dẫn, anh kiểm tra và hướng dẫn bước tiếp theo được không ạ?
.
Thử công thức này:

=IFERROR(LOOKUP(2,1/($R$3:$R$19=F2)/($S$3:$S$19=L2)/($T$3:$T$19<=H2)/($U$3:$U$19>=H2),$Q$3:$Q$19),"")

Hoặc:

=FILTER($Q$3:$Q$19,($R$3:$R$19=F3)*($S$3:$S$19=L3)*($T$3:$T$19<=H3)*($U$3:$U$19>=H3),"")
 
.
Thử công thức này:

=IFERROR(LOOKUP(2,1/($R$3:$R$19=F2)/($S$3:$S$19=L2)/($T$3:$T$19<=H2)/($U$3:$U$19>=H2),$Q$3:$Q$19),"")

Hoặc:

=FILTER($Q$3:$Q$19,($R$3:$R$19=F3)*($S$3:$S$19=L3)*($T$3:$T$19<=H3)*($U$3:$U$19>=H3),"")
Em cảm ơn anh nhiều, công thức ổn rồi ạ, theo ý hiểu của em là mục đích chia khoảng giá trị ra để mình dò những giá trị nằm ngoài khoảng đó thì những giá trị còn lại là cái mình cần tìm đúng không ạ?
 
Web KT
Back
Top Bottom