Lấy dữ liệu với thông tin dữ liệu trùng được nhận dạng khác khau theo cột phụ.

  • Thread starter Thread starter th7
  • Ngày gửi Ngày gửi
Liên hệ QC

th7

Thành viên thường trực
Tham gia
3/3/15
Bài viết
215
Được thích
52
Giới tính
Nam
Chào các Bạn,
Mình có dữ liệu với 2 sheets
Sheet "dulieu" và sheet "ketqua"
Tại sheet"ketqua":
Các cột từ A tới F là giá trị mình nhập.
Cột G, cột H và cột I là cột mình muốn sử dụng hàm vlookup để tự lấy thông tin từ Sheet"dulieu"
Côt G thì sẽ vlookup theo cột F,
Cột H thì sẽ vlookup theo cột G, nhưng cột G có dữ liệu giống nhau, nhưng theo bên sheet"dulieu" thì thông tin của cột G có hai mặt, đó là Bot và Top, nếu mình chỉ vlookup thông thường gì giá trị tại cột H sẽ giữ một giá trị, mà không tự nhảy phân kia theo đúng yêu cầu như trong sheet "dulieu"
Tương tự, cột I cũng giống cột H,
Bài viết hơi khó diễn giải, mong mọi người đọc và xem còn vướng gì không và kiểm tra dùm mình,
Cảm ơn.
 

File đính kèm

Chào các Bạn,
Mình có dữ liệu với 2 sheets
Sheet "dulieu" và sheet "ketqua"
Tại sheet"ketqua":
Các cột từ A tới F là giá trị mình nhập.
Cột G, cột H và cột I là cột mình muốn sử dụng hàm vlookup để tự lấy thông tin từ Sheet"dulieu"
Côt G thì sẽ vlookup theo cột F,
Cột H thì sẽ vlookup theo cột G, nhưng cột G có dữ liệu giống nhau, nhưng theo bên sheet"dulieu" thì thông tin của cột G có hai mặt, đó là Bot và Top, nếu mình chỉ vlookup thông thường gì giá trị tại cột H sẽ giữ một giá trị, mà không tự nhảy phân kia theo đúng yêu cầu như trong sheet "dulieu"
Tương tự, cột I cũng giống cột H,
Bài viết hơi khó diễn giải, mong mọi người đọc và xem còn vướng gì không và kiểm tra dùm mình,
Cảm ơn.
Mã:
G2 =INDEX(dulieu!B$3:B$100,MATCH($F2,dulieu!$A$3:$A$100,0)+COUNTIF($F$1:$F1,$F2))
Copy ngang qua H2
Mã:
I2 =LOOKUP(2,1/(dulieu!$A$3:$A$100=F2)/(dulieu!$C$3:$C$100=H2),dulieu!$E$3:$E$100)
Copy G2:I2 xuống dưới
 

File đính kèm

Mã:
G2 =INDEX(dulieu!B$3:B$100,MATCH($F2,dulieu!$A$3:$A$100,0)+COUNTIF($F$1:$F1,$F2))
Copy ngang qua H2
Mã:
I2 =LOOKUP(2,1/(dulieu!$A$3:$A$100=F2)/(dulieu!$C$3:$C$100=H2),dulieu!$E$3:$E$100)
Copy G2:I2 xuống dưới
Chào Anh HieuCD,
Em có kiểm tra lại, và có một chỗ cần Anh xem dùm em.
1662596882193.png
Cột F là sản phẩm chạy trên dây chuyền, cột F này, có thể trùng nhau, (ngày hôm nay, line này chạy, ngày hôm khác line khác chạy,...)
Khi em để cột F trùng nhau thì giá trị lấy chưa đúng cho cái giá trị trùng dưới, Anh kiểm tra dùm em được không ạ
em cảm ơn.
 
Chào Anh HieuCD,
Em có kiểm tra lại, và có một chỗ cần Anh xem dùm em.
View attachment 280809
Cột F là sản phẩm chạy trên dây chuyền, cột F này, có thể trùng nhau, (ngày hôm nay, line này chạy, ngày hôm khác line khác chạy,...)
Khi em để cột F trùng nhau thì giá trị lấy chưa đúng cho cái giá trị trùng dưới, Anh kiểm tra dùm em được không ạ
em cảm ơn.
Chỉnh cột dò tìm điều kiện theo PCB
Mã:
I2 =LOOKUP(2,1/(dulieu!$B$3:$B$100=G2)/(dulieu!$C$3:$C$100=H2),dulieu!$E$3:$E$100)
 
em thấy chỗ coutif chưa chính xác ạ.Với trường hợp dữ liệu trùng gần nhau thì sẽ đúng,trường hợp dữ liệu trùng cách xa số dòng sẽ ko đúng.Kết quả trả về của hàm coutif chỉ đếm có bao nhiêu ô trùng chứ không tương ứng số dòng của dữ liệu cần tìm ạ
 
  • Thích
Reactions: th7
Chỉnh cột dò tìm điều kiện theo PCB
Mã:
I2 =LOOKUP(2,1/(dulieu!$B$3:$B$100=G2)/(dulieu!$C$3:$C$100=H2),dulieu!$E$3:$E$100)
Chào Anh HieuCD,
1662713479343.png

Ý em là Cột G cũng chưa lấy đúng giá trị nếu cột F có giá trị trùng, Anh có thể xem cho em được không ạ,
em cảm ơn.
 

File đính kèm

Dạ, Cột F có thể nhập thông tin lặp đi lặp lại nhiều lần Anh ạ.
Với trường hợp trong file thì kết quả sẽ như thế nào?
Nên nói rỏ điều kiện lấy dữ liệu mới có thể lập công thức đúng cho các trường hợp đặc biệt
 

File đính kèm

Chào Anh HieuCD,
View attachment 280879

Ý em là Cột G cũng chưa lấy đúng giá trị nếu cột F có giá trị trùng, Anh có thể xem cho em được không ạ,
em cảm ơn.
Do bạn diễn đạt yêu cầu của mình mơ hồ khó hiểu, nên tôi sẽ tóm tắt lại theo cách tôi đoán ý bạn như sau:

1/ Sheet "dulieu": là bảng theo dõi "thời gian hoàn thành sản phẩm", phân ra theo công đoạn: MC1#1;2;3;4. Trong đó:
  • 1 Sản phẩm (SP) chỉ có 1 cấu kiện. Như SP: SF10000009439-C (dòng 3), SF10000039199-A (dòng 6)..v.v
  • 1 Sản phẩm có 2 cấu kiện: mặt trên (top), hoặc mặt dưới (bot). Như: SF10000001640-B (dòng 4 và 5), SF10000044374-03 (dòng 25 và 26)..v.v
  • 2 Sản phẩm có cùng 1 cấu kiện nhưng chia ra là mặt trên và dưới. Như: SF10000020495-D (dòng 11), SF10000011314-D (dòng 12) cùng 1 cấu kiện IN60000047142-D (Top/Bot).
Ý kiến riêng: Vì là bảng theo dõi thời gian hoàn thành SP, nên sản phẩm có thể ghi nhiều dòng, nhưng 1 cấu kiện sản phẩm chỉ thể hiện 1 dòng, nên tôi cho rằng bạn đã ghi chép lộn xộn lặp đi lặp lại, như: dòng 4,5 lặp lại tại dòng 7,8; dòng 11,12 lặp lại tại dòng 41,42; dòng 10 lặp lại tại dòng 24.

2/ Sheet "ketqua": bạn muốn truy xuất "thời gian hoàn thành công đoạn" từ sheet "dulieu". Trường hợp:
  • SP chỉ có 1 cấu kiện hoặc 2 SP khác nhau nhưng có cùng cấu kiện: do có sự riêng biệt nên dễ truy xuất từ sheet "dulieu". Ví dụ: mã SF10000020495-D có cấu kiện PCB: IN60000047142-D dù cho nó có xuất hiện bao nhiêu dòng trong sheet "ketqua", thì cũng luôn là phần Bot; mã SF10000011314-D có cấu kiện PCB: IN60000047142-D dù cho nó có xuất hiện bao nhiêu dòng trong sheet "ketqua", thì cũng luôn là phần Top.
  • SP nào có cùng mã SP và mã PCB, nhưng có 2 cấu kiện (top/bot), và sheet "ketqua" có 2 dòng SP liền kề thì sẽ truy xuất lấy đủ cấu kiện cả hai: top và bot. Ví dụ: mã IN60000047142-D, cấu kiện PCB IN60000047087-A1 (dòng 3, 4), phân ra Top và Bot.
Ý kiến riêng: Nếu được, thì bạn tạo mã PCB có kèm thêm các ký tự như: "L/R/T/B/F/D": thể hiện các mặt "Trái/Phải/Trên/Dưới/Trước/Sau" như: L_IN60000047142-D, B_IN60000047142-D...; Thêm nữa, trước khi đưa vào line sản xuất, bộ phận kế hoạch đã biết làm cấu kiện gì, làm mặt gì, ngày nào, cho line nào rồi, nên thiết nghĩ cột "Side" bạn nên điền tay là chính xác nhất, rồi lấy đó làm chuẩn để truy xuất được "thời gian hoàn thành theo công đoạn". Chứ cách bạn đếm: cứ dòng 1 là mặt 'bot', dòng 2 là mặt 'top', thì có ngày sẽ bị nhầm lẫn nặng.

Thân
 
Do bạn diễn đạt yêu cầu của mình mơ hồ khó hiểu, nên tôi sẽ tóm tắt lại theo cách tôi đoán ý bạn như sau:

1/ Sheet "dulieu": là bảng theo dõi "thời gian hoàn thành sản phẩm", phân ra theo công đoạn: MC1#1;2;3;4. Trong đó:
  • 1 Sản phẩm (SP) chỉ có 1 cấu kiện. Như SP: SF10000009439-C (dòng 3), SF10000039199-A (dòng 6)..v.v
  • 1 Sản phẩm có 2 cấu kiện: mặt trên (top), hoặc mặt dưới (bot). Như: SF10000001640-B (dòng 4 và 5), SF10000044374-03 (dòng 25 và 26)..v.v
  • 2 Sản phẩm có cùng 1 cấu kiện nhưng chia ra là mặt trên và dưới. Như: SF10000020495-D (dòng 11), SF10000011314-D (dòng 12) cùng 1 cấu kiện IN60000047142-D (Top/Bot).
Ý kiến riêng: Vì là bảng theo dõi thời gian hoàn thành SP, nên sản phẩm có thể ghi nhiều dòng, nhưng 1 cấu kiện sản phẩm chỉ thể hiện 1 dòng, nên tôi cho rằng bạn đã ghi chép lộn xộn lặp đi lặp lại, như: dòng 4,5 lặp lại tại dòng 7,8; dòng 11,12 lặp lại tại dòng 41,42; dòng 10 lặp lại tại dòng 24.

2/ Sheet "ketqua": bạn muốn truy xuất "thời gian hoàn thành công đoạn" từ sheet "dulieu". Trường hợp:
  • SP chỉ có 1 cấu kiện hoặc 2 SP khác nhau nhưng có cùng cấu kiện: do có sự riêng biệt nên dễ truy xuất từ sheet "dulieu". Ví dụ: mã SF10000020495-D có cấu kiện PCB: IN60000047142-D dù cho nó có xuất hiện bao nhiêu dòng trong sheet "ketqua", thì cũng luôn là phần Bot; mã SF10000011314-D có cấu kiện PCB: IN60000047142-D dù cho nó có xuất hiện bao nhiêu dòng trong sheet "ketqua", thì cũng luôn là phần Top.
  • SP nào có cùng mã SP và mã PCB, nhưng có 2 cấu kiện (top/bot), và sheet "ketqua" có 2 dòng SP liền kề thì sẽ truy xuất lấy đủ cấu kiện cả hai: top và bot. Ví dụ: mã IN60000047142-D, cấu kiện PCB IN60000047087-A1 (dòng 3, 4), phân ra Top và Bot.
Ý kiến riêng: Nếu được, thì bạn tạo mã PCB có kèm thêm các ký tự như: "L/R/T/B/F/D": thể hiện các mặt "Trái/Phải/Trên/Dưới/Trước/Sau" như: L_IN60000047142-D, B_IN60000047142-D...; Thêm nữa, trước khi đưa vào line sản xuất, bộ phận kế hoạch đã biết làm cấu kiện gì, làm mặt gì, ngày nào, cho line nào rồi, nên thiết nghĩ cột "Side" bạn nên điền tay là chính xác nhất, rồi lấy đó làm chuẩn để truy xuất được "thời gian hoàn thành theo công đoạn". Chứ cách bạn đếm: cứ dòng 1 là mặt 'bot', dòng 2 là mặt 'top', thì có ngày sẽ bị nhầm lẫn nặng.

Thân
Em chào Anh Phan Thế Hiệp,
Hai ý kiến riêng của Anh nêu ra, đều đúng ạ, dữ liệu của PCB, nên được gán mặt Top/Bot, em vừa chỉnh sửa lại dữ liệu.
Em cảm ơn Anh ạ.
 
Web KT

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

Back
Top Bottom